python编写脚本每月1号和15号执行一次将TRX是否强更发送到钉钉

发布于:2025-06-29 ⋅ 阅读:(19) ⋅ 点赞:(0)

编写脚本

import requests
import json
import time
import hmac
import hashlib
import base64
import urllib.parse

# === 1. 配置钉钉机器人 ===
webhook = "https://oapi.dingtalk.com/robot/send?access_token=XXXXXX"
secret = "XXXXXXXX"  # 如果没有加签验证,请设置为 None

# === 2. GitHub Releases API ===
GITHUB_API = "https://api.github.com/repos/tronprotocol/java-tron/releases"

def get_latest_mandatory_release():
    try:
        response = requests.get(GITHUB_API, timeout=10)
        releases = response.json()
        for release in releases:
            body = release.get("body", "").lower()
            if "mandatory upgrade" in body:
                tag = release.get("tag_name")
                html_url = release.get("html_url")
                return tag, body.strip(), html_url
        return None, None, None
    except Exception as e:
        return None, f"请求失败: {e}", None

def gen_sign(secret):
    timestamp = str(round(time.time() * 1000))
    string_to_sign = f'{timestamp}\n{secret}'
    hmac_code = hmac.new(secret.encode(), string_to_sign.encode(), hashlib.sha256).digest()
    sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
    return timestamp, sign

def send_to_dingtalk(title, content, link):
    headers = {"Content-Type": "application/json"}
    message = {
        "msgtype": "markdown",
        "markdown": {
            "title": title,
            "text": f"{title}\n\n{content}\n\n[查看详情]({link})"
        }
    }

    url = webhook
    if secret:
        timestamp, sign = gen_sign(secret)
        url += f"&timestamp={timestamp}&sign={sign}"

    resp = requests.post(url, headers=headers, data=json.dumps(message))
    if resp.status_code != 200:
        print(f"发送失败: {resp.status_code}, {resp.text}")
    else:
        print("✅ 已发送钉钉通知")

if __name__ == "__main__":
    version, note, url = get_latest_mandatory_release()
    if version and note:
        send_to_dingtalk(
            title=f"Java-Tron 发布 Mandatory 升级版本 {version}",
            content=note[:500],  # 钉钉限制最大消息体
            link=url
        )
    else:
        print("未发现 Mandatory 升级版本或请求失败")

编写定时任务

root@iZj6c2h0zqqhn8um6xho5uZ:~/python3# crontab -l

59 23 1,15 * * /usr/bin/python3 trx_mandatory_update.py

钉钉消息
在这里插入图片描述
点击详情就切换到当前最新版本,目前最新版本是
https://github.com/tronprotocol/java-tron/releases/tag/GreatVoyage-v4.8.0


网站公告

今日签到

点亮在社区的每一天
去签到