def execute(args, options): login = args['--login'] file_path = check_file(args) csv_reader = CsvReader(file_path) csv_reader.open() game_count = csv_reader.rowCount if not args['--force']: sys.stdout.write( "You are about to delete %s games in you collection (%s), " "please enter the number of games displayed here to confirm you want to continue: " % (game_count, login)) if raw_input() != game_count.__str__(): Logger.error( 'Operation canceled, number does not match (should be %s).' % game_count, sysexit=True) return Logger.info("Deleting games for '%s' account..." % login) with WebDriver('collection-delete', args, options) as web_driver: if not LoginPage(web_driver.driver).authenticate( login, args['--password']): sys.exit(1) Logger.info("Deleting %s games..." % game_count) game_page = GamePage(web_driver.driver) csv_reader.iterate(lambda row: game_page.delete(row)) Logger.info("Deletion has finished.")
def execute(args): login = args['--login'] file_path = check_file(args) csv_reader = CsvReader(file_path) csv_reader.open() game_count = csv_reader.rowCount if not args['--force']: sys.stdout.write( "You are about to delete %s games in you collection (%s), " "please enter the number of games displayed here to confirm you want to continue: " % (game_count, login)) if raw_input() != game_count.__str__(): Logger.error( 'Operation canceled, number does not match (should be %s).' % game_count, sysexit=True) return Logger.info("Deleting games for '%s' account..." % login) cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) Logger.info("Authenticating...", break_line=False) opener.open( BGG_BASE_URL + '/login', urlencode({ 'action': 'login', 'username': login, 'password': args['--password'] })) if not any(cookie.name == "bggusername" for cookie in cj): Logger.info(" [error]", append=True) Logger.error("Authentication failed for user '%s'!" % login, sysexit=True) Logger.info(" [done]", append=True) Logger.info("Deleting %s games..." % game_count) csv_reader.iterate(lambda row: game_deleter(opener, row)) Logger.info("Deletion has finished.")
def execute(args, options): login = args['--login'] file_path = check_file(args) csv_reader = CsvReader(file_path) csv_reader.open() Logger.info("Importing games for '%s' account..." % login) with WebDriver('collection-import', args, options) as web_driver: if not LoginPage(web_driver.driver).authenticate( login, args['--password']): sys.exit(1) Logger.info("Importing %s games..." % csv_reader.rowCount) game_page = GamePage(web_driver.driver) csv_reader.iterate(lambda row: game_page.update(row)) Logger.info("Import has finished.")
update_collid(opener, collid, 'comment', {'value': row['comment']}) if 'conditiontext' in row.keys(): update_collid(opener, collid, 'conditiontext', {'value': row['conditiontext']}) if 'wantpartslist' in row.keys(): update_collid(opener, collid, 'wantpartslist', {'value': row['wantpartslist']}) if 'haspartslist' in row.keys(): update_collid(opener, collid, 'haspartslist', {'value': row['haspartslist']}) if 'wishlistcomment' in row.keys(): update_collid(opener, collid, 'wishlistcomment', {'value': row['wishlistcomment']}) def execute(args): login = args['--login'] file_path = check_file(args) csv_reader = CsvReader(file_path) csv_reader.open() Logger.info("Importing games for '%s' account..." % login) cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) Logger.info("Authenticating...", break_line=False) opener.open(BGG_BASE_URL + '/login', urlencode({ 'action': 'login', 'username': login, 'password': args['--password']})) if not any(cookie.name == "bggusername" for cookie in cj): Logger.info(" [error]", append=True) Logger.error("Authentication failed for user '%s'!" % login, sysexit=True) Logger.info(" [done]", append=True) Logger.info("Importing %s games..." % csv_reader.rowCount)
def execute(args, options): print('Executing!') login = args['--login'] file_path = check_file(args) csv_reader = CsvReader(file_path) csv_reader.open() rows = [] # try: Logger.info("Parsing input file '{}'...".format(file_path)) csv_reader.iterate(lambda row: rows.append(row)) #Logger.info("Found %s games to put in collection..." % csv_reader.rowCount) rows.reverse() firstrow = rows[0] loop = 0 Logger.info("Importing {} games to collection of '{}' ...".format( csv_reader.rowCount, login)) while rows: try: with WebDriver('collection-import', args, options) as web_driver: if not LoginPage(web_driver.driver).authenticate( login, args['--password']): sys.exit(1) #input("Kill Firefox, then Press Enter to continue...") game_page = GamePage(web_driver.driver) while rows: row = rows.pop() if firstrow is None or firstrow == row: loop += 1 if loop >= LOOPLIMIT: Logger.info( "Loop limit of {} reached.".format(loop)) return Logger.info('Loop {} (maximum {})'.format( loop, LOOPLIMIT)) if rows: firstrow = rows[0] Logger.info('First assigned {}'.format( firstrow['objectname'])) else: firstrow = None Logger.info('First assigned None') Logger.info('(BGGID {}) Name: {} ({} game left)'.format( row['objectid'], row['objectname'], len(rows) + 1)) try: val = game_page.update(row) Logger.info('update returned {}'.format(val)) if val: #Logger.info('Updated (BGGID {0}) "{1}"'.format(row['objectid'],row['objectname'])) Logger.info('(BGGID {}) Name: {} UPDATED!'.format( row['objectid'], row['objectname'], len(rows))) # ({} game left) else: rows.insert(0, row) Logger.info( 'returned False??, back in queue.'.format( len(rows))) # ({} game left) except WebDriverException: rows.insert(0, row) Logger.info( 'Exception occurred, back in queue.'.format( len(rows))) # ({} left) Logger.info( 'WebDriverException occurred, restarting browser.') raise except Exception as e: traceback.print_exc(limit=2, file=sys.stdout) rows.insert(0, row) Logger.info( 'Exception occurred, back in queue.'.format( len(rows))) # ({} left) #badrows.append(row) # for row in rows: # try: # game_page.update(row) # except: # badrows.append(row) # print except WebDriverException: pass Logger.info("Import has finished.")