diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0537c22 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ + +.idea diff --git a/SlashBot.py b/SlashBot.py index 6c4fb57..f0dadd9 100644 --- a/SlashBot.py +++ b/SlashBot.py @@ -1,5 +1,8 @@ import os import re +from typing import List, Dict, Union + +import requests from telegram.ext import Updater, MessageHandler, filters TELEGRAM = 777000 @@ -15,6 +18,12 @@ else: raise Exception('no token') +# Find someone's full name by their username +def find_name_by_username(username: str) -> str: + r = requests.get(f'https://t.me/{username.replace("@", "")}') + return re.search('(?<= str: + + # Combine name + last = user.get('last_name', '') + first = user['first_name'] + name = first + (f' {last}' if last else '') + + # Create user reference link + username = user.get('username', '') + uid = user.get('id', '') + link = f'tg://resolve?domain={username}' if username else f'tg://user?id={uid}' + + return f"[{name}]({link})" def get_text(mention_from, mention_rpl, command): @@ -61,21 +98,23 @@ def get_text(mention_from, mention_rpl, command): def reply(update, context): print(update.to_dict()) msg = update.to_dict()['message'] - command = msg['text'] from_user, rpl_user = get_users(msg) - mention_from, mention_rpl = mention(from_user), mention(rpl_user) + # Escape markdown + command = msg['text'] + command = command.replace("_", "\\_").replace("*", "\\*").replace("[", "\\[").replace("`", "\\`") - text = get_text(mention_from, mention_rpl, command) + text = get_text(mention(from_user), mention(rpl_user), command) print(text, end='\n\n') update.effective_message.reply_text(text, parse_mode='Markdown') -updater = Updater(token=Token, use_context=True) -delUsername = re.compile('@' + updater.bot.username, re.I) -dp = updater.dispatcher -dp.add_handler(MessageHandler(Filters.regex(parser), reply)) +if __name__ == '__main__': + updater = Updater(token=Token, use_context=True) + delUsername = re.compile('@' + updater.bot.username, re.I) + dp = updater.dispatcher + dp.add_handler(MessageHandler(Filters.regex(parser), reply)) -updater.start_polling() -updater.idle() + updater.start_polling() + updater.idle() diff --git a/mtp_test.py b/mtp_test.py new file mode 100644 index 0000000..a3870ce --- /dev/null +++ b/mtp_test.py @@ -0,0 +1,25 @@ +import asyncio + +import socks +from telethon import TelegramClient, functions + +# Configuration +proxy = (socks.SOCKS5, 'localhost', 7890) +api_id = 7000000 +api_hash = '506828842c80ea408b94d1**********' +bot = TelegramClient('Bot', api_id, api_hash, proxy=proxy).start(bot_token='16679*****:***hCZ-*******RNRx9BYd-Hb**********') + + +async def main(): + # Find user by username + user = await bot(functions.contacts.ResolveUsernameRequest(username='hykilpikonna')) + print(user) + print() + user = user.users[0] + name = user.first_name + (' ' + user.last_name if user.last_name else '') + print(name) + + +if __name__ == '__main__': + loop = asyncio.get_event_loop() + loop.run_until_complete(main()) diff --git a/requirements.txt b/requirements.txt index 11a50f9..63667ac 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ -python-telegram-bot \ No newline at end of file +python-telegram-bot +requests