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
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
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))
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
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)