mirror of
https://github.com/Ytong825/mao.git
synced 2025-12-16 23:10:06 +08:00
172 lines
5.1 KiB
Plaintext
172 lines
5.1 KiB
Plaintext
"""
|
||
📖 小阅阅_V5.5 ♻20250813
|
||
|
||
✅ 新增:支持多渠道推送,请在青龙配置文件 config.sh 中添加必要的推送参数,并将变量中的token参数设置为000(详见下方参数说明)。(建议使用脚本自带pushplus推送,更稳定)。
|
||
✅ 完善检测文章。
|
||
✅ 修改bug,完善多渠道推送。
|
||
|
||
🔔 阅读赚金币,金币可提现,每天1—2元,本脚本自动推送检测文章到微信,需要用户手动阅读过检测,过检测后脚本自动完成剩余任务,不需要下载app,在微信打开下方链接即可进入到活动页。(打开活动页时请无视微信的安全提示)
|
||
|
||
👉活动入口 微信打开:http://2121430.k4f1.sanming0.cn/yyiyase/f56fb7c54f55edd1b77d23b3577da92b?ukd=88
|
||
备用链接:https://tinyurl.com/5t3yhsfm
|
||
https://tinyurl.com/2tc96zpc
|
||
最新地址获取:https://tinyurl.com/27y64eve
|
||
|
||
👉建议将链接添加至微信收藏(微信_我_收藏_⊕_粘贴),并添加备注以方便查找。
|
||
"""
|
||
|
||
import os, requests, time, json, random
|
||
|
||
# ========== 配置区域 ==========
|
||
# 从环境变量读取账号信息
|
||
accounts = os.environ.get("xyy_ck", "").split("&")
|
||
|
||
# 推送相关配置
|
||
PUSHPLUS_TOKEN = os.environ.get("PUSHPLUS_TOKEN", "")
|
||
BARK_TOKEN = os.environ.get("BARK_TOKEN", "")
|
||
TG_BOT_TOKEN = os.environ.get("TG_BOT_TOKEN", "")
|
||
TG_USER_ID = os.environ.get("TG_USER_ID", "")
|
||
QYWX_KEY = os.environ.get("QYWX_KEY", "")
|
||
|
||
# ==============================
|
||
|
||
headers = {
|
||
"User-Agent": "Mozilla/5.0 (Linux; Android 10; Mobile Safari/537.36)"
|
||
}
|
||
|
||
def log(msg):
|
||
print(f"[小阅阅] {msg}")
|
||
|
||
# ========== 推送函数 ==========
|
||
def pushplus(title, content):
|
||
if not PUSHPLUS_TOKEN or PUSHPLUS_TOKEN == "000":
|
||
return
|
||
url = "http://www.pushplus.plus/send"
|
||
data = {
|
||
"token": PUSHPLUS_TOKEN,
|
||
"title": title,
|
||
"content": content
|
||
}
|
||
try:
|
||
requests.post(url, json=data, timeout=10)
|
||
except:
|
||
pass
|
||
|
||
def bark(title, content):
|
||
if not BARK_TOKEN: return
|
||
url = f"https://api.day.app/{BARK_TOKEN}/{title}/{content}"
|
||
try:
|
||
requests.get(url, timeout=10)
|
||
except:
|
||
pass
|
||
|
||
def tg_bot(title, content):
|
||
if not TG_BOT_TOKEN or not TG_USER_ID: return
|
||
url = f"https://api.telegram.org/bot{TG_BOT_TOKEN}/sendMessage"
|
||
data = {"chat_id": TG_USER_ID, "text": f"{title}\n\n{content}"}
|
||
try:
|
||
requests.post(url, data=data, timeout=10)
|
||
except:
|
||
pass
|
||
|
||
def qywx(title, content):
|
||
if not QYWX_KEY: return
|
||
url = f"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={QYWX_KEY}"
|
||
data = {
|
||
"msgtype": "text",
|
||
"text": {"content": f"{title}\n\n{content}"}
|
||
}
|
||
try:
|
||
requests.post(url, json=data, timeout=10)
|
||
except:
|
||
pass
|
||
|
||
def notify(title, content):
|
||
log(content)
|
||
pushplus(title, content)
|
||
bark(title, content)
|
||
tg_bot(title, content)
|
||
qywx(title, content)
|
||
|
||
|
||
# ========== 任务核心逻辑 ==========
|
||
|
||
def check_in(session, ck):
|
||
"""检测文章是否能打开"""
|
||
url = "https://sanming0.cn/api/check"
|
||
try:
|
||
r = session.get(url, headers=headers, timeout=10)
|
||
if "检测成功" in r.text:
|
||
return True
|
||
except:
|
||
return False
|
||
return False
|
||
|
||
def read_article(session, ck):
|
||
"""模拟阅读文章,获得金币"""
|
||
url = "https://sanming0.cn/api/read"
|
||
try:
|
||
r = session.get(url, headers=headers, timeout=10)
|
||
data = r.json()
|
||
if data.get("code") == 0:
|
||
return data.get("msg", "成功")
|
||
else:
|
||
return data.get("msg", "失败")
|
||
except Exception as e:
|
||
return f"异常: {e}"
|
||
|
||
def get_info(session, ck):
|
||
"""查询账户金币信息"""
|
||
url = "https://sanming0.cn/api/userinfo"
|
||
try:
|
||
r = session.get(url, headers=headers, timeout=10)
|
||
data = r.json()
|
||
coin = data.get("coin", 0)
|
||
cash = coin / 10000
|
||
return f"金币:{coin}(≈{cash:.2f}元)"
|
||
except:
|
||
return "获取账户信息失败"
|
||
|
||
def run_task(ck):
|
||
"""执行单个账号任务"""
|
||
session = requests.Session()
|
||
session.headers.update(headers)
|
||
session.headers.update({"Cookie": ck})
|
||
|
||
result = []
|
||
log("开始检测文章...")
|
||
if not check_in(session, ck):
|
||
result.append("❌ 检测文章失败,请手动阅读一次检测文章")
|
||
return "\n".join(result)
|
||
|
||
log("检测文章成功,开始阅读...")
|
||
for i in range(10):
|
||
msg = read_article(session, ck)
|
||
result.append(f"第{i+1}次阅读: {msg}")
|
||
time.sleep(random.randint(3, 8)) # 模拟人工间隔
|
||
|
||
result.append(get_info(session, ck))
|
||
return "\n".join(result)
|
||
|
||
|
||
# ========== 主入口 ==========
|
||
|
||
def main():
|
||
if not accounts or accounts == [""]:
|
||
log("未检测到账号变量,请在青龙 config.sh 中添加 xyy_ck")
|
||
return
|
||
|
||
all_msg = []
|
||
for i, ck in enumerate(accounts, 1):
|
||
log(f"开始执行账号{i}")
|
||
msg = run_task(ck)
|
||
account_msg = f"账号{i} 执行结果:\n{msg}\n"
|
||
all_msg.append(account_msg)
|
||
|
||
final_msg = "\n".join(all_msg)
|
||
notify("小阅阅任务结果", final_msg)
|
||
|
||
|
||
if __name__ == "__main__":
|
||
main()
|