Пример #1
0
def main():
    args = common.get_base_argparser().parse_args()
    common.configure_logging(args)

    race_path = common.get_race_path(args.race)

    with open(os.path.join(race_path, 'riders.json')) as f:
        riders = json.load(f)

    session = common.get_trackleaders_session()

    for rider in riders:
        try:
            logging.info('Getting data for {name}'.format(**rider))
            rider_path = os.path.join(race_path, rider['url_fragment'])
            rider_points_path = os.path.join(rider_path, 'points.json')
            oldpoints = common.load_rider_points(rider_points_path=rider_points_path)

            spot_js_url = 'http://trackleaders.com/spot/{}/{}.js'.format(args.race, rider['url_fragment'])
            spot_js_response = common.retry(functools.partial(session.get, spot_js_url))
            spot_js_response.raise_for_status()
            newpoints = parse_points_from_spotjs_text(spot_js_response.text)

            points_set = set(itertools.chain(oldpoints, newpoints))
            points_sorted = [common.point_to_raw(point) for point in sorted(points_set)]
            if not points_sorted:
                logging.warning('No points for {name}.'.format(**rider))
            with common.DelayedKeyboardInterrupt():
                if not os.path.exists(rider_path):
                    os.mkdir(rider_path)
                with open(rider_points_path, 'w') as f:
                    json.dump(points_sorted, f, indent=2, sort_keys=True)

        except Exception:
            logging.exception('Error for {name}'.format(**rider))
Пример #2
0
def main():
    args = common.get_base_argparser().parse_args()
    common.configure_logging(args)

    logging.info('Getting Riders')

    session = common.get_trackleaders_session()

    race_page_response = session.get('http://trackleaders.com/{}f.php'.format(args.race))
    race_page_response.raise_for_status()
    riders = parse_riders_from_race_page(race_page_response.text)

    race_path = common.get_race_path(args.race)
    if not os.path.exists(race_path):
        os.mkdir(race_path)

    with open(common.get_riders_path(race_path), 'w') as f:
        json.dump(riders, f, indent=2, sort_keys=True)