예제 #1
0
def obtenerCapitulos(manga = Manga, urlCapitulos = '', parametros = ParamDescarga):
    codCapituloIni = parametros.codCapitulo
    pat = re.compile('<td class="s">(.+?)</td>')
    http = httplib2.Http()
    lstCaps = []
    listCapsRet=[]
    lst=[]
    log.info("http.request[lstCapitulos] ==> %s"%urlCapitulos) 
    headers, body = http.request(urlCapitulos)
    log.file(body)
    li = pat.findall("%s"%body)
    log.file(li)
    for elem in li:    
        strOption = str(elem)
        strOption = strOption.replace('<strong>', '')
        strOption = strOption.replace('</strong>', '')
        pat2 = re.compile('<a href="(.+?)">(.+?)</a>')
        cap = pat2.findall("%s"%strOption)
        lstCaps.append(cap)    
    total = len(lstCaps) 
    manga.length = total
    totPre = len(str(total))
#    print lstCaps
#    exit(0)
    if(total > 1):          
        lstCaps = sorted(lstCaps, key=splittedname)
    if(codCapituloIni is not None):
        for cap in lstCaps:
            codCap = cap[0][0].split("/")[-2]
            codCap = funciones.prefijo(codCap, totPre)
            capIni = funciones.prefijo(str(codCapituloIni), totPre)
            #codCap = funciones.decode(codCap)
            if(parametros.tipo == TYPE.UNIQUE and codCap == capIni):
                listCapsRet.append(cap)
                break
            if (codCap >= capIni and parametros.tipo != TYPE.UNIQUE):
                listCapsRet.append(cap)
    else:
        listCapsRet = lstCaps

    
    for cap in listCapsRet:
        capitulo = Capitulo(cap[0][0], cap[0][1])
        #capitulo.url = "%s%s/"%(manga.url, capitulo.code)
        capitulo.code = capitulo.url.split("/")[-2]
        auxUri = capitulo.url.split("/")[-3]
        capitulo.url = capitulo.url.replace("%s/%s"%(auxUri, capitulo.code), "c")
        lst.append(capitulo)    
    return lst, manga
예제 #2
0
def obtenerCapitulos(manga = Manga, urlCapitulos = '', parametros = ParamDescarga):
    lst=[]
    listCapsRet = []    
    codCapituloIni = parametros.codCapitulo
    parser = esMangaHTMLParser(manga)    
    http = httplib2.Http()
    log.info("http.request[lstCapitulos] ==> %s"%urlCapitulos) 
    headers, body = http.request(manga.url)
    parser.feed("%s"%body)
    for capitulo in parser.CAPITULOS:
        strUrl = capitulo.url
        res = strUrl.split("/")[-1]
        res = res.replace("c", "", 1)        
        capitulo.code = res
        capitulo.title = "%s %s"%(capitulo.title, capitulo.code)
        lst.append(capitulo)
        
    total = len(lst)
    totPre = len(str(total))
    lstAux = []
    index = 0
    for cap in lst:
        encontrado = False
        codCapOrig = funciones.prefijo(str(cap.code), totPre)
        for capAux in lstAux:
            codCapAux = funciones.prefijo(str(capAux.code), totPre)
            if codCapOrig < codCapAux:
                index = lstAux.index(capAux)
                encontrado = True
                break
        if not encontrado:
            lstAux.append(cap)
        else:
            lstAux.insert(index, cap)
    lst = lstAux    
    if(codCapituloIni is not None):
        capIni = funciones.prefijo(str(codCapituloIni), totPre)
        for cap in lst:
            codCap = funciones.prefijo(cap.code, totPre)
            if(parametros.tipo == TYPE.UNIQUE and codCap == capIni):
                listCapsRet.append(cap)
                break
            if (codCap >= capIni and parametros.tipo != TYPE.UNIQUE):
                listCapsRet.append(cap)            
    else:
        listCapsRet = lst
    manga.length = len(lst)        
    return listCapsRet, manga
예제 #3
0
def renombrarArchivos(mypath='.', prefijo=None, sufijo = '', overflow=7):
    log.debug("Renombrar Archivos")
    listFiles = [ f for f in os.listdir(mypath) if os.path.isfile(os.path.join(mypath,f)) ]
    largo = len(str(len(listFiles))) + overflow
    log.debug("Total de archivos = %s"%len(listFiles))
    for fileName in listFiles :
        newName = fileName.replace(prefijo, '')
        newName = newName.replace(sufijo, '')
        newName = "p_%s"%funciones.prefijo(newName, largo)
        pathFile = "%s%s"%(mypath, fileName)
        pathNewFile = "%s%s"%(mypath, newName)
        os.rename(pathFile, pathNewFile)
        log.info("Ren %s -> %s"%(fileName, newName))
예제 #4
0
def obtenerCapitulos(manga = Manga, urlCapitulos = '', parametros = ParamDescarga):
    codCapituloIni = parametros.codCapitulo
    pat = re.compile('<select class="cbo_wpm_chp" onchange="[^"]+">(.+?)</select>')
    http = httplib2.Http()
    headers, body = http.request(urlCapitulos)
    li = pat.findall("%s"%body)
    listCapsRet = []
    lst=[]
    strOption = str(li[0])
    strOption = strOption.replace('selected="selected"', '')
    pat2 = re.compile('<option value="(.+?)" >(.+?)</option>')
    lstCaps = pat2.findall("%s"%strOption)
    total = len(lstCaps)
    totPre = len(str(total))
    manga.length = total
#    print lstCaps
#    exit(0)
    if(total > 1):        
        lstCaps = sorted(lstCaps, key=funciones.splittedname)
    if(codCapituloIni is not None):
        for cap in lstCaps:
            codCap = funciones.prefijo(cap[0], totPre)
            capIni = funciones.prefijo(str(codCapituloIni), totPre)
            codCap = funciones.decode(codCap)
            if(parametros.tipo == TYPE.UNIQUE and codCap == capIni):
                listCapsRet.append(cap)
                break
            if (codCap >= capIni and parametros.tipo != TYPE.UNIQUE):
                listCapsRet.append(cap)
    else:
        listCapsRet = lstCaps

    for cap in listCapsRet:
        capitulo = Capitulo(None, cap[1])
        capitulo.code = str(cap[0])
        capitulo.url = "%s%s/"%(manga.url, capitulo.code)
        lst.append(capitulo)        
    return lst, manga
예제 #5
0
def organizarVolumenes(manga = Manga):
    lstFolder = MangaFile.listarArchivosCarpeta(manga)       
    if(len(lstFolder) > 0):
        totPre = len(lstFolder[0]) - 1
        lstVol, status = VolumenScan.listaVolumenes(manga)        
        for volumen in lstVol:
            lstFolderInVol = []
            capIni = volumen.capitulos[-1].name.split(" ")[-1]
            capFin = volumen.capitulos[0].name.split(" ")[-1]
            capIni = funciones.eliminarChrToEnd(capIni, ".")
            capFin = funciones.eliminarChrToEnd(capFin, ".")
            capIni = "C%s"%funciones.prefijo(str(capIni), totPre)
            capFin = "C%s"%funciones.prefijo(str(capFin), totPre)
            log.info( "%s ):: %s -> %s"%(volumen.name, capIni, capFin))
            for folder in lstFolder:
                downloadDir =  MangaFile.getMangaDownloadFolder(manga.uCode, folder)
                if capIni <= folder and folder <= capFin:
                    lstFolderInVol.append(downloadDir)
            if(lstFolderInVol.__len__()> 0):                
                volumenName = volumen.name.split(" ")[-1]
                volumenName = "%s-%s-%s-%s"%(funciones.prefijo(str(volumenName), 2), str(manga.uCode).title(), capIni, capFin)
                volumensDir = "%s%s/volumenes/%s"%(config.CONST_PATH, manga.uCode, volumenName)
                volumensDir = volumensDir.replace(' ', '')
                log.debug("[mkdir] =>%s"%volumensDir)
                MangaFile.makeDir(volumensDir)
                for folder in lstFolderInVol:
                    folderName = folder.split("/")[-1]
                    destFolder = "%s/%s"%(volumensDir, folderName)
                    MangaFile.move(folder, destFolder)         
    else:
        log.error("No se han encontrado capítulos en la carpeta download")               
    volumensDir = "%s%s/volumenes/"  %(config.CONST_PATH, manga.uCode)
    coverDir = "%s%s/covers/"  %(config.CONST_PATH, manga.uCode)
    lstVolumen = MangaFile.listaArchivosPath(volumensDir)
    lstCovers = MangaFile.listaArchivosPath(coverDir)
    log.info("Poniendo las carátulas en los volúmenes")
    if(len(lstVolumen) > 0) and (len(lstCovers) > 0):
        for volumen in lstVolumen:
            volFolder = "%s%s"%(volumensDir, volumen)
            log.debug(volFolder)
            numVol = volumen.split("-")[0]
            frontFile = "%s_v%s_front.jpg"%(manga.id, numVol)
            fullFile = "%s_v%s_full.jpg"%(manga.id, numVol)
            tocFile = "%s_v%s_toc.jpg"%(manga.id, numVol)
            backFile = "%s_v%s_back.jpg"%(manga.id, numVol)
            if (frontFile in lstCovers):
                origen = "%s%s"%(coverDir,frontFile)
                destino = "%s/001_front.jpg"%(volFolder)                
                MangaFile.copy(origen, destino)
            if (fullFile in lstCovers):
                origen = "%s%s"%(coverDir,fullFile)
                destino = "%s/002_full.jpg"%(volFolder)                
                MangaFile.copy(origen, destino)
            if (tocFile in lstCovers):
                origen = "%s%s"%(coverDir,tocFile)
                destino = "%s/003_toc.jpg"%(volFolder)                
                MangaFile.copy(origen, destino)
            if (backFile in lstCovers):
                origen = "%s%s"%(coverDir,backFile)
                destino = "%s/z004_back.jpg"%(volFolder)                
                MangaFile.copy(origen, destino)