67 lines
2.0 KiB
Python
Raw Normal View History

2025-03-19 17:38:46 +08:00
import datetime
import requests
import sys
class NotifyTelegram:
def __init__(self):
self.group_id: str = ""
self.bot_id: str = ""
self.proxies: dict = {
'http': 'socks5://localhost:10808',
'https': 'socks5://localhost:10808'
}
self.text: str = "empty text"
def set_text(self, state: str, branch: str, commit_user: str, commit_message: str,
commit_hash: str, project_name: str, build_status: str) -> None:
title: str = f"Build Project: {project_name}"
branch_message: str = f"Building Branch: {branch}"
commit_user: str = f"Commit by: {commit_user}"
commit_message: str = f"Commit message: {commit_message}"
commit_hash: str = f"Commit hash: {commit_hash}"
finish_datetime: str = f"Finish: {datetime.datetime.now()}"
start_datetime: str = f"Start: {datetime.datetime.now()}"
build_status: str = f"Build Status: {build_status}"
if state == "finish":
self.text = f"""{title}:
{branch_message}
{commit_user}
{commit_message}
{commit_hash}
{finish_datetime}
{build_status}
"""
elif state == "start":
self.text = f"""{title}:
{branch_message}
{commit_user}
{commit_message}
{commit_hash}
{start_datetime}
{build_status}
"""
else:
self.text = "empty text"
print("Warning: state Error")
def send_message(self, use_proxies: bool = False) -> None:
url: str = f"https://api.telegram.org/bot{self.bot_id}/sendMessage"
proxies = None
if use_proxies:
proxies = self.proxies
params: dict = {"chat_id": self.group_id, "text": self.text}
html = requests.get(url, data=params, proxies=proxies)
print(html.text)
try:
x = NotifyTelegram()
# 状态, 分支, 提交人, 提交信息, 提交哈希, 项目名, 构建状态
x.set_text(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], sys.argv[5], sys.argv[6], sys.argv[7])
x.send_message(use_proxies=True)
except Exception as e:
print(e)