Contiene varios scripts de utilidad que uso para facilitar la ejecución de torneos Challonge (específicamente para Super Smash Bros. Melee).
Se supone que todos los ejemplos se ejecutan desde una versión descargada de este repositorio.
# After creating a local tourney at https://challonge.com/mtvmelee77,
# I want to seed participants based on their Google MTV gaR PR rankings, and shuffle
# the bracket a bit while preserving each participant's projected placement.
python3 garpr_seeds_challonge.py mtvmelee77 --shuffle --region=googlemtv
# Then later on in the local, after loser's round 2 has finished, I want
# to create an amateur bracket automatically, so I don't have to spend time
# manually entering in each participant.
python3 create_amateur_bracket.py mtvmelee77
# Once that amateur bracket is created, it's available at
# https://challonge.com/mtvmelee77_amateur. The amateur bracket will use the
# same seedings as the original bracket by default, but I want to vary up the
# matches, so I run shuffled gaR PR seeds on the bracket again.
python3 garpr_seeds_challonge.py mtvmelee77_amateur --shuffle --region=googlemtv
Estos scripts usan Python 3 y son incompatibles con Python 2. Si te encuentras con algún problema, no dudes en abrir un nuevo problema aquí.
git clone https://github.com/akbiggs/challonge-tools
cd challonge-tools
python3 -m venv challonge_tools_env
source challonge_tools_env/bin/activate
pip install -r requirements.txt
Edite su copia local de Challonge.ini con su nombre de usuario y clave API Challonge.
¡Ejecute el script que quieras probar!
python3 <script_to_run>.py
garpr_seeds_challonge.py
: Semilla un torneo basado en clasificaciones de PR de GAR.
Cualquier nombre no reconocido se sembrará en el último lugar (en orden de su aparición original en la lista de siembras). El caso se ignora en los nombres.
$ python3 garpr_seeds_challonge.py 32w50dxc
Tournament updated; see seeds at http://challonge.com/32w50dxc/participants.
Puede cambiar la región utilizando el indicador --region
.
$ python3 garpr_seeds_challonge.py 32w50dxc --region=googlemtv
Tournament updated; see seeds at http://challonge.com/32w50dxc/participants.
Banderas:
--region=norcal
: la región se utiliza para obtener clasificaciones de PR de Gar. Valor predeterminado: norcal
--print_only=False
: Establezca esto en True
si solo desea imprimir las nuevas semillas sin comprometerlas con el torneo. Esto es útil para las pruebas antes de volver a crear su torneo. Valor predeterminado: False
--shuffle=False
: Establezca esto en True
si desea barajar las semillas después mientras preserva la ubicación proyectada de cada participante. Esto ayuda a introducir un poco de varianza en el soporte. Valor predeterminado: False
--config_file=challonge.ini
: el archivo de configuración para leer sus credenciales Challonge de. Esto es útil para reducir el riesgo de comprometer accidentalmente sus credenciales al control de la fuente. Valor predeterminado: challonge.ini
garpr_seeds.py
: obtiene semillas sin usar la API Challonge.
Útil para probar las clasificaciones sin un torneo real.
$ python3 garpr_seeds.py "Eden, Bryan, Non-gaR PR Person, Admiral"
[3, 2, 4, 1]
shuffle_seeds_challonge.py
: baraja las semillas en un torneo Challonge.
Estas funciones lo ayudan a barajar un soporte mientras conservan la colocación proyectada de cada participante al final del torneo. Esto ayuda a aleatorizar los torneos mientras mantiene las cosas equilibradas, en comparación con las "semillas de Shuffle" de Challonge, que simplemente aleatorizan todo.
$ python3 shuffle_seeds_challonge.py zcmvlkxm
Seeds shuffled: http://challonge.com/zcmvlkxm/participants
Actualiza automáticamente la siembra de todos los participantes en función de un pedido generado de Shuffle.
Banderas:
--config_file=challonge.ini
: el archivo de configuración para leer sus credenciales Challonge de. Esto es útil para reducir el riesgo de comprometer accidentalmente sus credenciales al control de la fuente. Valor predeterminado: challonge.ini
shuffle_seeds.py
: baraja semillas sin usar la API Challonge.
Esto es útil cuando no tiene acceso a una conexión a Internet, o cuando solo desea probar la aleatorización.
$ python3 shuffle_seeds.py 9
[1, 2, 3, 4, 6, 5, 8, 7, 9]
Devuelve la orden de siembra recién barajada para un torneo con un número determinado de participantes. Cada número indica dónde se debe enumerar la semilla correspondiente.
$ python3 shuffle_seeds.py "Neal, Bryan, Paragon, gaR, Admiral Lightning Bolt, Eden"
['Neal', 'Bryan', 'Paragon', 'gaR', 'Eden', 'Admiral Lightning Bolt']
Devuelve el orden recién barajado de los participantes de una lista de nombres de participantes. Los participantes deben ser ordenados de la primera semilla hasta la última semilla. Se despojan los espacios liderantes y finales en los nombres de los participantes.
create_amateur_bracket.py
: crea un torneo aficionado automáticamente a partir de un torneo Challonge existente.
Un torneo aficionado requiere personas que colocan por debajo de un cierto umbral y organiza un torneo separado para ellos después del torneo principal. Esto ayuda a las personas a obtener más práctica y divertirse más, especialmente en un juego con una curva de aprendizaje que abre el alma como el cuerpo a cuerpo.
$ python3 create_amateur_bracket.py mtvmelee72
Examina http://challonge.com/mtvmelee72 y ofrece crear un soporte aficionado utilizando a las personas eliminadas en las rondas 1 y 2 de Loser.
La herramienta obtendrá su aprobación antes de que cree algo, y no hará nada si ya existe un soporte aficionado. No modificará los datos de su torneo existente.
Sesiones de ejemplo con esta herramienta:
Banderas:
--use_double_elimination=True
: si el soporte amateur debe usar doble eliminación o eliminación única. Valor predeterminado: True
--randomize_seeds=False
: si el soporte amateur debe aleatorizar completamente las semillas o usar la siembra del soporte principal para resolverlas. Valor predeterminado: False
--losers_round_cutoff=2
: la ronda del perdedor después de lo cual las personas que son eliminadas ya no califican para el soporte de aficionados. Un valor de 2 significa que se incluyen las rondas 1 y 2 de los perdedores, pero no la ronda 3 de los perdedores. Valor predeterminado: 2
--associate_challonge_accounts=False
: si las cuentas Challonge de los usuarios deben estar asociadas con sus entradas en los soportes aficionados. Esto es útil para ayudarlos a rastrear todos los torneos que han ingresado, pero también hace que el soporte de aficionados les envíe un correo electrónico, así que use responsablemente al generar soportes aficionados. La herramienta le informará si su cuenta será enviada por correo electrónico. Valor predeterminado: False
--config_file="challonge.ini"
: el archivo de configuración para leer su clave de API Challonge y nombre de usuario desde. Valor predeterminado: "challonge.ini"
p.ej
$ python3 create_amateur_bracket.py mtvmelee72
--config_file=akbiggs_challonge.ini
--use_double_elimination=False
parse_challonge_config.py
: herramienta de desarrollador para obtener credenciales Challonge desde un archivo de configuración.
La clave de la API Challonge es algo que desea mantener en secreto. Configuré esta herramienta para que pueda analizar fácilmente su información Challonge de un archivo de configuración que se puede ignorar desde su repositorio GIT en lugar de codificarla en su código.
Consulte Challonge.ini para un archivo de configuración de ejemplo con instrucciones.
$ python3 parse_challonge_config.py my_challonge.ini
{ user: 'blah', api_key: 'not telling' }
Antes de ejecutar las pruebas, deberá inicializar los murciélagos:
git submodule update --init --recursive
Luego, simplemente ejecute test.sh
para ejecutar todas las pruebas unitarias:
./test.sh