Changes listener mention

* Расчет даты следующего FMN
* Установка времени когда прекращать сканировать тред на фильмы
This commit is contained in:
localhost_frssoft 2022-08-31 22:32:16 +03:00
parent a26bd29e58
commit 6033095e89

View File

@ -1,7 +1,11 @@
from src.fedi_api import get_notifications, mark_as_read_notification, post_status from src.fedi_api import get_notifications, mark_as_read_notification, post_status
from src.fmn_states_db import add_state from src.fmn_states_db import add_state
from config import main_admin_bot, limit_movies_per_user, limit_all_movies_poll, hour_poll_posting from config import main_admin_bot, limit_movies_per_user, limit_all_movies_poll, hour_poll_posting
import threading, time import threading, time
from datetime import datetime
from dateutil.parser import parse as dateutilparse
from dateutil.relativedelta import relativedelta, TU, SU
acct_admin_bot=main_admin_bot acct_admin_bot=main_admin_bot
@ -11,16 +15,28 @@ def get_control_mention(acct_admin_bot=str):
for i in notif: 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: 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'] st_id = i['status']['id']
post_status(start_collect_movies_text(), st_id) st_date = i['status']['created_at']
thread_created_at = dateutilparse(st_date)
delta = relativedelta(hour=hour_poll_posting, minute=0, second=0, weekday=TU(1))
next_movie_watching_delta = relativedelta(hour=21, minute=0, second=0, weekday=SU(1))
stop_thread_scan = thread_created_at + delta
next_movie_watching = thread_created_at + next_movie_watching_delta
next_movie_watching = next_movie_watching.strftime('%d.%m.%Y')
movies_accept_time = stop_thread_scan.strftime('%H:%M %d.%m.%Y MSK')
stop_thread_scan = time.mktime(time.struct_time(stop_thread_scan.timetuple()))
post_status(start_collect_movies_text(movies_accept_time, next_movie_watching), st_id)
time.sleep(0.2) time.sleep(0.2)
mark_as_read_notification(i['id']) mark_as_read_notification(i['id'])
add_state('stop_thread_scan', int(stop_thread_scan))
add_state('last_thread_id', st_id) add_state('last_thread_id', st_id)
break
time.sleep(30) time.sleep(30)
def start_collect_movies_text(): def start_collect_movies_text(movies_accept_time=str, next_movie_watching=str):
text = f''' text = f'''
Начинаем прием заявок на следующий вечерний киносеанс, запланированный на $дата_следующего_киносеанса в 21:00 по Москве. Начинаем прием заявок на следующий вечерний киносеанс, запланированный на {next_movie_watching} в 21:00 по Москве.
Напоминаем правила: Напоминаем правила:
- Мы принимаем на просмотр полнометражные художественные фильмы; - Мы принимаем на просмотр полнометражные художественные фильмы;
@ -30,7 +46,7 @@ def start_collect_movies_text():
- Всего может быть собрано до {limit_all_movies_poll} фильмов; - Всего может быть собрано до {limit_all_movies_poll} фильмов;
- Заявки принимаются до крайнего срока, после чего будет объявлено голосование по собранным вариантам. - Заявки принимаются до крайнего срока, после чего будет объявлено голосование по собранным вариантам.
Крайний срок подачи заявки - $датаедлайна. Крайний срок подачи заявки - {movies_accept_time}.
Желаем удачи. Желаем удачи.
'''.replace('\t', '') '''.replace('\t', '')