-
Notifications
You must be signed in to change notification settings - Fork 0
/
wresteler_info.util.py
111 lines (79 loc) · 3.19 KB
/
wresteler_info.util.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from kayfabe import session, BASE_SCORE
from kayfabe.models import *
from kayfabe.scrapper import cagematchnet, WikiData
from kayfabe.util import get_last_match
from kayfabe.proxy import WrestlerProxy
from kayfabe.view import get_image_path
import logging, sys
from sqlalchemy import asc, desc, func
from sqlalchemy.orm import exc
def get_wrassler(nr):
try:
wrestler = session.query(Wrestler).filter_by(nr=nr).one()
except exc.NoResultFound:
wrestler = Wrestler(nr=nr)
session.add(wrestler)
return wrestler
if __name__ == '__main__':
import argparse
cmdline = argparse.ArgumentParser(description='Find wrestler info from different datasources.')
cmdline.add_argument('wrestler_id', help='Wrestler ID number.',
type=int, nargs='*')
cmdline.add_argument('--name', help="Select wrestler by name.")
cmdline.add_argument('--add', action='store_true', default=False, help="Add wrestler.")
cmdline.add_argument('--debug', help='Debug', action='store_true')
cmdline.add_argument('--update', help='Force updating info', action='store_true')
cmdline.add_argument('--picture', help='Get picture.', action='store_true')
args = cmdline.parse_args()
if args.debug:
logging.basicConfig(stream=open('log.txt', 'w'), level=logging.DEBUG)
else:
logging.basicConfig(stream=sys.stderr, level=logging.INFO)
logger = logging.getLogger(__name__)
force_update = args.update
wrestlers = []
if args.wrestler_id:
for nr in args.wrestler_id:
wrestlers.append(get_wrassler(nr))
elif args.name:
try:
wrestler = session.query(Wrestler).filter_by(name=args.name).one()
except exc.NoResultFound:
wrestler = None
if wrestler:
wrestlers.append(wrestler)
else:
_wrestlers = cagematchnet.search(args.name.strip())
if len(_wrestlers) == 1:
w_nr = list(_wrestlers.keys())[0]
wrestlers.append(get_wrassler(w_nr))
logger.info('Found Wrestler %s from cagematch.net', w_nr)
else:
logging.error('Wrong ammount of results %i', len(_wrestlers))
sys.exit(2)
else:
wrestlers = session.query(Wrestler).filter(Wrestler.nr < 1000000).order_by(Wrestler.nr)
if args.add or args.update:
force_update = True
for wrestler in wrestlers:
proxy = WrestlerProxy(wrestler)
proxy.force_update = force_update
print("Id: %s" % wrestler.nr)
print("Name: %s" % proxy.name(force_update))
gimmicks = proxy.gimmicks(force_update)
ringnames = [g.gimmick for g in gimmicks]
print("Ringnames: %s" % ', '.join(ringnames))
print("Promotion: %s" % proxy.promotion(force_update).name)
try:
print("Last match: %s" % get_last_match(wrestler).date)
except:
pass
if args.picture:
picture = get_image_path(wrestler)
print('Picture: %s' % picture)
if force_update:
logger.debug("Storing")
print('')
session.commit()