if len(sys.argv) > 2: collectionDBfp = sys.argv[2] if len(sys.argv) > 3: scoresDBfp = sys.argv[3] COLLECTIONS_FP = collectionDBfp osuDb = open(osuDBfp, 'rb') collectionsDb = open(collectionDBfp, 'rb') scoresDb = open(scoresDBfp, 'rb') collections = dbparse.parseCollectionsDb(collectionsDb.read()) beatmaps = dbparse.parseOsuDb(osuDb.read()) scores = dbparse.parseScoresDb(scoresDb.read()) # transform scores to be slightly easier to work with scores = {bm['file_md5']: bm for bm in scores['beatmaps']} # add some extra fields to the beatmaps dictionary for md5 in beatmaps['beatmaps']: if md5 not in scores: beatmaps['beatmaps'][md5]['top_rank'] = 'F' beatmaps['beatmaps'][md5]['top_combo'] = 0 beatmaps['beatmaps'][md5]['top_accuracy'] = 0 beatmaps['beatmaps'][md5]['passes'] = 0 continue sortedScores = sorted(scores[md5]['scores'], key=lambda s: -s['score']) bestScore = sortedScores[0]
import dbparse import json scoredb = dbparse.parseScoresDb(open('data/scores.db').read()) beatmapdb = dbparse.parseOsuDb(open('data/osu!.db').read()) for beatmap in scoredb['beatmaps']: if beatmap['file_md5'] not in beatmapdb['beatmaps']: print beatmap['file_md5'] + ' not in local beatmaps' continue db = beatmapdb['beatmaps'][beatmap['file_md5']] for key in db: beatmap[key] = db[key] json.dump(scoredb, open('data/scores_aug.json', 'w'), indent=4)
if len(sys.argv) > 2: collectionDBfp = sys.argv[2] if len(sys.argv) > 3: scoresDBfp = sys.argv[3] COLLECTIONS_FP = collectionDBfp osuDb = open(osuDBfp, 'rb') collectionsDb = open(collectionDBfp, 'rb') scoresDb = open(scoresDBfp, 'rb') collections = dbparse.parseCollectionsDb(collectionsDb.read()) beatmaps = dbparse.parseOsuDb(osuDb.read()) scores = dbparse.parseScoresDb(scoresDb.read()) # transform scores to be slightly easier to work with scores = {bm['file_md5']: bm for bm in scores['beatmaps']} # add some extra fields to the beatmaps dictionary for md5 in beatmaps['beatmaps']: if md5 not in scores: beatmaps['beatmaps'][md5]['top_rank'] = 'F' beatmaps['beatmaps'][md5]['top_combo'] = 0 beatmaps['beatmaps'][md5]['top_accuracy'] = 0 beatmaps['beatmaps'][md5]['passes'] = 0 continue sortedScores = sorted(scores[md5]['scores'], key=lambda s:-s['score']) bestScore = sortedScores[0]