Htelegram.py (3129B)
1 import logging 2 import telegram.ext 3 from telegram.ext import Filters 4 5 logger = logging.getLogger(__name__) 6 7 from bot.helper import sc, updater, memory_class 8 from bot.Hcommand import register_command 9 10 11 class Telegram: 12 def __init__(self): 13 self.sc = sc 14 self.updater = updater 15 self.memory = memory_class 16 17 def Hsyc(self, bot, update): 18 try: 19 tg2sl = self.memory.get_by_path(['tg_sl-sync'])['tg2sl'] 20 except Exception as e: 21 traceback.print_exc() 22 update.message.reply_text('Failed to get memory. Please contact Admin!') 23 try: 24 if str(update.message.chat_id) in tg2sl: 25 response = self.sc.api_call( 26 "chat.postMessage", 27 channel=tg2sl[str(update.message.chat_id)], 28 text=update.message.text, 29 username="{firstname} {lastname} ({synced_chat})".format(firstname=update.message.from_user['first_name'], lastname=update.message.from_user['last_name'], synced_chat=update.message['chat']['title']), 30 icon_url=str(bot.getFile(file_id=update.message.from_user.get_profile_photos(limit=1)['photos'][0][0]['file_id'])['file_path']) 31 ) 32 print("response: {}".format(response)) 33 except Exception as e: 34 traceback.print_exc() 35 update.message.reply_text('Failed to sync to chat. Please contact Admin!') 36 print(update.message.text) 37 38 # @register_command('slacksync') 39 def Cslacksync(self, bot, update): 40 print('got it') 41 params = update.message.text.split() 42 logger.debug(params[1]) 43 44 try: 45 tg2sl = self.memory.get_by_path(['tg_sl-sync'])['tg2sl'] 46 sl2tg = self.memory.get_by_path(['tg_sl-sync'])['sl2tg'] 47 except Exception as e: 48 traceback.print_exc() 49 update.message.reply_text('Failed to get memory. Please contact Admin!') 50 51 update.message.reply_text(tg2sl) 52 53 if update.message.chat_id in tg2sl: 54 update.message.reply_text('This channel is already synced!') 55 else: 56 logger.debug("got sync request...") 57 try: 58 tg2sl[str(update.message.chat_id)] = params[1] 59 sl2tg[str(params[1])] = str(update.message.chat_id) 60 new_memory = {'tg2sl': tg2sl, 'sl2tg': sl2tg} 61 self.memory.set_by_path(['tg_sl-sync'], new_memory) 62 self.memory.save() 63 update.message.reply_text('Saved sync!') 64 logger.debug("sync saved") 65 except Exception as e: 66 traceback.print_exc() 67 update.message.reply_text('Failed to save sync!') 68 69 def telegram_init(self): 70 try: 71 logger.info("Telegram starting...") 72 self.updater.dispatcher.add_handler(telegram.ext.MessageHandler(Filters.text, self.Hsyc)) 73 self.updater.dispatcher.add_handler(telegram.ext.CommandHandler('slacksync', self.Cslacksync)) 74 self.updater.start_polling() 75 except KeyboardInterrupt: 76 sys.exit()