import json from configparser import RawConfigParser from os import sep, mkdir from os.path import exists from pyrogram import Client from apscheduler.schedulers.asyncio import AsyncIOScheduler from httpx import AsyncClient from sqlitedict import SqliteDict if not exists("data"): mkdir("data") sqlite = SqliteDict(f"data{sep}data.sqlite", encode=json.dumps, decode=json.loads, autocommit=True) # data.sqlite 结构如下: # { # "update_time": int, # } # 读取配置文件 config = RawConfigParser() config.read("config.ini") api_id: int = 0 api_hash: str = "" bot_token: str = "" admin_id: int = 0 channel_id: int = 0 api_id = config.getint("pyrogram", "api_id", fallback=api_id) api_hash = config.get("pyrogram", "api_hash", fallback=api_hash) bot_token = config.get("basic", "bot_token", fallback=bot_token) admin_id = config.getint("basic", "admin", fallback=admin_id) channel_id = config.getint("basic", "channel_id", fallback=channel_id) """ Init httpx client """ # 使用自定义 UA headers = { "Host": "papi.jiemian.com", "Referer": "https://www.jiemian.com/", "Connection": "keep-alive", "Accept": "application/json, text/javascript, */*; q=0.01", "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "Accept-Encoding": "gzip, deflate", "Accept-Language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7", "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36", } client = AsyncClient(timeout=10.0, headers=headers, follow_redirects=True) # 初始化客户端 scheduler = AsyncIOScheduler(timezone="Asia/ShangHai") app = Client("bot", api_id=api_id, api_hash=api_hash, bot_token=bot_token, plugins={"root": "plugins"})