diff --git a/scripts/test.py b/scripts/test.py new file mode 100755 index 0000000..0493162 --- /dev/null +++ b/scripts/test.py @@ -0,0 +1,93 @@ +#!/usr/bin/python +""" +An experiment with comictaggerlib +""" + +import sys +import os +import platform +import locale +import codecs + +sys.path += ".." + os.pathsep + +from comictaggerlib.comicarchive import * +from comictaggerlib.settings import * +from comictaggerlib.issuestring import * + + +#--------------------------------------- +def init_output( ): + + # try to make stdout encodings happy for unicode printing + if platform.system() == "Darwin": + preferred_encoding = "utf-8" + else: + preferred_encoding = locale.getpreferredencoding() + sys.stdout = codecs.getwriter(preferred_encoding)(sys.stdout) + sys.stderr = codecs.getwriter(preferred_encoding)(sys.stderr) + +#-------------------------------------- +def get_recursive_filelist( pathlist ): + filelist = [] + for p in pathlist: + # if path is a folder, walk it recursivly, and all files underneath + if type(p) == str: + #make sure string is unicode + filename_encoding = sys.getfilesystemencoding() + p = p.decode(filename_encoding, 'replace') + + if os.path.isdir( unicode(p)): + for root,dirs,files in os.walk( unicode(p) ): + for f in files: + filelist.append(os.path.join(root,unicode(f))) + else: + filelist.append(unicode(p)) + + return filelist +#-------------------------------------- + + +def main(): + init_output() + settings = ComicTaggerSettings() + + filelist = get_recursive_filelist( sys.argv ) + + #first read in CIX metadata from all files + metadata_list = [] + for filename in filelist: + ca = ComicArchive(filename, settings ) + metadata_list.append((filename, ca.readCIX())) + + # now, figure out column widths + w0 = 4 + w1 = 4 + for filename,md in metadata_list: + if not md.isEmpty: + w0 = max( len((os.path.split(filename)[1])), w0) + if md.series is not None: + w1 = max( len(md.series), w1) + w0 += 2 + + # build a format string + fmt_str = "{0:" + str(w0) + "} {1:" + str(w1) + "} #{2:6} ({3})" + + # now sort the list by year + metadata_list.sort(key=lambda x: IssueString(x[1].issue).asString(3), reverse=False) + metadata_list.sort(key=lambda x: str(x[1].series)+str(x[1].year), reverse=False) + #metadata_list.sort(key=lambda x: x[1].series, reverse=False) + + # now print + for filename,md in metadata_list: + if not md.isEmpty: + print fmt_str.format(os.path.split(filename)[1]+":", md.series, md.issue, md.year) + """ + if len(md.pages) != 0: + for p in md.pages: + if p.has_key('Type') and p['Type'] in [ 'Deleted', 'Advertisment' ]: + print "-------Has pages to remove" + """ + +if __name__ == '__main__': + main()