Exemplo n.º 1
0
def _newSubtitle(url):
    _createProfilePath()
    if xbmcvfs.exists(subFile):
        xbmcvfs.delete(subFile)
    #content = utils.getUrl(url)
    content = requests.get(url).text
    content = content.replace('\0', '').replace('<tt:',
                                                '<').replace('</tt:', '</')
    if content:
        #utils.log(str(content))
        d = _stylesSetup(
            re.compile('<styling>(.+?)</styling>',
                       re.DOTALL).findall(content)[0])
        div = re.compile('<div.+?>(.+?)</div>', re.DOTALL).findall(content)[0]
        p = re.compile('<(.+?)</p>', re.DOTALL).findall(div)
        i = 1
        buffer = ''
        for part in p:
            if '<span' in part:
                part = part.replace('begin="1', 'begin="0').replace(
                    'end="1', 'end="0').replace('\n',
                                                '').replace('<br/>', '\n')
                begin = re.compile('begin="(.+?)"').findall(part)[0]
                begin = begin.replace(".", ",")[:-1]
                end = re.compile('end="(.+?)"').findall(part)[0]
                end = end.replace(".", ",")[:-1]
                s = part.split('>')[0]
                part = part.replace(s + '>', '')
                part = part.replace('<br />', '\n')
                if 'style=' in s:
                    style = re.compile('style="(.+?)"').findall(s)[0]
                    if d[style]:
                        part = '<font color="' + d[
                            style] + '">' + part + '</font>'
                match = re.compile('<(.+?)>').findall(part)
                for entry in match:
                    if entry.startswith('span'):
                        if 'style' in entry:
                            style = re.compile('style="(.+?)"').findall(
                                entry)[0]
                            part = part.replace(
                                '<' + entry + '>',
                                '<font color="' + d[style] + '">')
                        else:
                            part = part.replace('<' + entry + '>', '')
                    elif entry.startswith('/span'):
                        part = part.replace('</span>', '</font>')
                    else:
                        part = part.replace('<' + entry + '>', '')
                part = ''.join([l.strip() + '\n' for l in part.splitlines()])
                part = re.sub('(\n){2,}', '\n', part)
                part = html.unescape(part)
                buffer += str(i) + '\n'
                buffer += begin + " --> " + end + "\n"
                buffer += part.strip() + '\n\n'
                i += 1
        #buffer = buffer.replace('            ','').replace('           ','').replace('  ',' ').replace(' \n','\n')
        utils.f_write(subFile, buffer)
        utils.log(subFile)
        return subFile
Exemplo n.º 2
0
def _newSubtitle(url):
    _createProfilePath()
    if xbmcvfs.exists(subFile):
        xbmcvfs.delete(subFile)
    #content = utils.getUrl(url)
    try:
        content = utils.getUrl(url)
    except:
        content = ""
    content = content.replace('\0', '').replace('<tt:',
                                                '<').replace('</tt:', '</')
    if content:
        #utils.log(str(content))
        d = _stylesSetup(
            re.compile('<styling>(.+?)</styling>',
                       re.DOTALL).findall(content)[0])
        div = re.compile('<div.+?>(.+?)</div>', re.DOTALL).findall(content)[0]
        p = re.compile('<(.+?)</p>', re.DOTALL).findall(div)
        i = 1
        buffer = ''
        for part in p:
            if '<span' in part:
                part = part.replace('begin="1', 'begin="0').replace(
                    'end="1', 'end="0').replace('\n',
                                                '').replace('<br/>', '\n')
                begin = re.compile('begin="(.+?)"').findall(part)[0]
                begin = begin.replace(".", ",")[:-1]
                end = re.compile('end="(.+?)"').findall(part)[0]
                end = end.replace(".", ",")[:-1]
                s = part.split('>')[0]
                part = part.replace(s + '>', '')
                part = part.replace('<br />', '\n')
                if 'style=' in s:
                    style = re.compile('style="(.+?)"').findall(s)[0]
                    if d[style]:
                        part = '<font color="' + d[
                            style] + '">' + part + '</font>'
                match = re.compile('<(.+?)>').findall(part)
                for entry in match:
                    if entry.startswith('span'):
                        if 'style' in entry:
                            style = re.compile('style="(.+?)"').findall(
                                entry)[0]
                            if isinstance(d.get(style, None), str):
                                part = part.replace(
                                    '<' + entry + '>',
                                    '<font color="' + d[style] + '">')
                            else:
                                part = part.replace('<' + entry + '>', '')
                        else:
                            part = part.replace('<' + entry + '>', '')
                    elif entry.startswith('/span'):
                        part = part.replace('</span>', '</font>')
                    else:
                        part = part.replace('<' + entry + '>', '')

                # Translate html entities in subtitles into readable characters.
                part = _cleanTitle(part, False)

                buffer += str(i) + '\n'
                buffer += begin + " --> " + end + "\n"
                buffer += part + '\n\n'
                i += 1
        buffer = buffer.replace('            ',
                                '').replace('           ', '').replace(
                                    '  ', ' ').replace(' \n', '\n')
        utils.f_write(subFile, buffer)
        utils.log(subFile)
        return subFile