def get_sentence(word, imdb_id): """ Получить предложение для слова Args: word (:obj:`str`): слово imdb_id (:obj:`int`): id фильма на сайте *imdb.com* Returns: sentence (:obj:`str`): предложение для слова """ OP = OpenSubtitles() logger.info("Getting sentence, OpenSubtitles token %s" % OP.login()) postgre = DataBase() sentence = postgre.GetSentence(word, imdb_id) if sentence: return sentence subtitle_id = postgre.GetSubtitleID(imdb_id) logger.info("subtitle id - %s" % subtitle_id) FileData = (OP.download_subtitles([subtitle_id])) sentence = search_sentence(FileData['data'][0]['data'], word) OP.logout() if sentence: postgre.AddSentence(word, imdb_id, sentence) return sentence else: return None
def SearchSubtitles(subtitles, auto=False): try: sortedList = [] update = False subs = OpenSubtitles(SETTINGS) token = subs.login(SETTINGS['username'], SETTINGS['password']) for item in subtitles: data = cleanedList = sortedList = [] if item['type'] == 'episode': data = subs.search_subtitles([{ 'sublanguageid': SETTINGS['language'], 'imdbid': item['id'], 'season': item['season'], 'episode': item['episode'] }]) else: data = subs.search_subtitles([{ 'sublanguageid': SETTINGS['language'], 'imdbid': item['id'] }]) if data != False: for video in data: if video['SubFormat'] == 'srt': cleanedList.append(video) sortedList = sorted(cleanedList, key=lambda k: int(k['SubDownloadsCnt']), reverse=True) if auto == True: update = True response = WriteSubtitle(sortedList[0]['SubDownloadLink'], item['root'], item['filename']) else: Log.Info('There are no subtites for ' + item['filename'] + ' at this time') subs.logout() if update: UpdateLibrary() except: Log.Exception('Error connecting to Opensubtitles.org') return sortedList
def __init__(self, subtitle_languages, choose_subtitle): self.opensubtitles = OpenSubtitles() self.vid_sub_dict = {} self.subtitle_languages = subtitle_languages self.choose_subtitle = choose_subtitle