def pull_golfshot_data(self, golfer_data): """Read golfer data from Golfshot.""" for golfer in golfer_data: output.header('Getting round data for %s' % golfer) self.golf_shot_reader = HtmlListReader( '%s%s/rounds' % (BASE_URL, golfer_data[golfer])) round_info = {} for page in self.golf_shot_reader.pages: data = HtmlListReader( '%s%s/rounds?page=%s' % (BASE_URL, golfer_data[golfer], page)) round_info = self.write_to_db(golfer, data.round_data)
def write_to_db(self, golfer_name, round_data): normalized_rounds = self.normalize_round_data(round_data) for golf_round in normalized_rounds: golf_round['golfer_name'] = golfer_name try: self.rounds.insert(golf_round) except pymongo.errors.DuplicateKeyError: output.warn('Skipping...round already exists in golfshot DB') continue except: output.error('Unknown error occurred during DB insertion') output.msg(sys.exc_info()[0]) continue output.info('Successfully inserted round:') output.dict(golf_round)