国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

合并百度影音的離線數據withpython2.3格式更新

2019-11-14 17:05:49
字體:
來源:轉載
供稿:網友

很久沒有更新了。

這次新增支持四種格式的解析。

filelist

slicelist

download.cfg

third_party_download.cfg

還是2個文件。替換之前版本即可。

初步測試正常,但時間軸不對。

# -*- coding: UTF-8 -*-import osimport ioimport codecsimport stringimport shutilimport moviefmtimport tracebackdef coroutine(func):    def start(*args,**kwargs):        g = func(*args,**kwargs)        g.next()        return g    return start@coroutinedef enum_movie_file(target):       selectedFolder = (yield)    for fileitem in os.listdir(selectedFolder):                      targetFO = os.path.join(selectedFolder,fileitem)               if(os.path.isfile(targetFO) == True):            continue;                target.send(targetFO)         @coroutinedef read_movie_file(funcDisp,target):    while(True):        filmFolder = (yield)        for fileitem in os.listdir(filmFolder):                     targetfile = os.path.join(filmFolder,fileitem)             if(os.path.isfile(targetfile) == False):                continue;                       filebasename , fext = os.path.splitext(fileitem);                            if(filebasename[0] == "."):                continue                        if(funcDisp.has_key(string.lower(fext))):                pfn = funcDisp[string.lower(fext)];                (targetFmt,targetObjects,filmFolderEx,filebasenameEx) = pfn(targetfile)                if(targetFmt is None):                    continue;                outputs = filmFolder,filebasename, (targetFmt,targetObjects,filmFolderEx,filebasenameEx);              #  outputs = filmFolder,filebasename, pfn(targetfile);                target.send(outputs)                break            def getWindowsText(orgText):       try:        return orgText.encode('gbk')      except Exception as exc:             

  

# -*- coding: UTF-8 -*-import osimport ioimport sysimport stringimport shutilimport codecsimport globimport redef read_bdv_index_V1(objFile):    piece_list= list()      for line in objFile:        if(line[0:4] != 'file'):            continue;        strings = string.split(line,'/')        tarfile = strings[len(strings)-1]                tempText = string.strip(tarfile)        piece_list.append(tempText)    return "avi",piece_list,None,Nonedef read_bdv_index_V2(objFile):    piece_list= list()      for line in objFile:               nPos = line.count('bdv')        if( nPos <=0):            continue;              tarfile = line[0:len(line)-2]             piece_list.append(tarfile)        return "mpeg",piece_list,None,Nonedef read_bdv_index_V3(objFile):    piece_list= list()              oneFile= os.path.basename(objFile)        piece_list.append(oneFile)    return "avi",piece_list,None,Nonedef read_bdv_index_V4(objFile):    piece_list= list()      #skip #EXT-X-MEDIA-SEQUENCE    objFile.readline();    for line in objFile:        if(line.startswith('#')==True):            continue;                piece_list.append(line.replace('/r/n',''))    return "avi",piece_list,None,None    def count_file_item(objFile,extText):    cItem = 0;    folderName = os.path.dirname(objFile)    for fileitem in os.listdir(folderName):           filebasename , fext = os.path.splitext(fileitem);           if(fext == extText):            cItem = cItem +1    return cItem  def read_bdv_index(filename):     piece_list= list()       ext_type = None    filmFolderEx = None    filebasenameEx = None    # total file count    cItem = count_file_item(filename,".bdv")    if(cItem == 1):        ext_type,piece_list,filmFolderEx,filebasenameEx = read_bdv_index_V3(filename)    else:        objFile = codecs.open(filename,'r','utf-8')            topline = objFile.readline();        bdv_ver = topline.replace("/r/n","")        if(bdv_ver == '#EXTM3U'):            v3Text = objFile.readline();            if(v3Text.startswith('#EXT-X-TARGETDURATION') == False):                ext_type,piece_list = read_bdv_index_V2(objFile)            else:                ext_type,piece_list = read_bdv_index_V4(objFile)        else:            ext_type,piece_list  = read_bdv_index_V1(objFile)            objFile.close()                           return  (ext_type ,piece_list,filmFolderEx,filebasenameEx)        def read_bdv_file(filename):    piece_list= list()    piece_list.append('*.bdv_*')    return  ('avi',piece_list,None,None)def read_rmvb_file(filename):    piece_list= list()    piece_list.append('*.rmvb_*')    return  ('rmvb',piece_list,None,None)def read_mkv_file(filename):    piece_list= list()        piece_list.append('*.mkv_*')    return  ('mkv',piece_list,None,None)def read_mp4_file(filename):    piece_list= list()        piece_list.append('*.mp4_*')    return  ('mp4',piece_list,None,None)def read_mkv_2_file(filename):    piece_list= list()        piece_list.append('video_*')    return  ('mkv',piece_list,None,None)def read_filelist_index(filename):    filmFolderEx = None    filebasenameEx = None    objFile = codecs.open(filename,'r','utf-8')        topline = objFile.readline();    bdv_ver = topline.replace("/r/n","")    if(bdv_ver == '#EXTM3U'):        v3Text = objFile.readline();        if(v3Text.startswith('#EXT-X-TARGETDURATION') == False):            ext_type,piece_list,filmFolderEx,filebasenameEx = read_bdv_index_V2(objFile)        else:            ext_type,piece_list,filmFolderEx,filebasenameEx = read_bdv_index_V4(objFile)                 else:        ext_type,piece_list,filmFolderEx,filebasenameEx  = read_bdv_index_V1(objFile)            objFile.close()           return  ("mp4" ,piece_list,filmFolderEx,filebasenameEx)                 def read_slicelist_index(filename):    piece_list= list()        objFile = codecs.open(filename,'r','utf-8')        topline = objFile.readline();    bdv_ver = topline.replace("/r/n","")    if(bdv_ver == '#BD-SECTION'):            while(True):            currentLine = objFile.readline();            if(currentLine is None or len(currentLine) ==0):                break            piece_list.append(currentLine.replace("/r/n",""))    objFile.close()            return  ('mp4',piece_list,None,None)def read_cfg_index(filename):    piece_list= list()        simpleFileName =  os.path.basename(filename)    if(simpleFileName == 'download.cfg'):        simpleFolderName = os.path.dirname(filename)        chkLst =glob.glob(os.path.join(simpleFolderName, '*.filelist'));        if(chkLst is not None and len(chkLst) >0):            return (None,None,None,None)        chkLst =glob.glob(os.path.join(simpleFolderName, '*.bdv'));        piece_list.append(chkLst[0]);        return  ('avi',piece_list)        if(simpleFileName != 'third_party_download.cfg'):        raise Exception('unknown format file : %s' %(filename))    reObj = re.compile('(?P<var_key>/S+):(?P<var_value>/S+)',re.IGNORECASE)    lineDict = dict()#    [orgLines.append(orgLine.replace("/r/n","") ) for orgLine in codecs.open(filename,'r','utf-8')]    for orgLine in codecs.open(filename,'r','utf-8'):        orgLine = orgLine.replace("/r/n","")                results = reObj.findall(orgLine)        if(len(results) > 0):            lineDict[results[0][0]] =results[0][1]                                             resID = lineDict["resource"]       vid = lineDict[ '%s_vid'%(resID)]    targetName = lineDict["video_name"]    simpleFolderName = os.path.dirname(filename)    upLevelFolderName = os.path.dirname(simpleFolderName)    targetFolder = os.path.join(upLevelFolderName,vid)    targetFolder = os.path.join(targetFolder,vid)        chkLst =glob.glob(os.path.join(targetFolder, '*.%s*' %(resID)));    targetFile = chkLst[0]             #skip #EXT-X-MEDIA-SEQUENCE        for line in codecs.open(targetFile,'r','utf-8'):        if(line.startswith('#')==True):            continue;                line = os.path.basename(line.replace('/r/n',''))        line = os.path.basename(line.replace('/r',''))        line = os.path.basename(line.replace('/n',''))        piece_list.append(line )        return  ('avi',piece_list,targetFolder,targetName)

  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 喀喇沁旗| 社会| 原平市| 双鸭山市| 麻阳| 鲁甸县| 肇庆市| 武义县| 景德镇市| 望谟县| 东乡族自治县| 葫芦岛市| 桂平市| 永城市| 万宁市| 望谟县| 邵武市| 濮阳县| 鸡东县| 溧阳市| 河间市| 葵青区| 兴文县| 阿鲁科尔沁旗| 潜江市| 涿州市| 永春县| 乃东县| 廊坊市| 台安县| 乐业县| 镇坪县| 阳泉市| 同心县| 陆丰市| 夏邑县| 来宾市| 涪陵区| 大悟县| 伊吾县| 江都市|