2022-08-31 10:20:49 +00:00
|
|
|
|
from src.fedi_api import get_notifications, mark_as_read_notification, post_status
|
2022-08-31 15:35:38 +00:00
|
|
|
|
from src.fmn_states_db import add_state
|
2022-08-31 10:20:49 +00:00
|
|
|
|
from config import main_admin_bot, limit_movies_per_user, limit_all_movies_poll, hour_poll_posting
|
|
|
|
|
import threading, time
|
|
|
|
|
|
|
|
|
|
acct_admin_bot=main_admin_bot
|
|
|
|
|
|
|
|
|
|
def get_control_mention(acct_admin_bot=str):
|
|
|
|
|
while True:
|
|
|
|
|
notif = get_notifications()
|
|
|
|
|
for i in notif:
|
|
|
|
|
if i['account']['acct'] == acct_admin_bot and i['pleroma']['is_seen'] == False and i['status']['in_reply_to_id'] == None:
|
|
|
|
|
st_id = i['status']['id']
|
|
|
|
|
post_status(start_collect_movies_text(), st_id)
|
|
|
|
|
time.sleep(0.2)
|
|
|
|
|
mark_as_read_notification(i['id'])
|
2022-08-31 15:35:38 +00:00
|
|
|
|
add_state('last_thread_id', st_id)
|
2022-08-31 10:20:49 +00:00
|
|
|
|
time.sleep(30)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def start_collect_movies_text():
|
|
|
|
|
text = f'''
|
|
|
|
|
Начинаем прием заявок на следующий вечерний киносеанс, запланированный на $дата_следующего_киносеанса в 21:00 по Москве.
|
|
|
|
|
|
|
|
|
|
Напоминаем правила:
|
|
|
|
|
- Мы принимаем на просмотр полнометражные художественные фильмы;
|
|
|
|
|
- Прием варианта осуществляется путем публикации ссылки на этот фильм на IMDB или Кинопоиске в этом треде;
|
|
|
|
|
- Нам не подходят: сериалы, короткометражные и документальные фильмы;
|
2022-08-31 15:35:38 +00:00
|
|
|
|
- Максимальное количество вариантов, предложенных одним человеком не должно превышать {limit_movies_per_user};
|
|
|
|
|
- Всего может быть собрано до {limit_all_movies_poll} фильмов;
|
2022-08-31 10:20:49 +00:00
|
|
|
|
- Заявки принимаются до крайнего срока, после чего будет объявлено голосование по собранным вариантам.
|
|
|
|
|
|
|
|
|
|
Крайний срок подачи заявки - $дата_дедлайна.
|
|
|
|
|
|
|
|
|
|
Желаем удачи.
|
|
|
|
|
'''.replace('\t', '')
|
|
|
|
|
return text
|
|
|
|
|
|
|
|
|
|
def run_scan_notif():
|
|
|
|
|
scan_notif = threading.Thread(target=get_control_mention, args=(acct_admin_bot,), daemon=True)
|
|
|
|
|
scan_notif.start()
|
|
|
|
|
|