コード例 #1
0
 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)
コード例 #2
0
    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()