From f4b53daddf99c69c199e0ee1827d2c9cc870a501 Mon Sep 17 00:00:00 2001 From: Js0n <29531167+JasonKhew96@users.noreply.github.com> Date: Wed, 25 Oct 2023 11:32:46 +0800 Subject: [PATCH] fix(bot): prevent flood wait by caching bot session (#1082) This stop bot from re-login every run. --- .github/workflows/build-kernel-a12.yml | 8 ++++++-- .github/workflows/build-kernel-a13.yml | 8 ++++++-- .github/workflows/build-kernel-a14.yml | 8 ++++++-- .github/workflows/build-kernel-arcvm.yml | 8 ++++++++ .github/workflows/build-kernel-wsa.yml | 8 ++++++++ .github/workflows/build-manager.yml | 8 ++++++-- .github/workflows/build-su.yml | 8 ++++++-- scripts/ksubot.py | 5 +++-- 8 files changed, 49 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-kernel-a12.yml b/.github/workflows/build-kernel-a12.yml index 7ecfb7283185..d656711d0a4b 100644 --- a/.github/workflows/build-kernel-a12.yml +++ b/.github/workflows/build-kernel-a12.yml @@ -92,8 +92,12 @@ jobs: echo "$BOOT_SIGN_KEY" > ./kernel-build-tools/linux-x86/share/avb/testkey_rsa2048.pem fi - - name: Setup mutex for uploading - uses: ben-z/gh-action-mutex@v1.0-alpha-7 + - name: Bot session cache + id: bot_session_cache + uses: actions/cache@v3 + with: + path: scripts/ksubot.session + key: ${{ runner.os }}-bot-session - name: Build boot images run: | diff --git a/.github/workflows/build-kernel-a13.yml b/.github/workflows/build-kernel-a13.yml index efe7ba5a3a89..338e5c1fa621 100644 --- a/.github/workflows/build-kernel-a13.yml +++ b/.github/workflows/build-kernel-a13.yml @@ -115,8 +115,12 @@ jobs: echo "$BOOT_SIGN_KEY" > ./kernel-build-tools/linux-x86/share/avb/testkey_rsa2048.pem fi - - name: Setup mutex for uploading - uses: ben-z/gh-action-mutex@v1.0-alpha-7 + - name: Bot session cache + id: bot_session_cache + uses: actions/cache@v3 + with: + path: scripts/ksubot.session + key: ${{ runner.os }}-bot-session - name: Build boot images run: | diff --git a/.github/workflows/build-kernel-a14.yml b/.github/workflows/build-kernel-a14.yml index 3640bf7165bf..74131818dc2b 100644 --- a/.github/workflows/build-kernel-a14.yml +++ b/.github/workflows/build-kernel-a14.yml @@ -76,8 +76,12 @@ jobs: echo "$BOOT_SIGN_KEY" > ./kernel-build-tools/linux-x86/share/avb/testkey_rsa2048.pem fi - - name: Setup mutex for uploading - uses: ben-z/gh-action-mutex@v1.0-alpha-7 + - name: Bot session cache + id: bot_session_cache + uses: actions/cache@v3 + with: + path: scripts/ksubot.session + key: ${{ runner.os }}-bot-session - name: Build boot images run: | diff --git a/.github/workflows/build-kernel-arcvm.yml b/.github/workflows/build-kernel-arcvm.yml index 367d0e3c25e5..567d533c164d 100644 --- a/.github/workflows/build-kernel-arcvm.yml +++ b/.github/workflows/build-kernel-arcvm.yml @@ -115,6 +115,14 @@ jobs: name: kernel-ARCVM-${{ matrix.arch }}-${{ matrix.version }} path: "${{ env.file_path }}" + - name: Bot session cache + if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' }} + id: bot_session_cache + uses: actions/cache@v3 + with: + path: scripts/ksubot.session + key: ${{ runner.os }}-bot-session + - name: Post to Telegram if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' }} env: diff --git a/.github/workflows/build-kernel-wsa.yml b/.github/workflows/build-kernel-wsa.yml index 967edbbc15a3..cdd43bc2d81f 100644 --- a/.github/workflows/build-kernel-wsa.yml +++ b/.github/workflows/build-kernel-wsa.yml @@ -109,6 +109,14 @@ jobs: name: kernel-WSA-${{ matrix.arch }}-${{ matrix.version }} path: "${{ env.file_path }}" + - name: Bot session cache + if: github.event_name == 'push' && github.ref == 'refs/heads/main' || github.ref_type == 'tag' + id: bot_session_cache + uses: actions/cache@v3 + with: + path: scripts/ksubot.session + key: ${{ runner.os }}-bot-session + - name: Post to Telegram if: github.event_name == 'push' && github.ref == 'refs/heads/main' || github.ref_type == 'tag' env: diff --git a/.github/workflows/build-manager.yml b/.github/workflows/build-manager.yml index 42d8035c5472..67ddb34af536 100644 --- a/.github/workflows/build-manager.yml +++ b/.github/workflows/build-manager.yml @@ -102,9 +102,13 @@ jobs: name: manager path: manager/app/build/outputs/apk/release/*.apk - - name: Setup mutex for uploading - uses: ben-z/gh-action-mutex@v1.0-alpha-7 + - name: Bot session cache if: github.event_name != 'pull_request' && steps.need_upload.outputs.UPLOAD == 'true' + id: bot_session_cache + uses: actions/cache@v3 + with: + path: scripts/ksubot.session + key: ${{ runner.os }}-bot-session - name: Upload to telegram if: github.event_name != 'pull_request' && steps.need_upload.outputs.UPLOAD == 'true' diff --git a/.github/workflows/build-su.yml b/.github/workflows/build-su.yml index 8c4068dd6b2e..4c92611170dc 100644 --- a/.github/workflows/build-su.yml +++ b/.github/workflows/build-su.yml @@ -37,9 +37,13 @@ jobs: with: name: su path: ./userspace/su/libs - - name: Setup mutex for uploading - uses: ben-z/gh-action-mutex@v1.0-alpha-7 + - name: Bot session cache if: github.event_name != 'pull_request' && steps.need_upload.outputs.UPLOAD == 'true' + id: bot_session_cache + uses: actions/cache@v3 + with: + path: scripts/ksubot.session + key: ${{ runner.os }}-bot-session - name: Upload to telegram if: github.event_name != 'pull_request' && steps.need_upload.outputs.UPLOAD == 'true' env: diff --git a/scripts/ksubot.py b/scripts/ksubot.py index a2fb1822d19e..45c9c2bd0eff 100644 --- a/scripts/ksubot.py +++ b/scripts/ksubot.py @@ -73,7 +73,9 @@ async def main(): print("[-] No files to upload") exit(1) print("[+] Logging in Telegram with bot") - async with await TelegramClient(session=None, api_id=API_ID, api_hash=API_HASH).start(bot_token=BOT_TOKEN) as bot: + script_dir = os.path.dirname(os.path.abspath(sys.argv[0])) + session_dir = os.path.join(script_dir, "ksubot.session") + async with await TelegramClient(session=session_dir, api_id=API_ID, api_hash=API_HASH).start(bot_token=BOT_TOKEN) as bot: caption = [""] * len(files) caption[-1] = get_caption() print("[+] Caption: ") @@ -83,7 +85,6 @@ async def main(): print("[+] Sending") await bot.send_file(entity=CHAT_ID, file=files, caption=caption, reply_to=MESSAGE_THREAD_ID, parse_mode="markdown") print("[+] Done!") - await bot.log_out() if __name__ == "__main__": try: