This commit is contained in:
雷雨
2025-12-15 22:05:56 +08:00
commit 8635b84b2d
230 changed files with 53888 additions and 0 deletions

View File

@@ -0,0 +1,69 @@
#!/usr/bin/env python3
"""
滴答清单OAuth授权URL生成器
使用: python scripts/generate_auth_url.py
"""
import argparse
import json
from pathlib import Path
from urllib.parse import urlencode
def main():
parser = argparse.ArgumentParser(description="滴答清单OAuth授权URL生成器")
parser.add_argument("--config", default="oauth_config.json", help="配置文件路径")
parser.add_argument("--port", type=int, default=38000, help="回调端口")
parser.add_argument("--scope", default="tasks:read tasks:write", help="权限范围")
args = parser.parse_args()
# 加载配置
config_path = Path(args.config)
if not config_path.exists():
print("❌ 配置文件不存在,请先创建 oauth_config.json")
print("\n参考 oauth_config.json.example 创建配置文件")
return
with open(config_path, "r", encoding="utf-8") as f:
config = json.load(f)
client_id = config.get("client_id")
if not client_id:
print("❌ 配置文件缺少 client_id")
return
# 生成授权URL
redirect_uri = f"http://localhost:{args.port}/callback"
params = {
"client_id": client_id,
"redirect_uri": redirect_uri,
"scope": args.scope,
"state": "auth",
"response_type": "code"
}
auth_url = f"https://dida365.com/oauth/authorize?{urlencode(params)}"
# 显示信息
print("\n" + "="*70)
print("滴答清单OAuth授权URL")
print("="*70)
print(f"\nClient ID: {client_id}")
print(f"Redirect URI: {redirect_uri}")
print(f"Scope: {args.scope}")
print("\n" + "="*70)
print("授权URL:")
print("="*70)
print(f"\n{auth_url}\n")
print("="*70)
print("使用步骤:")
print("="*70)
print("1. 复制上面的URL到浏览器")
print("2. 登录滴答清单账号并授权")
print(f"3. 确保本地服务器运行在端口 {args.port}\n")
if __name__ == "__main__":
main()