#!/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)
Beispiel #3
0
__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())