def SearchSubsMethod(self, bot, update, flag, id): """ Вызов функции поиска субтитров для фильма и добавления их в базу данных Или запрос сезона и номера серии для сериала Args: bot (:class:`telegram.Bot`): хэндлер бота update(:class:`telegram.ext.Updater`): обновления flag (:obj:`int`): флаг, обозначающий что добавляется фильм или сериал id (:obj:`str`): id фильма или сериала на сайте *imdb.com* """ logger.info("Search for Subtitles") if (flag == 0): logger.info("Film Method") flags[update.callback_query.message.chat_id].set_flag_search(False) postgre = DataBase() if (self.download_subtitles(bot, update, id, flag="film")): logger.info("%s" % postgre.AddFilmToLibrary( update.callback_query.message.chat_id, id)) else: logger.info("Series Method") self.ask_for_season_episode(bot, id, update)
def search_subtitles_for_episode(self, bot, update): """ Поиск субтитров для эпизодов сериала Args: bot (:class:`telegram.Bot`): хэндлер бота update(:class:`telegram.ext.Updater`): обновления """ flags[update.message.chat_id].set_flag_series(False) logger.info("OpenSubtitles token %s" % OPExample.login()) data = update.message.text.split() episode = data.pop()[1:] season = data.pop()[1:] request_data = [{ "sublanguageid": 'eng', 'imdbid': flags[update.message.chat_id].get_id_series() }] id_of_series = '' title = '' for label in ((OPExample.search_subtitles(request_data))['data']): print(label) if label["SeriesSeason"] == season and label[ "SeriesEpisode"] == episode: title = label["MovieName"] id_of_series = label["IDMovieImdb"] print("->", id_of_series) id_of_series = "tt0" + id_of_series OPExample.logout() break # if nothing been found on opensubtitles if id_of_series == '': title = OMDBExample.get_title( flags[update.message.chat_id].get_id_series()) + " " if title: data = OMDBExample.search_series(title + update.message.text) else: bot.send_message(text="Sorry, I can't find any subtitles", chat_id=update.message.chat_id) return if data != {}: id_of_series = data.imdb_id else: bot.send_message(text="Sorry, I can't find any subtitles", chat_id=update.message.chat_id) return OPExample.logout() logger.info("Id of episode of %s%s" % (title, id_of_series)) bot.send_message(chat_id=update.message.chat_id, text="http://imdb.com/title/%s" % id_of_series) postgre = DataBase() if (self.download_subtitles(bot=bot, update=update, id=id_of_series[2:], episode=episode, season=season, flag="series")): logger.info("%s" % postgre.AddFilmToLibrary( update.message.chat_id, id_of_series[2:])) OPExample.logout()