Add multiple admins support

Теперь бота может упомянуть один из нескольких админов
This commit is contained in:
localhost_frssoft 2022-09-01 22:01:24 +03:00
parent 600b022e8a
commit b5738f5ff8
2 changed files with 13 additions and 9 deletions

View File

@ -1,6 +1,7 @@
main_admin_bot = '' # Ник админа бота
bot_acct = '' # Ник бота на инстансе
instance = '' # Инстанс, где будет запущен бот
admins_bot = ('drq@mastodon.ml',) # Адреса админов бота, которые могут упомянуть бота для инициализации FMN
# Example: ('admin_user', 'another_admin_user2@example.example') or ('admin_user',)
bot_acct = 'fmn' # Ник бота на инстансе
instance = 'expired.mentality.rip' # Инстанс, где будет запущен бот
limit_movies_per_user = 2 # Ограничение количества фильмов на одного пользователя
limit_all_movies_poll = 20 # Сколько можно добавить всего фильмов
hour_poll_posting=16 # Час в который будет создан пост с голосовалкой

View File

@ -1,26 +1,29 @@
from src.fedi_api import get_notifications, mark_as_read_notification, post_status, upload_attachment
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 src.fmn_states_db import add_state, get_state
from config import admins_bot, limit_movies_per_user, limit_all_movies_poll, hour_poll_posting
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
def get_control_mention(acct_admin_bot=str):
def get_control_mention():
while True:
now_week = datetime.now().weekday()
if now_week not in (0, 6):
time.sleep(30)
continue
if get_state('last_thread_id'):
time.sleep(30)
continue
notif = get_notifications()
for i in notif:
seen = i['pleroma']['is_seen']
acct_mention = i['account']['acct']
reply_to_id = i['status']['in_reply_to_id']
if acct_mention == acct_admin_bot and seen == False and reply_to_id == None and now_week in (0, 6):
if acct_mention in admins_bot and seen == False and reply_to_id == None and now_week in (0, 6):
st_id = i['status']['id']
st_date = i['status']['created_at']
thread_created_at = dateutilparse(st_date)
@ -60,6 +63,6 @@ def start_collect_movies_text(movies_accept_time=str, next_movie_watching=str):
return text
def run_scan_notif():
scan_notif = threading.Thread(target=get_control_mention, args=(acct_admin_bot,), daemon=True)
scan_notif = threading.Thread(target=get_control_mention, daemon=True)
scan_notif.start()