Implemented limit on suggested movies

This commit is contained in:
localhost_frssoft 2022-09-02 11:28:24 +03:00
parent 85ede6672b
commit aee5d2a9c9
2 changed files with 14 additions and 5 deletions

View File

@ -30,12 +30,16 @@ def mark_as_watched_movie(original_name=None, ru_name=None, year=None):
def get_already_watched(original_name=None, ru_name=None, year=None): def get_already_watched(original_name=None, ru_name=None, year=None):
already_watched = c.execute(f"SELECT * FROM watched_movies WHERE original_name == (?) AND ru_name == (?) AND year == (?) COLLATE NOCASE", already_watched = c.execute(f"SELECT * FROM watched_movies WHERE original_name == (?) AND ru_name == (?) AND year == (?) COLLATE NOCASE",
(original_name,ru_name,year)).fetchone() (original_name,ru_name,year)).fetchone()
if already_watched is not None: if already_watched:
return True return True
else: else:
return False return False
def get_suggested_movies_count():
poll_count = c.execute(f"SELECT * FROM poll").fetchall()
return len(poll_count)
def per_user_accepted_movie_count(acct=str): def per_user_accepted_movie_count(acct=str):
user_suggested_count = c.execute(f"SELECT user_suggested FROM poll WHERE user_suggested == (?)", (acct,)).fetchall() user_suggested_count = c.execute(f"SELECT user_suggested FROM poll WHERE user_suggested == (?)", (acct,)).fetchall()

View File

@ -5,11 +5,11 @@ from dateutil.relativedelta import relativedelta, TU
import re import re
import logging import logging
from config import hour_poll_posting, bot_acct, instance from config import hour_poll_posting, bot_acct, instance, limit_all_movies_poll
from src.fedi_api import get_status_context, get_status, post_status from src.fedi_api import get_status_context, get_status, post_status
from src.kinopoisk_api import get_kinopoisk_movie from src.kinopoisk_api import get_kinopoisk_movie
from src.imdb_datasets_worker import get_title_by_id from src.imdb_datasets_worker import get_title_by_id
from src.fmn_database import add_movie_to_poll, get_already_watched from src.fmn_database import add_movie_to_poll, get_already_watched, get_suggested_movies_count
from src.fmn_states_db import get_state, add_state from src.fmn_states_db import get_state, add_state
from src.fmn_poll import create_poll_movies, get_winner_movie from src.fmn_poll import create_poll_movies, get_winner_movie
@ -102,7 +102,7 @@ def scan_context_thread():
message_writer.append("Не найдено.") message_writer.append("Не найдено.")
elif movie[index_type] not in ("movie", "FILM", "video"): elif movie[index_type] not in ("movie", "FILM", "video"):
type_of_title = movie[index_type] type_of_title = movie[index_type]
message_writer.append(f"Не принято: Мы принимаем фильмы, если они: полнометражные, художественные, не являются сериалами") message_writer.append(f"Не принято:\n- Нам не подходят: сериалы, короткометражные и документальные фильмы")
logger.info(f'Предложение {acct} отклонено: не подходящий тип фильма: {type_of_title}') logger.info(f'Предложение {acct} отклонено: не подходящий тип фильма: {type_of_title}')
else: else:
@ -116,9 +116,14 @@ def scan_context_thread():
if name_ru is None: if name_ru is None:
movie_string = f"{name}, {year}" movie_string = f"{name}, {year}"
if get_suggested_movies_count() >= limit_all_movies_poll:
post_status('🎬 Мы не можем обработать ваше предложение: количество уже предложенных не помещается в лимит голосовалки.', id_st)
logger.warning(f'Предложение {acct} было отклонено: количество уже предложенных фильмов превышает\равно {limit_all_movies_poll}')
break
if get_already_watched(name, name_ru, year) == True: if get_already_watched(name, name_ru, year) == True:
message_writer.append(f"ℹ️Этот фильм уже был на FMN: {movie_string}") message_writer.append(f"ℹ️Этот фильм уже был на FMN: {movie_string}")
logger.info('Попытка предложить уже просмотренный фильм: {acct} {name} {name_ru} {year}') logger.info(f'Попытка предложить уже просмотренный фильм: {acct} {name} {name_ru} {year}')
continue continue
if add_movie_to_poll(acct, name, name_ru, year) == True: if add_movie_to_poll(acct, name, name_ru, year) == True: