Exemple #1
0
def daily_midnight(bot: telegram.Bot, _):
    # особый режим сегодняшнего дня
    DayOfManager.midnight(bot)

    # для каждого чата
    for chat in get_config_chats():
        if 'daily_full_moon_check' in chat.enabled_commands:
            send_alert_if_full_moon(bot, chat.chat_id)

    for chat in get_config_chats():
        if is_command_enabled_for_chat(chat.chat_id, 'weeklystat'):
            ReplyDumper.dump(chat.chat_id)
Exemple #2
0
def send_to_all_chats(bot: telegram.Bot, key_name: str,
                      get_text: Callable[[int], str]) -> None:
    for chat in get_config_chats():
        chat_id = chat.chat_id
        chat_key = f'{CACHE_PREFIX}:{key_name}:{chat_id}'
        if cache.get(chat_key, False):
            continue
        dsp(send_html, bot, chat_id, get_text(chat_id))
        cache.set(chat_key, True, time=TWO_DAYS)
 def check(cls, bot: telegram.Bot) -> None:
     for chat in get_config_chats():
         # это нужно только для супергрупп, поэтому сперва проверяем, супергруппа ли это
         if not cls.__is_supergroup(bot, chat.chat_id):
             continue
         # проверяем, не кикнули ли нас из этой супергруппы
         if not cls.__is_we_still_in_chat(bot, chat.chat_id):
             continue
         # используем данные ктоливнулыча
         LeaveCollector.update_ktolivnul(chat.chat_id)
Exemple #4
0
def weekly_stats(bot: telegram.Bot, _) -> None:
    today = datetime.today()
    # эта штука запускается в понедельник ночью, поэтому мы откладываем неделю назад
    prev_monday = (today - timedelta(days=today.weekday() + 7)).replace(
        hour=0, minute=0, second=0, microsecond=0)
    for chat in config.get_config_chats():
        if not is_command_enabled_for_chat(chat.chat_id, 'weeklystat'):
            continue
        send_weekly_for_chat(bot, chat.chat_id, chat.disabled_commands,
                             chat.enabled_commands, prev_monday)
def new_year(bot: telegram.Bot):
    if datetime.today().strftime("%m-%d") != '01-01':
        return
    for chat in get_config_chats():
        dsp(_send_new_year, bot, chat.chat_id)