Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
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)
Esempio n. 5
0
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)
Esempio n. 6
0
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)
Esempio n. 7
0
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
Esempio n. 8
0
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)
Esempio n. 9
0
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
Esempio n. 10
0
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)
Esempio n. 11
0
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
Esempio n. 12
0
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
Esempio n. 13
0
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)
Esempio n. 14
0
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)
Esempio n. 15
0
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)
Esempio n. 16
0
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)
Esempio n. 17
0
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)
Esempio n. 18
0
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)
Esempio n. 19
0
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)
Esempio n. 20
0
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)
Esempio n. 21
0
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)
Esempio n. 22
0
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)
Esempio n. 23
0
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)
Esempio n. 24
0
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
Esempio n. 25
0
 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
Esempio n. 26
0
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)
Esempio n. 27
0
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)
Esempio n. 28
0
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)
Esempio n. 29
0
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
Esempio n. 30
0
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)