编写脚本

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_urlreturn None, None, Noneexcept Exception as e:return None, f"请求失败: {e}", Nonedef 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, signdef 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 = webhookif 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 -l59 23 1,15 * * /usr/bin/python3 trx_mandatory_update.py

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/86560.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/86560.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/86560.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux-系统管理

[rootlocalhost ~]# lscpu //查看cpu [rootlocalhost etc]# cat /etc/redhat-release //查看当前目录的版本信息 [rootlocalhost ~]# ifconfig //查看当前激活的网卡信息 [rootlocalhost ~]# ifconfig ens33 192.168.1.10 //给网卡配置临时地址 [rootlocalhost ~]# hostnam…

【Spring】系统化的 Spring Boot 全栈学习教程,涵盖基础配置、核心功能、进阶实战及文档自动生成

这里写目录标题 🛠️ **一、环境搭建与项目创建**1. 开发环境准备2. 创建第一个项目(Spring Initializr) 🚀 **二、核心功能开发**1. RESTful API 开发2. 数据持久化(Spring Data JPA)3. 配置文件多环境切换…

Discrete Audio Tokens: More Than a Survey

文章目录 模型设计的考虑量化的方式:比特率:Fixed vs. Adaptive Bitrate码本内容设计的考虑Streamability. 模型评估Reconstruction Evaluation and Complexity Analysis.识别和生成任务(SE, SR)Acoustic Language Modeling.Music Generation…

设计在线教育项目核心数据库表

1 在线教育项目核心数据库表设计-ER图 简介:设计在线教育的核心库表结构 在线教育站点速览 xdclass.net ER图知识回顾: 实体对象:矩形属性:椭圆关系:菱形 核心库表 videochapterepisodeuservideo_ordervideo_banner…

【音视频】Ubuntu下配置ffmpeg库

一、下载预编译的库 在github上可以找到编译好的ffmpeg,多个版本的都有,这里我下载ffmpeg编译好的动态库 仓库链接:(https://github.com/BtbN/FFmpeg-Builds/releases 下载后解压得到 二、配置环境变量 打开.bashrc配置文件,添…

equine在神经网络中建立量化不确定性

​一、软件介绍 文末提供程序和源码下载 众所周知,用于监督标记问题的深度神经网络 (DNN) 可以在各种学习任务中产生准确的结果。但是,当准确性是唯一目标时,DNN 经常会做出过于自信的预测,并且无论测试数…

C++动态链接库之非托管封装Invoke,供C#/C++ 等编程语言使用,小白教程——C++动态链接库(一)

目录: 一、前言及背景1.1需求描述1.2应用背景 二、编程基础知识2.1非托管方式交互逻辑2.2该方式下C 与C# 数据转换对应2.3VS工程下的注意点2.4C封装接口2.4.1 __declspec(dllexport) 方式2.4.2 .def 文件方式2.4.3结合使用(高级) 2.5C# 封装接…

消息队列的网络模型详解:IO多路复用、Reactor模型、零拷贝

文章目录 一、消息队列的网路模型拟解决问题单个请求性能优化1. 编解码速度2. 网络模块处理速度 并发请求性能优化1. 高效的连接管理2. 快速处理高并发请求3. 大流量场景处理 二、一些技术基础知识1. 基于多路复用技术管理 TCP 连接(提高性能)&#xff0…

【生成模型】【模型介绍】(一)视频生成Wan2.1速度质量简单评测

基础模型:FramePack https://github.com/kijai/ComfyUI-FramePackWrapper huggingface-cli download Comfy-Org/HunyuanVideo_repackaged --local-dir Comfy-Org/HunyuanVideo_repackaged --resume-download huggingface-cli download Comfy-Org/sigclip_vision_3…

微信小程序之滑块scroll-view

我们要做的东西&#xff1a; 滑块的视频 我们先做个基本的图片和文字(wxm;)&#xff1a; <scroll-view><view class"scrollItem"><image src"https://bkimg.cdn.bcebos.com/pic/fc1f4134970a304e251fd88e8191b086c9177f3ef634?x-bce-processim…

如何写出优秀的单元测试?

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 写出优秀的单元测试需要考虑以下几个方面&#xff1a; 1. 测试用例设计 测试用例应该覆盖被测试代码的不同场景和边界情况&#xff0c;以尽可能发现潜在的问题。…

Python LangChain 3.0 详解:重构大模型应用开发范式

引言 在人工智能技术日新月异的今天&#xff0c;大模型应用开发框架的迭代速度直接决定了AI落地的效率。LangChain作为这一领域的领军者&#xff0c;于2024年正式发布3.0版本&#xff0c;通过架构重构与功能扩展&#xff0c;为开发者提供了更强大的工具集。本文将深入解析Lang…

Java模板设计模式详解

以下是Java模板设计模式的详细解析&#xff1a; 一、核心定义 模板模式&#xff08;Template Method Pattern&#xff09;是一种‌行为型设计模式‌&#xff0c;通过定义算法骨架并允许子类重写特定步骤&#xff0c;实现代码复用与扩展。其核心在于控制‌流程标准化‌&#x…

Word 中批量转换 LaTeX 公式为标准数学格式的终极方法(附宏设置教程)

在学术写作中&#xff0c;我们常常需要将 LaTeX 格式的公式插入到 Word 文档中。但如果你有一大段公式使用 $...$ 或 LaTeX 命令&#xff0c;手动转换无疑非常耗时。本文将介绍一种“一键转换所有 LaTeX 公式为 Word 数学公式”的方法&#xff0c;只需设置一次宏&#xff0c;后…

linux上查看文件系统类型

假设 有文件系统mount在/data-pool&#xff1a; df -h ./ 文件系统 大小 已用 可用 已用% 挂载点 data-pool 1.5T 345M 1.5T 1% /data-pool如何查看 data-pool 这个文件系统的文件系统类型&#xff08;格式&#xff09;&#xff0c;比如是 ext4、btrfs、z…

Android14-HAL分析

文章目录 一、HAL综述二、Android各版本HAL的演进三、传统HAL(< Android7)四、HIDL HAL(Android8-10)1、参考资料2、概述2、架构3、实现一个HIDL HAL1&#xff09;HIDL的开发流程2&#xff09;HIDL HAL的语法3&#xff09;创建HAL接口&生成impl库4&#xff09;Service实…

【WebSocket】学习总结

是一种协议&#xff1b; 作用与Web应用程序和服务端之间&#xff1b; 实时的、双向的&#xff1b; 通过单一的TCP提供了持久化连接&#xff1b; 优势&#xff1a; 实时、双向、可以减少网络的负载&#xff1b; 劣势&#xff1a; 需要客户端和服务端双方都支持&#xff1b; 连续…

“组件协作”模式之策略模式

目录 策略模式引例动机 Motivation模式定义结构要点总结 策略模式 引例 税务计算系统&#xff0c;根据各个国家的税法&#xff0c;进行税务计算。各个国家税法规定差别很大&#xff0c;需对应进行相应的实现。 常规解耦前写法 使用if-else语句或switch-case语句进行结构化分…

VS Git巨坑 切换分支失败导致原分支被修改

VS2013Git 首先当前分支&#xff08;分支A&#xff09;的变更已经提交&#xff0c;应该可以正常切换分支。 想切换到一个比较老的分支B&#xff08;跟当前分支存在较大差异&#xff0c;增加了很多文件&#xff09;&#xff0c;VS中提示切换失败&#xff0c;当前分支仍然是分支A…

uniapp页面间通信uni.$on与通过uni.navigateTo中eventChannal的方式的区别

背景。无意间开发uniapp程序用到了页面跳转数据传递的两种方式。但各用于什么场景&#xff0c;有什么区别记录一下。大模型给的内容较多&#xff0c;贴出一些结论。eventChannel文档链接uni.$emit文档链接 页面跳转而非全局事件通知&#xff0c;优先选择eventChanel的方式。 首…