Example #1
0
def getBDay(update, context):
    print('getBDay command')
    args = context.args
    try:
        UN = args[0].split('@')[1]
        print(UN)
    except:
        update.message.reply_text('''
            \u26D4 Неверный формат запроса!
            \nПравильный формат:
            \n/get @username
            ''')
        return
    db = DB()
    bday = db.getDateByUN(UN)
    if isinstance(bday, (date, datetime)):
        update.message.reply_text('Дата рождения пользователя @{} - {}'.format(
            UN, bday.strftime('%d.%m.%Y')),
                                  reply_markup=RplMrkup())
    else:
        update.message.reply_text(
            ('Мне неизвестна дата рождения пользователя @{} \U0001F937'.format(
                UN)),
            reply_markup=RplMrkup())
    print('showed bday: @{} - {}'.format(UN, bday))
Example #2
0
def stat(update, context):
    print('stat command')
    db = DB()
    sDic = db.stat()
    update.message.reply_text('''Всего чатов: {}
        \nВсего дней рождений: {}'''.format(sDic['allChats'],
                                            sDic['allBDays']),
                              reply_markup=RplMrkup())
Example #3
0
def chatlist(update, context):
    print('chatlist command')
    db = DB()
    chts = db.get_chat_list()
    if not chts: return
    txt = 'Количество чатов: {}'.format(len(chts))
    for cht in chts:
        txt += '\n{}: {}'.format(cht[0], cht[1])
    update.message.reply_text(txt)
Example #4
0
def delBDay(update, context):
    print('delBDay command')
    db = DB()
    if db.del_bday(update):
        update.message.reply_text(
            'Дата рождения пользователя @{} удалена из базы'.format(
                update.effective_user.username))
    else:
        update.message.reply_text('Пользователь @{} не записан в базу'.format(
            update.effective_user.username))
    print('del @{}'.format(update.effective_user.username))
Example #5
0
def DaylyJob(context):
    bot = context.bot
    db = DB()
    usrsList = db.GetUserBDayList()
    chtsList = db.GetChatsList()
    emoji = [
        '\U0001F490', '\U0001F382', '\U0001F388', '\U0001F389', '\U0001F38A',
        '\U0001F381'
    ]
    for usr in usrsList:
        for cht in chtsList:
            if not is_usr_in_cht(bot, usr[0], cht[0]): continue
            uname = usr[2]
            uuname = '(@' + usr[1] + ')' if usr[1] else ''
            msg = ('Поздравляем с днем рождения пользователя {} {}\nУра! {}'.
                   format(uname, uuname, emoji[randint(0, 5)]))
            bot.send_message(cht[0], msg, reply_markup=RplMrkup())
Example #6
0
def setBDay(update, context):
    print('setBDay command')
    args = context.args
    try:
        datetime.strptime(args[0], '%d.%m.%Y')
    except:
        update.message.reply_text('''
            \u26D4 Неверный формат даты!
            \nПравильный формат:
            \n/bday dd.mm.yyyy
            ''')
        return
    bday = BDayObj(update.message.from_user)
    bday.SetDate(args[0])
    db = DB()
    db.SaveBDay(bday)
    update.message.reply_text(
        '''\u270D Сохранил Вашу дату рождения ({}) '''.format(args[0]))
    print('saved bday ', args[0], ' of user @',
          update.message.from_user.username)
Example #7
0
def get10(update, context):
    print('get10 command')
    db = DB()
    ordered_bdays = db.get_ordered_bdays()
    nodata_txt = 'У меня нет данных о днях рождениях пользователей этого чата \U0001F937'
    if ordered_bdays and ordered_bdays[0]:
        cht_id = update.effective_chat.id
        context.bot.send_chat_action(cht_id, 'typing')
        cht_bdays = []
        for usr_bday in ordered_bdays:
            if is_usr_in_cht(context.bot, usr_bday[0], cht_id):
                cht_bdays.append(usr_bday)
            if len(cht_bdays) >= 10: break
        txt = '\U0001F4DD Ближайшие дни рождения:\n'
        for bday in cht_bdays:
            txt = (txt + '{} - {} {}\n'.format(
                date(bday[5], bday[4], bday[3]).strftime('%d.%m'), bday[2]
                if bday[2] else '', '(@ ' + bday[1] + ')' if bday[1] else ''))
        if not cht_bdays:
            txt = nodata_txt
    else:
        txt = nodata_txt
    update.message.reply_text(txt, reply_markup=RplMrkup())
    print(txt)
Example #8
0
def ProcessMsg(update, context):
    db = DB()
    db.HandleMsg(update)
    print('updated/save data of @', update.effective_user.username,
          ' for chat ', update.effective_chat.title)
Example #9
0
def del_left_chats(context):
    db = DB()
    chts = db.get_chat_list()
    for cht in chts:
        if is_usr_not_in_cht(context.bot, 607758927, cht[0]):
            db.del_cht(cht[0])