from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton
from defs.utils import Module, TrackMessage
from ci import me
template = """
{}
模块:{}
简介:{}
版本:{}
更新时间:{}
更新日志:
{}
@lsposed_Modules_Updates_Tracker | @lsposed_Geeks_Bot
"""
def gen_button(data: Module) -> InlineKeyboardMarkup:
data_ = []
if data.releases:
if data.releases[0].releaseAssets:
data_ = [[InlineKeyboardButton("⬇️ 下载", url=data.releases[0].releaseAssets[0].url)]]
data_.extend([[InlineKeyboardButton("Release", url=data.releases[0].url),
InlineKeyboardButton("主页", url=data.homepageUrl),
InlineKeyboardButton(
"订阅",
url=f"https://t.me/{me.username}?start={data.name.replace('.', '_')}"), ]])
else:
data_.extend([[InlineKeyboardButton("主页", url=data.homepageUrl),
InlineKeyboardButton(
"订阅",
url=f"https://t.me/{me.username}?start={data.name.replace('.', '_')}"), ]])
return InlineKeyboardMarkup(data_)
def format_text(text: str) -> str:
text = text.strip()
for i in ["/", " ", "-", "@", "(", ]:
text = text.replace(i, "_")
for i in ["【", "】", "[", "]", "!", "(", ")", "`", "!", ]:
text = text.replace(i, "")
return text.strip()
def gen_tags(data: Module) -> str:
text = f"#{format_text(data.description.split()[0])} "
if data.collaborators:
text += f"#{format_text(data.collaborators[0])} "
return text
def gen_update_msg(data: Module) -> TrackMessage:
text = template.format(gen_tags(data), data.name, data.description, data.latestRelease,
data.updatedAt,
data.releases[0].description.replace(r"\r\n", "\n")[:250].strip())
url = None
name = None
if data.releases and data.releases[0].releaseAssets:
url = data.releases[0].releaseAssets[0].url
mime = data.releases[0].releaseAssets[0].name.split(".")[-1:][0]
name = data.name.replace('.', '_') + "-" + data.latestRelease + "." + mime
button = gen_button(data)
return TrackMessage(text, url, name, button)