mirror of
https://gitea.phreedom.club/localhost_frssoft/FMN_bot.git
synced 2024-11-22 07:51:30 +00:00
Add multiple admins support
Теперь бота может упомянуть один из нескольких админов
This commit is contained in:
parent
600b022e8a
commit
b5738f5ff8
|
@ -1,6 +1,7 @@
|
||||||
main_admin_bot = '' # Ник админа бота
|
admins_bot = ('drq@mastodon.ml',) # Адреса админов бота, которые могут упомянуть бота для инициализации FMN
|
||||||
bot_acct = '' # Ник бота на инстансе
|
# Example: ('admin_user', 'another_admin_user2@example.example') or ('admin_user',)
|
||||||
instance = '' # Инстанс, где будет запущен бот
|
bot_acct = 'fmn' # Ник бота на инстансе
|
||||||
|
instance = 'expired.mentality.rip' # Инстанс, где будет запущен бот
|
||||||
limit_movies_per_user = 2 # Ограничение количества фильмов на одного пользователя
|
limit_movies_per_user = 2 # Ограничение количества фильмов на одного пользователя
|
||||||
limit_all_movies_poll = 20 # Сколько можно добавить всего фильмов
|
limit_all_movies_poll = 20 # Сколько можно добавить всего фильмов
|
||||||
hour_poll_posting=16 # Час в который будет создан пост с голосовалкой
|
hour_poll_posting=16 # Час в который будет создан пост с голосовалкой
|
||||||
|
|
|
@ -1,26 +1,29 @@
|
||||||
from src.fedi_api import get_notifications, mark_as_read_notification, post_status, upload_attachment
|
from src.fedi_api import get_notifications, mark_as_read_notification, post_status, upload_attachment
|
||||||
from src.fmn_states_db import add_state
|
from src.fmn_states_db import add_state, get_state
|
||||||
from config import main_admin_bot, limit_movies_per_user, limit_all_movies_poll, hour_poll_posting
|
from config import admins_bot, limit_movies_per_user, limit_all_movies_poll, hour_poll_posting
|
||||||
|
|
||||||
import threading, time
|
import threading, time
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from dateutil.parser import parse as dateutilparse
|
from dateutil.parser import parse as dateutilparse
|
||||||
from dateutil.relativedelta import relativedelta, TU, SU
|
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:
|
while True:
|
||||||
now_week = datetime.now().weekday()
|
now_week = datetime.now().weekday()
|
||||||
if now_week not in (0, 6):
|
if now_week not in (0, 6):
|
||||||
time.sleep(30)
|
time.sleep(30)
|
||||||
continue
|
continue
|
||||||
|
if get_state('last_thread_id'):
|
||||||
|
time.sleep(30)
|
||||||
|
continue
|
||||||
|
|
||||||
notif = get_notifications()
|
notif = get_notifications()
|
||||||
for i in notif:
|
for i in notif:
|
||||||
seen = i['pleroma']['is_seen']
|
seen = i['pleroma']['is_seen']
|
||||||
acct_mention = i['account']['acct']
|
acct_mention = i['account']['acct']
|
||||||
reply_to_id = i['status']['in_reply_to_id']
|
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_id = i['status']['id']
|
||||||
st_date = i['status']['created_at']
|
st_date = i['status']['created_at']
|
||||||
thread_created_at = dateutilparse(st_date)
|
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
|
return text
|
||||||
|
|
||||||
def run_scan_notif():
|
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()
|
scan_notif.start()
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue