#!/usr/bin/env python import pyanidb, pyanidb.hash import ConfigParser, os, sys, getpass, multihash def auth(): try: c = ConfigParser.ConfigParser() c.read(os.path.expanduser('~/.pyanidb.conf')) username = c.get('auth', 'username') password = c.get('auth', 'password') except: username = raw_input('Username: ') password = getpass.getpass() return username, password username, password = auth() try: a = pyanidb.AniDB(username, password) #t = a.ping() #if t: # print 'AniDB is reachable, %.3fs' % (t) #else: # print 'AniDB is unreachable.' # sys.exit(1) a.auth() print 'Logged in as user %s.' % (username) if a.new_version: print 'New version available.' files = [] for name in sys.argv[1:]: if os.access(name, os.R_OK): files.append(name) else: print 'Invalid file: %s' % (name) for filename, hash in pyanidb.hash.hash_files(files): hash = hash.ed2k() size = os.stat(filename).st_size print 'Hashed: ed2k://|file|%s|%d|%s|' % (filename, size, hash) try: while 1: try: a.add_hash(size, hash) except pyanidb.AniDBTimeout: print 'Connection timed out, retrying.' continue break except pyanidb.AniDBUnknownFile: print 'Unknown file: %s' % (filename) continue print 'Added file: %s' % (filename) print 'All operations finished.' except pyanidb.AniDBUserError: print 'Invalid username/password.' sys.exit(1) except pyanidb.AniDBTimeout: print 'Connection timed out.' sys.exit(1) except pyanidb.AniDBError, e: print 'Fatal error:', e sys.exit(1)