Add support for playersinks db
Select a default skin depending on the player tag and the character name.master
parent
4f115740b5
commit
7bd09dc959
|
@ -2,6 +2,7 @@ import argparse
|
||||||
import configparser
|
import configparser
|
||||||
import datetime
|
import datetime
|
||||||
import html
|
import html
|
||||||
|
import json
|
||||||
import logging
|
import logging
|
||||||
import os, os.path
|
import os, os.path
|
||||||
import sys
|
import sys
|
||||||
|
@ -50,7 +51,7 @@ def main():
|
||||||
|
|
||||||
init_parser.add_argument(
|
init_parser.add_argument(
|
||||||
"--imgdir", "-ID",
|
"--imgdir", "-ID",
|
||||||
default = "res/ssbu",
|
default = "res/ssbu/chars",
|
||||||
help = "The directory we should download the resources to",
|
help = "The directory we should download the resources to",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -66,9 +67,15 @@ def main():
|
||||||
)
|
)
|
||||||
top8_parser.add_argument(
|
top8_parser.add_argument(
|
||||||
"--imgdir", "-ID",
|
"--imgdir", "-ID",
|
||||||
default = "res/ssbu",
|
default = "res/ssbu/chars",
|
||||||
help = "The directories containing images",
|
help = "The directories containing images",
|
||||||
)
|
)
|
||||||
|
top8_parser.add_argument(
|
||||||
|
"--playerskinsdb", "-PD",
|
||||||
|
default = "res/ssbu/playerskins/lyon.json",
|
||||||
|
help = "A CSV file matching player tags, characters and " \
|
||||||
|
"preferred skins",
|
||||||
|
)
|
||||||
top8_parser.add_argument(
|
top8_parser.add_argument(
|
||||||
"--templatesdir", "-TD",
|
"--templatesdir", "-TD",
|
||||||
default = "templates",
|
default = "templates",
|
||||||
|
@ -165,6 +172,13 @@ def main():
|
||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
if args.command == "top8":
|
if args.command == "top8":
|
||||||
|
|
||||||
|
# Initialize PLAYERSKINS db
|
||||||
|
log.debug("loading playerskins db from '{}'" \
|
||||||
|
.format(args.playerskinsdb))
|
||||||
|
with open(args.playerskinsdb, "r") as f:
|
||||||
|
smashgg.PLAYERSKINS = json.load(f)
|
||||||
|
|
||||||
|
#
|
||||||
tournament = None
|
tournament = None
|
||||||
top_players = {}
|
top_players = {}
|
||||||
|
|
||||||
|
@ -255,7 +269,6 @@ def main():
|
||||||
"dir_root": args.rootdir,
|
"dir_root": args.rootdir,
|
||||||
"dir_res_ssbu": os.path.join(
|
"dir_res_ssbu": os.path.join(
|
||||||
args.imgdir,
|
args.imgdir,
|
||||||
"chars",
|
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,15 +15,16 @@ API_URL = "{scheme}://{host}/{endpoint}".format(
|
||||||
endpoint = API_ENDPOINT,
|
endpoint = API_ENDPOINT,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
CHARACTERS = { c.smashggid : c.name for c in characters_ssbu.EVERYONE }
|
||||||
|
|
||||||
|
PLAYERSKINS = {}
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
class Player():
|
class Player():
|
||||||
"""A Player, as registered by the smash.gg API, and their characters
|
"""A Player, as registered by the smash.gg API, and their characters
|
||||||
choices and placement in a tournament"""
|
choices and placement in a tournament"""
|
||||||
|
|
||||||
# TODO fill missing chars
|
|
||||||
CHARACTERS = { c.smashggid : c.name for c in characters_ssbu.EVERYONE }
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
@ -49,11 +50,20 @@ class Player():
|
||||||
|
|
||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
def add_character_selection(self, character, win):
|
def add_character_selection(self, character, win):
|
||||||
try:
|
|
||||||
character = (self.CHARACTERS[character], "00")
|
|
||||||
except KeyError:
|
|
||||||
if type(character) != tuple:
|
if type(character) != tuple:
|
||||||
character = (character, "00")
|
try:
|
||||||
|
charname = CHARACTERS[character]
|
||||||
|
except KeyError:
|
||||||
|
charname = character # Unknown char -> sgg id
|
||||||
|
|
||||||
|
try:
|
||||||
|
skin = PLAYERSKINS[self.gamerTag.lower()][charname]
|
||||||
|
except KeyError:
|
||||||
|
skin = "00" # default skin
|
||||||
|
|
||||||
|
character = ( charname, skin )
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.chars[character] += ( 1.01 if win else 1.00 )
|
self.chars[character] += ( 1.01 if win else 1.00 )
|
||||||
|
|
Loading…
Reference in New Issue