def pr_menu_sort(bot, update, user_data): query = update.callback_query user = Users.objects.get(telegram_id=query.from_user.id) if 'i_subcategory' in query.data: user_data['category_name'] = query.data[13:] else: pass user.params += '/Sorting' user.save() #user_data['category_name'] = query.data[13:] context = {'Lang': user.lang} msg = loader.get_template( 'bot/Mutual_PR/Telegram/pr_menu/pr_menu_sort.html').render(context) keyboard = InlineKeyboardMarkup( [[ ikb(user.GetButtons('Подписчики 🔼'), callback_data='inst_sorting_followers_up'), ikb(user.GetButtons('Подписчики 🔽'), callback_data='inst_sorting_followers_down') ], [ ikb(user.GetButtons('Сначала новые 🕓'), callback_data='inst_sorting_date_new'), ikb(user.GetButtons('Сначала старые 🕑'), callback_data='inst_sorting_date_old') ], [ikb(user.GetButtons('«'), callback_data='back_inline')]]) user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
def feedback(bot, update): user = Users.objects.get(telegram_id=update.callback_query.from_user.id) user.params += '/Feedback' user.save() keyboard = InlineKeyboardMarkup([ [ikb(user.GetButtons('✉️ Написать сообщение'), callback_data='pa_feedback_create')], [ikb(user.GetButtons('«'), callback_data='back_inline')] ]) context = {'Lang': user.lang} msg = loader.get_template('bot/PersonalArea/Feedback/feedback.html').render(context) user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
def broadcast_menu(bot, update): user = Users.objects.get(telegram_id=update.callback_query.from_user.id) user.params += '/Broadcast' user.save() keyboard = InlineKeyboardMarkup([[ ikb('Rus', callback_data='broadcast_Rus'), ikb('Eng', callback_data='broadcast_Eng') ], [ikb('Uzb', callback_data='broadcast_Uzb')]]) user.SendMessage(bot=bot, msg='Выберите локализацию для рассылки', keyboard=keyboard, save_massage_id=True)
def support(bot, update): user = Users.objects.get(telegram_id=update.callback_query.from_user.id) user.params += '/Support' user.save() keyboard = InlineKeyboardMarkup([[ ikb(user.GetButtons('🤖 Проголосовать в StoreBot'), url='https://google.com') ], [ikb(user.GetButtons('«'), callback_data='back_inline')]]) context = {'Lang': user.lang} msg = loader.get_template( 'bot/PersonalArea/SupportProject/support.html').render(context) user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
def delete_ad_confirm(bot, update): query = update.callback_query user = Users.objects.get(telegram_id=query.from_user.id) ad = Ad.objects.get(id=query.data[12:]) user.params += '/' + str(ad.id) keyboard = InlineKeyboardMarkup([[ ikb(user.GetButtons('Да'), callback_data='pa_delete_ad_yes'), ikb(user.GetButtons('Нет'), callback_data='pa_delete_ad_no') ]]) context = {'Lang': user.lang, 'Ad': ad} msg = loader.get_template( 'bot/PersonalArea/DeleteAd/delete_ad_confirm.html').render(context) user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
def mutual_menu(bot, update): if update.message: user = Users.objects.get(telegram_id=update.message.chat.id) elif update.callback_query: user = Users.objects.get(telegram_id=update.callback_query.from_user.id) user.params = '/Mutual' user.save() context = {'Lang': user.lang} msg = loader.get_template('bot/Mutual_PR/mutual_menu.html').render(context) keyboard = InlineKeyboardMarkup([ [ikb(user.GetButtons('Instagram'), callback_data='MP_instagram'), ikb(user.GetButtons('Telegram'), callback_data='MP_telegram')] ]) user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
def options(bot, update): query = update.callback_query chat_id = query.message.chat_id d = StrictRedis() l = sorted(d.hkeys(chat_id)) choice = query.data if choice == "Messages": counter = int(d.hget(chat_id, '#msg')) for i in range(0, counter): k = d.hget(chat_id, 'msg' + str(i)) annc_sub, annc_by, annc_body = k.split('|') if i == counter - 1: bot.send_message(text=annc_sub + '\n\n' + annc_by + '\n\n' + annc_body, chat_id=chat_id, reply_markup=markup_options) else: bot.send_message(text=annc_sub + '\n\n' + annc_by + '\n\n' + annc_body, chat_id=chat_id) return elif choice == "Resources": num_courses = int(d.hget(chat_id, '#course')) course_markup = [] temp = [] t = [] for i in range(0, num_courses, 2): if i + 1 < num_courses: course_markup.append([ ikb('{}'.format(d.hget(chat_id, 'c{}'.format(i))), callback_data='{}'.format( d.hget(chat_id, 'c{}'.format(i)))), ikb('{}'.format(d.hget(chat_id, 'c{}'.format(i + 1))), callback_data='{}'.format( d.hget(chat_id, 'c{}'.format(i + 1)))) ]) else: course_markup.append([ ikb('{}'.format(d.hget(chat_id, 'c{}'.format(i))), callback_data='{}'.format( d.hget(chat_id, 'c{}'.format(i)))) ]) bot.send_message(text="Choose Subject --", chat_id=chat_id, reply_markup=ikm(course_markup)) else: update.message.reply_text("Sorry Wrong Input!") return
def view_ad(bot, update): query = update.callback_query user = Users.objects.get(telegram_id=query.from_user.id) user.params += '/ViewAd' user.save() ad = Ad.objects.get(id=query.data[6:]) keyboard = InlineKeyboardMarkup([[ ikb(user.GetButtons('📲 Связаться с администратором'), url='https://t.me/' + ad.creator.username) ], [ikb(user.GetButtons('«'), callback_data='back_inline')]]) context = {'Lang': user.lang, 'Ad': ad} msg = loader.get_template( 'bot/Mutual_PR/Telegram/pr_menu/view_ad.html').render(context) user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
def received_information(bot, update, user_data): p = StrictRedis() text = update.message.text reg_pattern = re.compile(r"^[0-9]*$") category = user_data['choice'] bot.send_chat_action(chat_id=update.message.chat_id, action=ChatAction.TYPING) if (category == 'Reg. Number'): if (re.match(reg_pattern, text) and len(text) <= 8): user_data[category] = text lock = threading.Lock() with lock: p.hset(update.message.chat_id, 'umsReg', text) del user_data['choice'] update.message.reply_text("Now click on Password", reply_markup=markup_setup) return CHOOSING else: update.message.reply_text("Please enter a valid %s!" % user_data['choice']) return CHOOSING else: user_data[category] = text lock1 = threading.Lock() with lock1: p.hset(update.message.chat_id, 'umsPass', text) del user_data['choice'] update.message.reply_text( "Thanks for entering Password!", reply_markup=ikm([[ikb('Load Data', callback_data='load')]])) return LOAD
def term_selector(bot, update): query = update.callback_query chat_id = query.message.chat_id regNumber = database(chat_id, 'regNumber') umsPass = database(chat_id, 'umsPass') time_stamp = time() sess_start = database(chat_id, 'sess_start') if time_stamp - float(sess_start) <= 180: pickled_sess = db.hget(chat_id, 'sess_obj') sess = pickle.loads(pickled_sess) else: home_page = homeData(bot, update, regNumber, umsPass, chat_id, query) if home_page: sess = db.hget(chat_id, 'sess_obj') sess = pickle.loads(sess) else: return mte = Midterm(sess) mte.token_creator(mte.base_page) term_list = mte.term_list keyboared = [] for index, item in enumerate(term_list): if item != None: keyboared.append( [ikb(item, callback_data='term_{}_{}'.format(item, index))]) reply_keyboared_term = ikm(keyboared) bot.send_message(text="Choose Term -", chat_id=chat_id, reply_markup=reply_keyboared_term)
def received_information(bot, update, user_data): chat_id = update.message.chat_id text = update.message.text reg_pattern = re.compile(r"^[0-9]*$") category = user_data['choice'] regNumber = None umsPass = None bot.send_chat_action(chat_id=update.message.chat_id, action=ChatAction.TYPING, timeout=3) if (category == 'Reg. Number'): if (re.match(reg_pattern, text) and len(text) <= 8): user_data[category] = text db.hset(chat_id, 'regNumber', text) del user_data['choice'] update.message.reply_text("Now click on Password", reply_markup=markup_reg) return CHOOSING else: update.message.reply_text("Please enter a valid %s!" % user_data['choice']) return TYPING_REPLY else: user_data[category] = text umsPass = text db.hset(chat_id, 'umsPass', umsPass) del user_data['choice'] update.message.reply_text( "Thanks for entering Password!", reply_markup=ikm([[ikb('Load Data', callback_data='load')]])) return LOAD
def delme(bot, update): chat_id = update.message.chat_id db.delete(chat_id, '{}-msg'.format(chat_id), '{}-courselist'.format(chat_id), '{}-mte'.format(chat_id)) update.message.reply_text( 'Your data is erased.\nPlease press "Setup" to register.', reply_markup=ikm([[ikb('Setup', callback_data='Setup')]])) return -1
def edit_subcategory(bot, update): user = Users.objects.get(telegram_id=update.callback_query.from_user.id) user.params += '/Subcategory' user.save() ad = Ad.objects.get(id=int(re.findall('Editing/(\d+)', user.params)[0])) ads = Ad.objects.filter(creator=user) button_list = [] node = MutualPRCategory.objects.get(category_name=ad.category) subcategories = node.get_children() for sub in subcategories: #button_list.append(ikb(sub.category_name, callback_data='pa_edit_subcat_'+sub.category_name)) button_list.append(ikb(user.GetButtons(sub.category_name), callback_data='pa_edit_subcat_'+sub.category_name)) button_list.append(ikb(user.GetButtons('«'), callback_data='back_inline')) context = {'Lang': user.lang, 'Ad': ad} msg = loader.get_template('bot/PersonalArea/EditAd/edit_subcategory.html').render(context) user.SendMessage(bot=bot, msg=msg, keyboard=InlineKeyboardMarkup(build_menu(button_list, n_cols=2)), save_massage_id=True)
def ad_category(bot, update): if update.callback_query: user = Users.objects.get(telegram_id=update.callback_query.from_user.id) elif update.message: user = Users.objects.get(telegram_id=update.message.chat.id) ad = Ad.objects.create(creator=user) user.params += '/CreateAd' user.params += '/' + str(ad.id) user.save() category = MutualPRCategory.objects.root_nodes() context = {'Lang': user.lang} msg = loader.get_template('bot/PersonalArea/CreateAd/create_ad.html').render(context) keyboard = [] for cat in category: keyboard.append([ikb(user.GetButtons(cat.category_name), callback_data='PA_create_ad_category_' + cat.category_name)]) keyboard.append([ikb(user.GetButtons('«'), callback_data='back_inline')]) user.SendMessage(bot=bot, msg=msg, keyboard=InlineKeyboardMarkup(keyboard), save_massage_id=True)
def personal_area(bot, update): if update.callback_query: user = Users.objects.get( telegram_id=update.callback_query.from_user.id) else: user = Users.objects.get(telegram_id=update.message.chat.id) user.params = '/PersonalArea' user.save() context = {'Lang': user.lang} msg = loader.get_template('bot/PersonalArea/personal_area.html').render( context) keyboard = InlineKeyboardMarkup([[ ikb(user.GetButtons('📢 Мои объявления'), callback_data='PA_my_ads'), ikb(user.GetButtons('✉️ Обратная связь'), callback_data='PA_feedback') ], [ ikb(user.GetButtons('💵 Поддержать проект'), callback_data='PA_support') ]]) user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
def ad_subcategory(bot, update): if update.callback_query: user = Users.objects.get(telegram_id=update.callback_query.from_user.id) elif update.message: user = Users.objects.get(telegram_id=update.message.chat.id) user.params += '/SubCategory' user.save() context = {'Lang': user.lang} msg = loader.get_template('bot/PersonalArea/CreateAd/ad_subcategory.html').render(context) button_list = [] ad = Ad.objects.get(id=int(re.findall('CreateAd/(\d+)', user.params)[0])) node = MutualPRCategory.objects.get(category_name=ad.category) subcategories = node.get_children() for sub in subcategories: button_list.append(ikb(user.GetButtons(sub.category_name), callback_data='Pa_subcategory_' + sub.category_name)) #button_list.append(ikb(sub.category_name, callback_data='PA_subcategory_' + sub.category_name)) button_list.append(ikb(user.GetButtons('«'), callback_data='back_inline')) user.SendMessage(bot=bot, msg=msg, keyboard=InlineKeyboardMarkup(build_menu(button_list, n_cols=2)), save_massage_id=True)
def my_ads(bot, update): user = Users.objects.get(telegram_id=update.callback_query.from_user.id) user.params += '/Ads' user.save() context = {'Lang': user.lang} msg = loader.get_template('bot/PersonalArea/my_ads.html').render(context) keyboard = InlineKeyboardMarkup( [[ ikb(user.GetButtons('📝 Создать объявление'), callback_data='PA_create_ad') ], [ ikb(user.GetButtons('📠 Редактировать объявления'), callback_data='PA_edit_ad') ], [ ikb(user.GetButtons('🗑 Удалить объявление'), callback_data='PA_delete_ad') ], [ikb(user.GetButtons('«'), callback_data='back_inline')]]) user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
def edit_ads_menu(bot, update): user = Users.objects.get(telegram_id=update.callback_query.from_user.id) if user.params == '/PersonalArea/Ads': user.params += '/Editing' else: user.DelEndParams(2) user.params += '/Editing' user.save() ads = Ad.objects.filter(creator=user) context = {'Lang': user.lang} msg = loader.get_template('bot/PersonalArea/EditAd/edit_ads_menu.html').render(context) button_list = [] for ad in ads: if 'nstagram' in ad.channel_name: button_list.append(ikb('@' + ad.channel_name[22:] + ' 📸', callback_data='PA_edit_ad' + str(ad.id))) elif 't.me' in ad.channel_name: button_list.append(ikb('@' + ad.channel_name[13:] + ' 🚀', callback_data='PA_edit_ad' + str(ad.id))) button_list.append(ikb(user.GetButtons('«'), callback_data='back_inline')) user.SendMessage(bot=bot, msg=msg, keyboard=InlineKeyboardMarkup(build_menu(button_list, n_cols=2)), save_massage_id=True)
def edit(bot, update, user_data): if update.callback_query: query = update.callback_query user = Users.objects.get(telegram_id=query.from_user.id) if 'Subcategory' in user.params: ad = Ad.objects.get(id=user_data['ad_id']) user_data.clear() user.DelEndParams(2) else: if user.params == '/PersonalArea/Ads/Editing': ad = Ad.objects.get(id=query.data[10:]) else: ad = Ad.objects.get(id=int(re.findall('Editing/(\d+)', user.params)[0])) user.DelEndParams() else: user = Users.objects.get(telegram_id=update.message.chat.id) ad = Ad.objects.get(id=user_data['ad_id']) #user_data.clear() user.params += '/' + str(ad.id) user.save() keyboard = InlineKeyboardMarkup([ [ikb(user.GetButtons('Подкатегорию'), callback_data='pa_edit_ad_subcategory'), ikb(user.GetButtons('Адрес канала'), callback_data='pa_edit_ad_channel_name')], [ikb(user.GetButtons('Мин. количество'), callback_data='pa_edit_ad_min_count'), ikb(user.GetButtons('Комментарий'), callback_data='pa_edit_ad_comment')], [ikb(user.GetButtons('Отменить'), callback_data='pa_edit_ad_cancel'), ikb(user.GetButtons('💾 Сохранить'), callback_data='pa_edit_ad_save')] ]) context = {'Lang': user.lang, 'Ad': ad} msg = loader.get_template('bot/PersonalArea/EditAd/edit.html').render(context) user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
def pr_menu(bot, update, user_data): query = update.callback_query user = Users.objects.get(telegram_id=query.from_user.id) user.params += '/AdsList' user.save() if query.data == 'inst_sorting_followers_up': ads = Ad.objects.filter( localization=user.lang, category='Instagram', subcategory=user_data['category_name']).order_by('min_count') elif query.data == 'inst_sorting_followers_down': ads = Ad.objects.filter( localization=user.lang, category='Instagram', subcategory=user_data['category_name']).order_by('-min_count') elif query.data == 'inst_sorting_date_new': ads = Ad.objects.filter( localization=user.lang, category='Instagram', subcategory=user_data['category_name']).order_by('pub_date') else: ads = Ad.objects.filter( localization=user.lang, category='Instagram', subcategory=user_data['category_name']).order_by('-pub_date') button_list = [] for ad in ads: button_list.append( ikb('@' + ad.channel_name[22:] + ' min. ' + str(ad.min_count), callback_data='mp_ad_' + str(ad.id))) button_list.append(ikb(user.GetButtons('«'), callback_data='back_inline')) context = {'Lang': user.lang, 'Subcategory': user_data['category_name']} msg = loader.get_template( 'bot/Mutual_PR/Telegram/pr_menu/pr_menu.html').render(context) user.SendMessage(bot=bot, msg=msg, keyboard=InlineKeyboardMarkup( build_menu(button_list, n_cols=2)), save_massage_id=True)
def send_msg(bot, update, user_data): user = Users.objects.get(telegram_id=update.message.chat.id) context = {'Lang': user.lang, 'Text': update.message.text} msg = loader.get_template('bot/Adminka/send_msg.html').render(context) keyboard = InlineKeyboardMarkup( [[ikb(user.GetButtons('Ответить'), callback_data='admin_msg_reply')]]) bot.send_message(chat_id=user_data['user_id'], text=msg, reply_markup=keyboard) user_data.clear() user.SendMessage(bot=bot, msg='Сообщение отправлено', save_massage_id=True) sleep(1) MainMenu(bot, update)
def categories_menu(bot, update, user_data): user = Users.objects.get(telegram_id=update.callback_query.from_user.id) user.params += '/Instagram/Subcategory' user.save() node = MutualPRCategory.objects.get(id=2) subcategories = node.get_children() button_list = [] for sub in subcategories: button_list.append( ikb('{}'.format(user.GetButtons(sub.category_name)) + ' (' + get_count_ads(sub.category_name, user_lang=user.lang) + ')', callback_data='i_subcategory' + sub.category_name)) #button_list.append(ikb(sub.category_name + ' (' + get_count_ads(sub.category_name, user_lang=user.lang) + ')', # callback_data='i_subcategory' + sub.category_name)) button_list.append(ikb(user.GetButtons('«'), callback_data='back_inline')) context = {'Lang': user.lang} msg = loader.get_template( 'bot/Mutual_PR/Telegram/categories_menu.html').render(context) user.SendMessage(bot=bot, msg=msg, keyboard=InlineKeyboardMarkup( build_menu(button_list, n_cols=2)), save_massage_id=True)
def admin_menu(bot, update): user = Users.objects.get(telegram_id=update.message.chat.id) if user.telegram_id not in admin_list: user.SendMessage(bot=bot, msg='Poshel naxoy otsudova 🖕', save_massage_id=True) sleep(3) MainMenu(bot, update) else: user.params = '/Adminka' user.save() keyboard = InlineKeyboardMarkup( [[ ikb('Удалить объяление', callback_data='admin_delete_ad'), ikb('Рассылка', callback_data='admin_broadcast') ], [ ikb('Написать пользователю', callback_data='admin_send_msg'), ikb('Статистика', callback_data='admin_statistic') ]]) user.SendMessage(bot=bot, msg='Админка', keyboard=keyboard, save_massage_id=True)
def options(bot, update): print("Optins function starting......") query = update.callback_query chat_id = query.message.chat_id choice = query.data if choice == "Messages": msg_reader(bot, update, chat_id) elif choice == "Resources": regNumber = database(chat_id, 'regNumber') umsPass = database(chat_id, 'umsPass') course_db(bot, update, regNumber, umsPass, chat_id, query) course_markup = [] temp = [] t = [] course_key = '{}-courselist'.format(chat_id) p = db.hkeys(course_key) num_courses = len(p) for i, item in enumerate(p): p[i] = item.decode('UTF-8') for i in range(0, num_courses, 2): key = '{}'.format(p[i]) if i + 1 < num_courses: key1 = '{}'.format(p[i + 1]) course_markup.append([ ikb(key, callback_data=key), ikb(key1, callback_data=key1) ]) else: course_markup.append([ikb(key, callback_data=key)]) bot.send_message(text="Choose Subject --", chat_id=chat_id, reply_markup=ikm(course_markup)) else: update.message.reply_text("Sorry Wrong Input!") return
def msgDispatcher(): lock = threading.Lock() with lock: chat_id = str(update.message.chat_id) if (chat_id in l) and (r.hget(chat_id, 'umsReg')) and (r.hget( chat_id, 'umsPass')): update.message.reply_text('Welcome Back!', reply_markup=markup_options) return else: r.hmset(chat_id, data) update.message.reply_text( "Hi Dear\n\n" "I hope you are fine. My name is ToTa. " "I am your personal bot to handle your daily tedious tasks of UMS. " "\n\nI am created by Shekh Ataul.\nA.K.A -- DEVIL!" "\n\nTo Get Started Press: Setup", reply_markup=ikm([[ikb('Setup', callback_data='setup')]])) return
def start(bot, update): chat_id = update.message.chat_id if (db.hexists(chat_id, 'regNumber')) and (db.hexists(chat_id, 'umsPass') and (db.exists('{}-msg'.format(chat_id)))): user = update.message.from_user user_full_name = '{} {}'.format(user.first_name, user.last_name) update.message.reply_text('Welcome back {}'.format(user_full_name), reply_markup=markup_options) return else: update.message.reply_text( "Hi Dear\n\n" "I hope you are fine. My name is *ToTa* " "I am your personal bot to handle your daily tedious tasks of UMS " "\n\nI am created by *Shekh Ataul*\nA.K.A -- *DEVIL!*" "\n\nTo Get Started Press: *Setup*", reply_markup=ikm([[ikb('Setup', callback_data='Setup')]]), parse_mode=ParseMode.MARKDOWN)
def res(bot, update): c = StrictRedis() query = update.callback_query chat_id = query.message.chat_id course = query.data regNumber = c.hget(chat_id, 'umsReg') umsPass = c.hget(chat_id, 'umsPass') try: homeUms = Verto(regNumber, umsPass) homeData = homeUms.initiater() if homeData != 'Incorrect Credentials': pass else: bot.edit_message_text(text='Incorrect Credentials', chat_id=chat_id, message_id=query.message.message_id) raise ValueError("Something Went Wrong") except ValueError as error: return else: courseIns = Resources(homeUms.session, course) resList = courseIns.reslist() for i, item in enumerate(resList): txt = item[-1] start = txt.find('$lblFileUplaodByTeacher') txt = txt[start - 5:start] if item[2] == u'\xa0': item[2] = '' res_num_markup = ikm([[ ikb('Download', callback_data='hot{}YinZ{}'.format(course, txt)) ]]) text_data = 'Course - {}\n{} \n\n {}\n\n {}'.format( course, item[0], item[1].strip(), item[2].strip()) bot.send_message(text=text_data, chat_id=chat_id, reply_markup=res_num_markup) x = '|'.join(item) c.hset(chat_id, '{}_{}'.format(course, item[-1]), x)
def course_selected_data(bot, update): print('Course selected data Started') query = update.callback_query chat_id = query.message.chat_id course_selected = query.data regNumber = database(chat_id, 'regNumber') umsPass = database(chat_id, 'umsPass') time_stamp = time() sess_start = database(chat_id, 'sess_start') if time_stamp - float(sess_start) <= 180: pickled_sess = db.hget(chat_id, 'sess_obj') sess = pickle.loads(pickled_sess) else: home_page = homeData(bot, update, regNumber, umsPass, chat_id, query) if home_page: sess = db.hget(chat_id, 'sess_obj') sess = pickle.loads(sess) else: return course_data = Resources(sess, course_selected) course_data_list = course_data.course_content_list() for i, item in enumerate(course_data_list): txt = item[-1] start = txt.find('$lblFileUplaodByTeacher') txt = txt[start - 5:start] if item[2] == u'\xa0': item[2] = '' res_num_markup = ikm([[ ikb('Download', callback_data='hot{}YinZ{}'.format(course_selected, txt)) ]]) text_data = 'Course - {}\n{} \n\n {}\n\n {}'.format( course_selected, item[0], item[1].strip(), item[2].strip()) bot.send_message(text=text_data, chat_id=chat_id, reply_markup=res_num_markup) x = '|'.join(item) db.hset(chat_id, '{}_{}'.format(course_selected, item[-1]), x)
from telegram import InlineKeyboardButton as ikb from telegram import InlineKeyboardMarkup as ikm from telegram.error import NetworkError, TelegramError, Unauthorized from telegram.ext import (CommandHandler, ConversationHandler, Filters, CallbackQueryHandler, MessageHandler, Updater, JobQueue) from telegram import Update, ChatAction import telegram from user import Verto from message import Message from assingment import Resources from multiprocessing import Pool CHOOSING, TYPING_REPLY, TYPING_CHOICE, LOAD = range(4) reply_keyboared_setup = [[ ikb('Reg. Number', callback_data='Reg. Number'), ikb('Password', callback_data='Password') ]] reply_keyboared_options = [[ ikb('Messages', callback_data='Messages'), ikb('Resources', callback_data='Resources') ]] markup_setup = ikm(reply_keyboared_setup) markup_options = ikm(reply_keyboared_options) logging.basicConfig( level=logging.DEBUG, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') @run_async
from models import Base, User, Order, Catalog, Cart now = datetime.datetime.now # constant for sending 'typing...' typing = telegram.ChatAction.TYPING # keyboards main_kbd_user = [[texts.catalog_btn_user, texts.cart_btn_user], [texts.orders_btn_user, texts.info_btn_user]] # inline keyboard for catalog catalog_ikbd = [[ikb(texts.prev_btn, callback_data="<"), ikb(texts.next_btn, callback_data=">")], [ikb(texts.show_img_btn, callback_data="img")], [ikb(texts.to_cart_btn, callback_data="to_cart")]] with open('data.json', 'r', encoding='utf8') as fp: catalog = Catalog(json.load(fp, object_pairs_hook=OrderedDict)) engine = create_engine('postgresql://%s:%s@%s:%s/%s' % (db_username, db_password, db_host, db_port, db_name)) Session = sessionmaker(bind=engine) session = Session() Base.metadata.create_all(engine) # matplotlib font settings font = {'family': 'DejaVu Serif', 'weight': 'normal', 'size': 24} # avail_font_names = [f.name for f in matplotlib.font_manager.fontManager.ttflist] rc('font', **font)