예제 #1
0
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
예제 #2
0
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
예제 #3
0
    def __init__(self, subtitle_languages, choose_subtitle):
        self.opensubtitles = OpenSubtitles()
        self.vid_sub_dict = {}

        self.subtitle_languages = subtitle_languages
        self.choose_subtitle = choose_subtitle