from setuptools import setup, find_packages
import sys


package_name = 'hertz_studio_django_xxx'

# 读取README文件内容
with open("README.md", "r", encoding="utf-8") as fh:
    long_description = fh.read()

# 读取requirements文件
def read_requirements():
    with open("requirements.txt", "r", encoding="utf-8") as f:
        return [line.strip() for line in f if line.strip() and not line.startswith("#")]

# 机器码验证功能
def verify_machine_license():
    """验证机器码"""
    import platform
    import uuid
    import hashlib
    
    print("\n" + "="*60)
    print("欢迎使用 Hertz System Xxx!")
    print("="*60)
    print("本软件需要机器码验证才能安装。")
    print("请联系作者获取安装权限：hertz studio(563161210@qq.com)")
    print("="*60)

    # 获取系统信息
    system_info = f"{platform.platform()}-{platform.machine()}-{uuid.getnode()}"
    machine_id = 'HERTZ_STUDIO_'+hashlib.sha256(system_info.encode()).hexdigest()[:16].upper()

    print(f"您的机器码: {machine_id},当前安装的包名: {package_name}")
    print("请将此机器码发送给作者进行注册。")

    # 请求验证机器码
    import requests
    url = "http://activate.hzsystems.cn/api/activate_machine"
    data = {"package_name": package_name, "machine_code": machine_id}
    try:
        response = requests.post(url, json=data, timeout=10)
        result = response.json()
        success = result.get('success') == True
    except requests.RequestException as e:
        print(f"机器码验证请求失败: {e}")
        success = False

    if success:
        print("=" * 60)
        print("机器码验证成功！")
        print("=" * 60)
    else:
        print("=" * 60)
        print("机器码验证失败！请联系作者获取安装权限。")
        print("=" * 60)
        sys.exit(1)


# 在安装前验证机器码
if 'install' in sys.argv or 'bdist_wheel' in sys.argv or 'sdist' in sys.argv:
    verify_machine_license()

setup(
    name=package_name,  # PyPI上的包名
    version="1.0.1",  # 版本号
    author="yang kunhao",  # 作者名
    author_email="563161210@qq.com",  # 作者邮箱
    description="一个功能强大的Django验证码应用",  # 简短描述
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="http://hzgit.hzsystems.cn/hertz_studio_django/hertz_studio_django_xxx",  # 项目地址
    packages=find_packages(include=[f"{package_name}*"]),  # 自动发现并同时打包两个包
    include_package_data=True,  # 包含MANIFEST.in中定义的文件
    classifiers=[
        "Development Status :: 4 - Beta",
        "Intended Audience :: Developers",
        "Operating System :: OS Independent",
        "Framework :: Django",
        "Framework :: Django :: 3.0",
        "Framework :: Django :: 3.1",
        "Framework :: Django :: 3.2",
        "Framework :: Django :: 4.0",
        "Framework :: Django :: 4.1",
        "Framework :: Django :: 4.2",
        "Programming Language :: Python",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.7",
        "Programming Language :: Python :: 3.8",
        "Programming Language :: Python :: 3.9",
        "Programming Language :: Python :: 3.10",
        "Programming Language :: Python :: 3.11",
        "Topic :: Internet :: WWW/HTTP",
        "Topic :: Software Development :: Libraries :: Python Modules",
    ],
    license="MIT",  # 使用 SPDX 许可证标识符
    python_requires=">=3.10",  # Python版本要求
    install_requires=read_requirements(),  # 依赖包
    keywords="django xxx verification security",  # 关键词
    project_urls={
        "Bug Reports": "http://hzgit.hzsystems.cn/hertz_studio_django/hertz_studio_django_xxx/issues",
        "Source": "http://hzgit.hzsystems.cn/hertz_studio_django/hertz_studio_django_xxx",
        "Documentation": "http://hzgit.hzsystems.cn/hertz_studio_django/hertz_studio_django_xxx#readme",
    },
)