ci: replace python-telegram-bot with telethon (#1076)

This commit is contained in:
Js0n
2023-10-24 07:00:23 +08:00
committed by GitHub
parent bf823a29e8
commit f349507232
9 changed files with 96 additions and 117 deletions

View File

@@ -57,7 +57,6 @@ jobs:
if: ${{ ( github.event_name != 'pull_request' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' || github.ref == 'refs/heads/ci' }} if: ${{ ( github.event_name != 'pull_request' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' || github.ref == 'refs/heads/ci' }}
env: env:
CHAT_ID: ${{ secrets.CHAT_ID }} CHAT_ID: ${{ secrets.CHAT_ID }}
CACHE_CHAT_ID: ${{ secrets.CACHE_CHAT_ID }}
BOT_TOKEN: ${{ secrets.BOT_TOKEN }} BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }} MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }}
COMMIT_MESSAGE: ${{ github.event.head_commit.message }} COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
@@ -83,7 +82,7 @@ jobs:
git clone $AOSP_MIRROR/platform/prebuilts/build-tools -b $BRANCH --depth 1 build-tools git clone $AOSP_MIRROR/platform/prebuilts/build-tools -b $BRANCH --depth 1 build-tools
git clone $AOSP_MIRROR/kernel/prebuilts/build-tools -b $BRANCH --depth 1 kernel-build-tools git clone $AOSP_MIRROR/kernel/prebuilts/build-tools -b $BRANCH --depth 1 kernel-build-tools
git clone $AOSP_MIRROR/platform/system/tools/mkbootimg -b $BRANCH --depth 1 git clone $AOSP_MIRROR/platform/system/tools/mkbootimg -b $BRANCH --depth 1
pip3 install python-telegram-bot pip3 install telethon==1.31.1
- name: Set boot sign key - name: Set boot sign key
env: env:

View File

@@ -80,7 +80,6 @@ jobs:
if: ${{ ( github.event_name != 'pull_request' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' || github.ref == 'refs/heads/ci' }} if: ${{ ( github.event_name != 'pull_request' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' || github.ref == 'refs/heads/ci' }}
env: env:
CHAT_ID: ${{ secrets.CHAT_ID }} CHAT_ID: ${{ secrets.CHAT_ID }}
CACHE_CHAT_ID: ${{ secrets.CACHE_CHAT_ID }}
BOT_TOKEN: ${{ secrets.BOT_TOKEN }} BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }} MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }}
COMMIT_MESSAGE: ${{ github.event.head_commit.message }} COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
@@ -106,7 +105,7 @@ jobs:
git clone $AOSP_MIRROR/platform/prebuilts/build-tools -b $BRANCH --depth 1 build-tools git clone $AOSP_MIRROR/platform/prebuilts/build-tools -b $BRANCH --depth 1 build-tools
git clone $AOSP_MIRROR/kernel/prebuilts/build-tools -b $BRANCH --depth 1 kernel-build-tools git clone $AOSP_MIRROR/kernel/prebuilts/build-tools -b $BRANCH --depth 1 kernel-build-tools
git clone $AOSP_MIRROR/platform/system/tools/mkbootimg -b $BRANCH --depth 1 git clone $AOSP_MIRROR/platform/system/tools/mkbootimg -b $BRANCH --depth 1
pip3 install python-telegram-bot pip3 install telethon==1.31.1
- name: Set boot sign key - name: Set boot sign key
env: env:

View File

@@ -41,7 +41,6 @@ jobs:
if: ${{ ( github.event_name != 'pull_request' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' || github.ref == 'refs/heads/ci' }} if: ${{ ( github.event_name != 'pull_request' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' || github.ref == 'refs/heads/ci' }}
env: env:
CHAT_ID: ${{ secrets.CHAT_ID }} CHAT_ID: ${{ secrets.CHAT_ID }}
CACHE_CHAT_ID: ${{ secrets.CACHE_CHAT_ID }}
BOT_TOKEN: ${{ secrets.BOT_TOKEN }} BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }} MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }}
COMMIT_MESSAGE: ${{ github.event.head_commit.message }} COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
@@ -67,7 +66,7 @@ jobs:
git clone $AOSP_MIRROR/platform/prebuilts/build-tools -b $BRANCH --depth 1 build-tools git clone $AOSP_MIRROR/platform/prebuilts/build-tools -b $BRANCH --depth 1 build-tools
git clone $AOSP_MIRROR/kernel/prebuilts/build-tools -b $BRANCH --depth 1 kernel-build-tools git clone $AOSP_MIRROR/kernel/prebuilts/build-tools -b $BRANCH --depth 1 kernel-build-tools
git clone $AOSP_MIRROR/platform/system/tools/mkbootimg -b $BRANCH --depth 1 git clone $AOSP_MIRROR/platform/system/tools/mkbootimg -b $BRANCH --depth 1
pip3 install python-telegram-bot pip3 install telethon==1.31.1
- name: Set boot sign key - name: Set boot sign key
env: env:

View File

@@ -119,7 +119,6 @@ jobs:
if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' }} if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' }}
env: env:
CHAT_ID: ${{ secrets.CHAT_ID }} CHAT_ID: ${{ secrets.CHAT_ID }}
CACHE_CHAT_ID: ${{ secrets.CACHE_CHAT_ID }}
BOT_TOKEN: ${{ secrets.BOT_TOKEN }} BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }} MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }}
COMMIT_MESSAGE: ${{ github.event.head_commit.message }} COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
@@ -135,6 +134,6 @@ jobs:
echo "[+] Image to upload" echo "[+] Image to upload"
ls -l "${{ env.file_path }}.gz" ls -l "${{ env.file_path }}.gz"
if [ -n "${{ secrets.BOT_TOKEN }}" ]; then if [ -n "${{ secrets.BOT_TOKEN }}" ]; then
pip3 install python-telegram-bot pip3 install telethon==1.31.1
python3 "$GITHUB_WORKSPACE/KernelSU/scripts/ksubot.py" "${{ env.file_path }}.gz" python3 "$GITHUB_WORKSPACE/KernelSU/scripts/ksubot.py" "${{ env.file_path }}.gz"
fi fi

View File

@@ -113,7 +113,6 @@ jobs:
if: github.event_name == 'push' && github.ref == 'refs/heads/main' || github.ref_type == 'tag' if: github.event_name == 'push' && github.ref == 'refs/heads/main' || github.ref_type == 'tag'
env: env:
CHAT_ID: ${{ secrets.CHAT_ID }} CHAT_ID: ${{ secrets.CHAT_ID }}
CACHE_CHAT_ID: ${{ secrets.CACHE_CHAT_ID }}
BOT_TOKEN: ${{ secrets.BOT_TOKEN }} BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }} MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }}
COMMIT_MESSAGE: ${{ github.event.head_commit.message }} COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
@@ -129,6 +128,6 @@ jobs:
echo "[+] Image to upload" echo "[+] Image to upload"
ls -l "${{ env.file_path }}.gz" ls -l "${{ env.file_path }}.gz"
if [ -n "${{ secrets.BOT_TOKEN }}" ]; then if [ -n "${{ secrets.BOT_TOKEN }}" ]; then
pip3 install python-telegram-bot pip3 install telethon==1.31.1
python3 "$GITHUB_WORKSPACE/KernelSU/scripts/ksubot.py" "${{ env.file_path }}.gz" python3 "$GITHUB_WORKSPACE/KernelSU/scripts/ksubot.py" "${{ env.file_path }}.gz"
fi fi

View File

@@ -110,7 +110,6 @@ jobs:
if: github.event_name != 'pull_request' && steps.need_upload.outputs.UPLOAD == 'true' if: github.event_name != 'pull_request' && steps.need_upload.outputs.UPLOAD == 'true'
env: env:
CHAT_ID: ${{ secrets.CHAT_ID }} CHAT_ID: ${{ secrets.CHAT_ID }}
CACHE_CHAT_ID: ${{ secrets.CACHE_CHAT_ID }}
BOT_TOKEN: ${{ secrets.BOT_TOKEN }} BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }} MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }}
COMMIT_MESSAGE: ${{ github.event.head_commit.message }} COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
@@ -121,6 +120,6 @@ jobs:
if [ ! -z "${{ secrets.BOT_TOKEN }}" ]; then if [ ! -z "${{ secrets.BOT_TOKEN }}" ]; then
export VERSION=$(git rev-list --count HEAD) export VERSION=$(git rev-list --count HEAD)
APK=$(find ./app/build/outputs/apk/release -name "*.apk") APK=$(find ./app/build/outputs/apk/release -name "*.apk")
pip3 install python-telegram-bot pip3 install telethon==1.31.1
python3 $GITHUB_WORKSPACE/scripts/ksubot.py $APK python3 $GITHUB_WORKSPACE/scripts/ksubot.py $APK
fi fi

View File

@@ -45,7 +45,6 @@ jobs:
if: github.event_name != 'pull_request' && steps.need_upload.outputs.UPLOAD == 'true' if: github.event_name != 'pull_request' && steps.need_upload.outputs.UPLOAD == 'true'
env: env:
CHAT_ID: ${{ secrets.CHAT_ID }} CHAT_ID: ${{ secrets.CHAT_ID }}
CACHE_CHAT_ID: ${{ secrets.CACHE_CHAT_ID }}
BOT_TOKEN: ${{ secrets.BOT_TOKEN }} BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }} MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }}
COMMIT_MESSAGE: ${{ github.event.head_commit.message }} COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
@@ -55,7 +54,7 @@ jobs:
run: | run: |
if [ ! -z "${{ secrets.BOT_TOKEN }}" ]; then if [ ! -z "${{ secrets.BOT_TOKEN }}" ]; then
export VERSION=$(git rev-list --count HEAD) export VERSION=$(git rev-list --count HEAD)
pip3 install python-telegram-bot pip3 install telethon==1.31.1
mv ./userspace/su/libs/arm64-v8a/su su-arm64 mv ./userspace/su/libs/arm64-v8a/su su-arm64
mv ./userspace/su/libs/x86_64/su su-x86_64 mv ./userspace/su/libs/x86_64/su su-x86_64
python3 scripts/ksubot.py su-arm64 su-x86_64 python3 scripts/ksubot.py su-arm64 su-x86_64

View File

@@ -54,8 +54,6 @@ on:
required: false required: false
CHAT_ID: CHAT_ID:
required: false required: false
CACHE_CHAT_ID:
required: false
BOT_TOKEN: BOT_TOKEN:
required: false required: false
MESSAGE_THREAD_ID: MESSAGE_THREAD_ID:

View File

@@ -1,101 +1,89 @@
import os import asyncio
import sys import os
import asyncio import sys
import telegram from telethon import TelegramClient
from telegram import helpers from telethon.tl.functions.help import GetConfigRequest
API_ID = 611335
BOT_TOKEN = os.environ.get("BOT_TOKEN") API_HASH = "d524b414d21f4d37f08684c1df41ac9c"
CHAT_ID = os.environ.get("CHAT_ID")
CACHE_CHAT_ID = os.environ.get("CACHE_CHAT_ID")
MESSAGE_THREAD_ID = os.environ.get("MESSAGE_THREAD_ID") BOT_TOKEN = os.environ.get("BOT_TOKEN")
COMMIT_URL = os.environ.get("COMMIT_URL") CHAT_ID = os.environ.get("CHAT_ID")
COMMIT_MESSAGE = os.environ.get("COMMIT_MESSAGE") MESSAGE_THREAD_ID = os.environ.get("MESSAGE_THREAD_ID")
RUN_URL = os.environ.get("RUN_URL") COMMIT_URL = os.environ.get("COMMIT_URL")
TITLE = os.environ.get("TITLE") COMMIT_MESSAGE = os.environ.get("COMMIT_MESSAGE")
VERSION = os.environ.get("VERSION") RUN_URL = os.environ.get("RUN_URL")
MSG_TEMPLATE = """ TITLE = os.environ.get("TITLE")
*{title}* VERSION = os.environ.get("VERSION")
\#ci\_{version} MSG_TEMPLATE = """
``` **{title}**
{commit_message} #ci_{version}
``` ```
[Commit]({commit_url}) {commit_message}
[Workflow run]({run_url}) ```
""".strip() [Commit]({commit_url})
[Workflow run]({run_url})
""".strip()
def get_caption():
msg = MSG_TEMPLATE.format(
title=helpers.escape_markdown(TITLE, 2), def get_caption():
version=helpers.escape_markdown(VERSION, 2), msg = MSG_TEMPLATE.format(
commit_message=helpers.escape_markdown(COMMIT_MESSAGE, 2, telegram.MessageEntity.PRE), title=TITLE,
commit_url=helpers.escape_markdown(COMMIT_URL, 2, telegram.MessageEntity.TEXT_LINK), version=VERSION,
run_url=helpers.escape_markdown(RUN_URL, 2, telegram.MessageEntity.TEXT_LINK) commit_message=COMMIT_MESSAGE,
) commit_url=COMMIT_URL,
if len(msg) > telegram.constants.MessageLimit.CAPTION_LENGTH: run_url=RUN_URL,
return COMMIT_URL )
return msg if len(msg) > 1024:
return COMMIT_URL
return msg
def check_environ():
if BOT_TOKEN is None:
print("[-] Invalid BOT_TOKEN") def check_environ():
exit(1) if BOT_TOKEN is None:
if CHAT_ID is None: print("[-] Invalid BOT_TOKEN")
print("[-] Invalid CHAT_ID") exit(1)
exit(1) if CHAT_ID is None:
if CACHE_CHAT_ID is None: print("[-] Invalid CHAT_ID")
print("[-] Invalid CACHE_CHAT_ID") exit(1)
exit(1) if COMMIT_URL is None:
if COMMIT_URL is None: print("[-] Invalid COMMIT_URL")
print("[-] Invalid COMMIT_URL") exit(1)
exit(1) if COMMIT_MESSAGE is None:
if COMMIT_MESSAGE is None: print("[-] Invalid COMMIT_MESSAGE")
print("[-] Invalid COMMIT_MESSAGE") exit(1)
exit(1) if RUN_URL is None:
if RUN_URL is None: print("[-] Invalid RUN_URL")
print("[-] Invalid RUN_URL") exit(1)
exit(1) if TITLE is None:
if TITLE is None: print("[-] Invalid TITLE")
print("[-] Invalid TITLE") exit(1)
exit(1) if VERSION is None:
if VERSION is None: print("[-] Invalid VERSION")
print("[-] Invalid VERSION") exit(1)
exit(1)
async def main():
async def main(): print("[+] Uploading to telegram")
print("[+] Uploading to telegram") check_environ()
check_environ() files = sys.argv[1:]
print("[+] Files:", sys.argv[1:]) print("[+] Files:", files)
bot = telegram.Bot(BOT_TOKEN) if len(files) <= 0:
files = [] print("[-] No files to upload")
paths = sys.argv[1:] exit(1)
caption = get_caption() print("[+] Logging in Telegram with bot")
print("[+] Caption: ") async with await TelegramClient(session=None, api_id=API_ID, api_hash=API_HASH).start(bot_token=BOT_TOKEN) as bot:
print("---") caption = [""] * len(files)
print(caption) caption[-1] = get_caption()
print("---") print("[+] Caption: ")
for one in paths: print("---")
if not os.path.exists(one): print(caption)
print("[-] File not exist: " + one) print("---")
continue print("[+] Sending")
print("[+] Upload: " + one) await bot.send_file(entity=CHAT_ID, file=files, caption=caption, reply_to=MESSAGE_THREAD_ID, parse_mode="markdown")
msg = await bot.send_document(CACHE_CHAT_ID, one, write_timeout=60, connect_timeout=30) print("[+] Done!")
if one == paths[-1]: await bot.log_out()
files.append(telegram.InputMediaDocument(msg.document,
caption=caption, if __name__ == "__main__":
parse_mode=telegram.constants.ParseMode.MARKDOWN_V2)) asyncio.run(main())
else:
files.append(telegram.InputMediaDocument(msg.document))
await bot.delete_message(CACHE_CHAT_ID, msg.message_id)
print("[+] Sending")
await bot.send_media_group(CHAT_ID, files, message_thread_id=MESSAGE_THREAD_ID)
print("[+] Done!")
if __name__ == "__main__":
loops = asyncio.new_event_loop()
loops.run_until_complete(asyncio.wait([main()]))