#!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = 'ipetrash' from collections import defaultdict from db import Dump print('Total:', Dump.select().count()) genres = Dump.get_all_genres() print(f'Genres ({len(genres)}): {genres}') games = Dump.get_all_games() print(f'Games ({len(games)}): {games}') sites = Dump.get_all_sites() print(f'Sites ({len(sites)}): {sites}') print() max_width = max(len(x.site) for x in Dump.select(Dump.site).distinct()) fmt_str = ' {:<%d} : {}' % max_width game_by_dump = defaultdict(list) for x in Dump.get(): game_by_dump[x.name].append(x) for game, dumps in game_by_dump.items(): print(game)
#!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = 'ipetrash' import json from pathlib import Path import sys sys.path.append('..') from db import Dump from playhouse.shortcuts import model_to_dict DIR = Path(__file__).parent.resolve() / 'data' DIR.mkdir(parents=True, exist_ok=True) FILE_NAME_EXPORT_JSON = DIR / 'games.json' if __name__ == '__main__': items = [model_to_dict(dump) for dump in Dump.select()] print(len(items)) json.dump(items, open(FILE_NAME_EXPORT_JSON, 'w', encoding='utf-8'), ensure_ascii=False, indent=4)
__author__ = 'ipetrash' import json import sys sys.path.append('..') from db import Dump import peewee from playhouse.shortcuts import dict_to_model from export import FILE_NAME_EXPORT_JSON items = json.load(open(FILE_NAME_EXPORT_JSON, encoding='utf-8')) print('items:', len(items)) print('Dump count before import:', Dump.select().count()) for x in items: try: dump = dict_to_model(Dump, x) dump.save(force_insert=True) print(f'Import {x}') except peewee.IntegrityError as e: # Ignore error "UNIQUE constraint failed: dump.id" pass print('Current dump count:', Dump.select().count())