def main(): args = options() Y = mangareader(args.url) MANGA = Y.fetch_title_manga() # converte il nome del manga in formato utile per mangareader NAME = Y.convert_name(MANGA) LISTA = sorted(Y.fetch_chapters_manga(NAME)) stampa('Elenco capitoli trovati:') for chapter, number in LISTA: if check_chapter_number(args, int(number)): stampa('-> %s' % chapter) stampa('\nInizio a scaricare i capitoli') for chapter, number in LISTA: if check_chapter_number(args, int(number)): stampa('Scarico capitolo: %s ' % chapter) download_chapter(chapter)
#!/usr/bin/env python ''' fetch new chapters from http://www.mangareader.net/latest, download and report by mail ''' from mangareader import mangareader from mangareader import stampa import argparse def options(): parser = argparse.ArgumentParser(description = ''' temp ''' ) parser.add_argument("name", help = 'nome manga') return parser.parse_args() if __name__ == "__main__": args = options() # fetch new links from website x = mangareader('http://www.mangareader.net/alphabetical') name = x.convert_name(args.name) link = x.find_manga(name) print link
if args.from_chapter: if args.from_chapter <= number: return True else: return False if args.to_chapter: if number <= args.to_chapter: return True else: return False return True if __name__ == "__main__": args = options() Y = mangareader(args.url) MANGA = Y.fetch_title_manga() # converte il nome del manga in formato utile per mangareader NAME = Y.convert_name(MANGA) LISTA = Y.fetch_chapters_manga(NAME) LISTA.sort() # basic sort.. stampa('Elenco capitoli trovati:') for chapter, number in LISTA: if check_chapter_number(args, int(number)): stampa('-> %s' % chapter) stampa('\nInizio a scaricare i capitoli') for chapter, number in LISTA: if check_chapter_number(args, int(number)): stampa('Scarico capitolo: %s ' % chapter) download_chapter(chapter)
def main(): global xml_list global entry global last global dest global url global session ### make auto update if args.update: download_chapters = [] if args.dest: dest = args.dest elif not args.add_to_calibre: dest = './' else: dest = '' args.dest=dest path=dest for r,d,f in os.walk(path): for folder in d: for rr,dd,ff in os.walk(path+"/"+folder): for files in ff: if files in 'chapters.txt': print ('chapter found.') with open(path+"/"+folder+"/"+files, 'r') as filo: url = filo.readline().replace("\n","") last=float(filo.readline()) print ("downloading "+url+" from "+str(last)) args.last=last args.url if 'mangareader.net' in url: mangareader(url, download_chapters,args) elif 'mangahere.co' in url: mangahere(url, download_chapters),args elif 'bato.to' in url: batoto(url+'/', download_chapters,args) elif 'mangapanda.com' in url: mangapanda(url, download_chapters,args) elif 'goodmanga.net' in url: goodmanga(url, download_chapters,args) elif 'japscan.com' in url: japscan(url,download_chapters,args) elif 'scan-fr.net' in url: scan_fr(url,download_chapters,args) elif 'mymanga.io' in url: mymanga(url,download_chapters,args) if hasattr(args, 'listzip'): print(args.listzip) print(len(args.listzip)) createJump(args) else: print ("no zip to add...") else: if not args.url: with open(args.list, 'r') as f: xml_list = f.read() download_chapters = [] if args.chap: download_chapters = re.split('\\s*,\\s*', args.chap) for i in download_chapters: if type(i) == str and '-' in i: download_chapters.remove(i) for j in range(int(float(re.split('\\s*-\\s*', i, maxsplit=1)[0])*10), int(float(re.split('\\s*-\\s*', i, maxsplit=1)[1])*10)+1): download_chapters.append(j/10.0) download_chapters = sorted(list(set([float(j) for j in download_chapters]))) #manage xml file if not args.url: for item in re.findall('(\n?<entry>\\s*(.*?)\\s*</entry>)', xml_list, re.DOTALL|re.MULTILINE): session = Session() session.headers.update({'User-agent': 'Mozilla/5.0'}) entry = item[1] try: url = re.search('<url>(.*?)</url>', entry, re.DOTALL|re.MULTILINE).group(1).strip() try: last = float(re.search('<last>\\s*([\\d.,-]+)\\s*</last>', entry, re.DOTALL|re.MULTILINE).group(1)) except: last = -1 try: dest = re.search('<destination>(.*?)</destination>', entry, re.DOTALL|re.MULTILINE).group(1) except: if not args.add_to_calibre: dest = './' else: dest = '' except: print('ERROR - line 681\n\n\"{}\"'.format(item[0].replace('\n', '\\n').replace('\t', '\\t'))) sys.exit(-1) print('URL - {}'.format(url)) if 'mangareader.net' in url: mangareader(url, download_chapters,args) elif 'mangahere.co' in url: mangahere(url, download_chapters),args elif 'bato.to' in url: batoto(url+'/', download_chapters,args) elif 'mangapanda.com' in url: mangapanda(url, download_chapters,args) elif 'goodmanga.net' in url: goodmanga(url, download_chapters,args) elif 'japscan.com' in url: japscan(url,download_chapters,args) elif 'scan-fr.net' in url: scan_fr(url,download_chapters,args) elif 'mymanga.io' in url: mymanga(url,download_chapters,args) with open(args.list, 'w') as f: f.write(xml_list) else: if args.dest: dest = args.dest elif not args.add_to_calibre: dest = './' else: dest = '' args.dest=dest url = args.url if not download_chapters: last = -1 if 'mangareader.net' in url: mangareader(url, download_chapters,args) elif 'mangahere.co' in url: mangahere(url, download_chapters,args) elif 'bato.to' in url: batoto(url+'/', download_chapters,args) elif 'mangapanda.com' in url: mangapanda(url, download_chapters,args) elif 'goodmanga.net' in url: goodmanga(url, download_chapters,args) elif 'japscan.com' in url: japscan(url,download_chapters,args) elif 'scan-fr.net' in url: scan_fr(url,download_chapters,args) elif 'mymanga.io' in url: mymanga(url,download_chapters,args)
def main(): body = '' # fetch new links from website x = mangareader('http://www.mangareader.net/latest') for manga in store.find(Manga): name = x.convert_name(manga.name) links = x.fetch_chapters_manga(name) if links: for link, number in links: if not store.find(Chapter.link, Chapter.link == unicode(link)).count(): new_chapter = store.add(Chapter()) new_chapter.link = unicode(link) new_chapter.status = 0 new_chapter.id_manga = manga.id store.add(new_chapter) store.commit() store.flush() # download links with status 0 rows = store.find(Chapter, Chapter.status == 0) if rows.count(): stampa('Da Scaricare:') for row in rows: stampa(' %s' % row.link) for row in rows: # re-check status, just in case.. this_chap = store.find(Chapter, Chapter.id == row.id) if this_chap[0].status == 2: stampa('Status cambiato per %s' % row.link) continue row.status = 2 row.data = now() store.commit() store.flush() ## stampa('\nScarico %s' % row.link) if download_chapter(row.link): row.status = 1 row.data = now() row.manga.data = now() store.commit() store.flush() body += '\nScaricato %s:\n' % (row.link) else: body += '\nErrore nello scaricare %s:\n' % (row.link) # report links with status 0 rows = store.find(Chapter, Chapter.status == 0) if rows.count(): body += '\n\n###Da scaricare' for row in rows: body += '\nDa scaricare %s:\n' % (row.link) # report links with status 2 rows = store.find(Chapter, Chapter.status == 2) if rows.count(): body += '\n\n###Chapter in via di scaricamento' for row in rows: body += '\n --> %s:\n' % (row.link) if body: send_mail(body)