-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ci: replace python-telegram-bot with telethon (#1076)
- Loading branch information
1 parent
bf823a2
commit f349507
Showing
9 changed files
with
96 additions
and
117 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,101 +1,89 @@ | ||
import os | ||
import sys | ||
import asyncio | ||
import telegram | ||
from telegram import helpers | ||
|
||
|
||
BOT_TOKEN = os.environ.get("BOT_TOKEN") | ||
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") | ||
COMMIT_URL = os.environ.get("COMMIT_URL") | ||
COMMIT_MESSAGE = os.environ.get("COMMIT_MESSAGE") | ||
RUN_URL = os.environ.get("RUN_URL") | ||
TITLE = os.environ.get("TITLE") | ||
VERSION = os.environ.get("VERSION") | ||
MSG_TEMPLATE = """ | ||
*{title}* | ||
\#ci\_{version} | ||
``` | ||
{commit_message} | ||
``` | ||
[Commit]({commit_url}) | ||
[Workflow run]({run_url}) | ||
""".strip() | ||
|
||
|
||
def get_caption(): | ||
msg = MSG_TEMPLATE.format( | ||
title=helpers.escape_markdown(TITLE, 2), | ||
version=helpers.escape_markdown(VERSION, 2), | ||
commit_message=helpers.escape_markdown(COMMIT_MESSAGE, 2, telegram.MessageEntity.PRE), | ||
commit_url=helpers.escape_markdown(COMMIT_URL, 2, telegram.MessageEntity.TEXT_LINK), | ||
run_url=helpers.escape_markdown(RUN_URL, 2, telegram.MessageEntity.TEXT_LINK) | ||
) | ||
if len(msg) > telegram.constants.MessageLimit.CAPTION_LENGTH: | ||
return COMMIT_URL | ||
return msg | ||
|
||
|
||
def check_environ(): | ||
if BOT_TOKEN is None: | ||
print("[-] Invalid BOT_TOKEN") | ||
exit(1) | ||
if CHAT_ID is None: | ||
print("[-] Invalid CHAT_ID") | ||
exit(1) | ||
if CACHE_CHAT_ID is None: | ||
print("[-] Invalid CACHE_CHAT_ID") | ||
exit(1) | ||
if COMMIT_URL is None: | ||
print("[-] Invalid COMMIT_URL") | ||
exit(1) | ||
if COMMIT_MESSAGE is None: | ||
print("[-] Invalid COMMIT_MESSAGE") | ||
exit(1) | ||
if RUN_URL is None: | ||
print("[-] Invalid RUN_URL") | ||
exit(1) | ||
if TITLE is None: | ||
print("[-] Invalid TITLE") | ||
exit(1) | ||
if VERSION is None: | ||
print("[-] Invalid VERSION") | ||
exit(1) | ||
|
||
|
||
async def main(): | ||
print("[+] Uploading to telegram") | ||
check_environ() | ||
print("[+] Files:", sys.argv[1:]) | ||
bot = telegram.Bot(BOT_TOKEN) | ||
files = [] | ||
paths = sys.argv[1:] | ||
caption = get_caption() | ||
print("[+] Caption: ") | ||
print("---") | ||
print(caption) | ||
print("---") | ||
for one in paths: | ||
if not os.path.exists(one): | ||
print("[-] File not exist: " + one) | ||
continue | ||
print("[+] Upload: " + one) | ||
msg = await bot.send_document(CACHE_CHAT_ID, one, write_timeout=60, connect_timeout=30) | ||
if one == paths[-1]: | ||
files.append(telegram.InputMediaDocument(msg.document, | ||
caption=caption, | ||
parse_mode=telegram.constants.ParseMode.MARKDOWN_V2)) | ||
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()])) | ||
|
||
import asyncio | ||
import os | ||
import sys | ||
from telethon import TelegramClient | ||
from telethon.tl.functions.help import GetConfigRequest | ||
|
||
API_ID = 611335 | ||
API_HASH = "d524b414d21f4d37f08684c1df41ac9c" | ||
|
||
|
||
BOT_TOKEN = os.environ.get("BOT_TOKEN") | ||
CHAT_ID = os.environ.get("CHAT_ID") | ||
MESSAGE_THREAD_ID = os.environ.get("MESSAGE_THREAD_ID") | ||
COMMIT_URL = os.environ.get("COMMIT_URL") | ||
COMMIT_MESSAGE = os.environ.get("COMMIT_MESSAGE") | ||
RUN_URL = os.environ.get("RUN_URL") | ||
TITLE = os.environ.get("TITLE") | ||
VERSION = os.environ.get("VERSION") | ||
MSG_TEMPLATE = """ | ||
**{title}** | ||
#ci_{version} | ||
``` | ||
{commit_message} | ||
``` | ||
[Commit]({commit_url}) | ||
[Workflow run]({run_url}) | ||
""".strip() | ||
|
||
|
||
def get_caption(): | ||
msg = MSG_TEMPLATE.format( | ||
title=TITLE, | ||
version=VERSION, | ||
commit_message=COMMIT_MESSAGE, | ||
commit_url=COMMIT_URL, | ||
run_url=RUN_URL, | ||
) | ||
if len(msg) > 1024: | ||
return COMMIT_URL | ||
return msg | ||
|
||
|
||
def check_environ(): | ||
if BOT_TOKEN is None: | ||
print("[-] Invalid BOT_TOKEN") | ||
exit(1) | ||
if CHAT_ID is None: | ||
print("[-] Invalid CHAT_ID") | ||
exit(1) | ||
if COMMIT_URL is None: | ||
print("[-] Invalid COMMIT_URL") | ||
exit(1) | ||
if COMMIT_MESSAGE is None: | ||
print("[-] Invalid COMMIT_MESSAGE") | ||
exit(1) | ||
if RUN_URL is None: | ||
print("[-] Invalid RUN_URL") | ||
exit(1) | ||
if TITLE is None: | ||
print("[-] Invalid TITLE") | ||
exit(1) | ||
if VERSION is None: | ||
print("[-] Invalid VERSION") | ||
exit(1) | ||
|
||
|
||
async def main(): | ||
print("[+] Uploading to telegram") | ||
check_environ() | ||
files = sys.argv[1:] | ||
print("[+] Files:", files) | ||
if len(files) <= 0: | ||
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: | ||
caption = [""] * len(files) | ||
caption[-1] = get_caption() | ||
print("[+] Caption: ") | ||
print("---") | ||
print(caption) | ||
print("---") | ||
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__": | ||
asyncio.run(main()) |