包含我用来使Challonge锦标赛更轻松的各种实用脚本(特别适用于Super Smash Bros. Meee)。
假定所有示例都从该存储库的下载版本运行。
# 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这些脚本使用Python 3,并且与Python 2不兼容。如果您遇到任何设置此问题,请随时在此处打开新问题。
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
使用您的Challonge用户名和API密钥编辑您本地的Challonge.ini副本。
运行您要尝试的脚本!
python3 <script_to_run>.py
garpr_seeds_challonge.py :根据GAR PR排名,种子。
任何未识别的名称都将在最后一位(按照其原始外观在播种清单中的顺序)。案件中的案例被忽略。
$ python3 garpr_seeds_challonge.py 32w50dxc
Tournament updated; see seeds at http://challonge.com/32w50dxc/participants.
您可以使用--region区域标志更改区域。
$ python3 garpr_seeds_challonge.py 32w50dxc --region=googlemtv
Tournament updated; see seeds at http://challonge.com/32w50dxc/participants.
标志:
--region=norcal :用于获得GAR PR排名的区域。默认值: norcal--print_only=False :如果您只想打印出新种子而不将其投入比赛,则将其设置为True 。这对于在重新播放比赛之前对测试很有用。默认值: False--shuffle=False :如果您想随后将种子洗牌,同时仍保留每个参与者的预期位置,则将其设置为True 。这有助于将一些差异引入括号中。默认值: False--config_file=challonge.ini :配置文件以读取您的Challonge凭据。这对于降低意外承诺凭证进行源控制的风险很有用。默认值: challonge.ini garpr_seeds.py :在不使用Challonge API的情况下获取种子。
对于在没有实际比赛的情况下测试排名很有用。
$ python3 garpr_seeds.py "Eden, Bryan, Non-gaR PR Person, Admiral"
[3, 2, 4, 1]
shuffle_seeds_challonge.py :在Challonge锦标赛中洗牌。
这些功能可以帮助您洗牌,同时仍保留比赛结束时每个参与者的预计位置。与Challonge的“洗牌种子”相比,这有助于随机进行比赛,同时仍然保持平衡,这只是随机的一切。
$ python3 shuffle_seeds_challonge.py zcmvlkxm
Seeds shuffled: http://challonge.com/zcmvlkxm/participants
根据生成的洗牌订单自动更新所有参与者的播种。
标志:
--config_file=challonge.ini :配置文件以读取您的Challonge凭据。这对于降低意外承诺凭证进行源控制的风险很有用。默认值: challonge.ini shuffle_seeds.py :在不使用Challonge API的情况下将种子变换。
当您无法访问Internet连接,或者只想测试随机化时,这很有用。
$ python3 shuffle_seeds.py 9
[1, 2, 3, 4, 6, 5, 8, 7, 9]
返回与给定数量参与者的比赛的新杂种播种顺序。每个数字指示应列出相应种子的位置。
$ python3 shuffle_seeds.py "Neal, Bryan, Paragon, gaR, Admiral Lightning Bolt, Eden"
['Neal', 'Bryan', 'Paragon', 'gaR', 'Eden', 'Admiral Lightning Bolt']
从参与者姓名列表中返回参与者的新订单。应将参与者从第一种子订购到最后种子。参与者名称中的领先和尾随空间被剥离。
create_amateur_bracket.py :从现有的Challonge锦标赛中自动创建业余锦标赛。
一场业余锦标赛将其放置在一定门槛以下,并在主锦标赛结束后为他们举办单独的比赛。这有助于人们获得更多的练习并获得更多乐趣,尤其是在像近战这样的刺耳学习曲线的游戏中。
$ python3 create_amateur_bracket.py mtvmelee72
检查http://challonge.com/mtvmelee72,并提出使用在失败者的第1轮和第2轮中淘汰的人来创建一个业余托架。
该工具将在创建任何东西之前获得您的批准,如果业余支架已经存在,则不会做任何事情。它不会修改您现有比赛的数据。
使用此工具的示例会议:
标志:
--use_double_elimination=True :业余支架是否应使用双重淘汰或单灭绝。默认值: True--randomize_seeds=False :业余支架是否应完全随机化种子或使用主括号中的播种来弄清楚它们。默认值: False--losers_round_cutoff=2 :失败者的回合,之后被淘汰的人不再有资格获得业余括号。值为2的值表示包括失败者的第一轮和2轮,但不包括失败者的第3轮。默认值: 2--associate_challonge_accounts=False :用户的Challonge帐户是否应与业余支架中的条目关联。这对于帮助他们跟踪他们参加的所有锦标赛很有用,但这也使业余支架向他们发送电子邮件,因此在生成业余支架时负责任地使用。该工具会让您知道他们的帐户是否会通过电子邮件发送。默认值: False--config_file="challonge.ini" :读取您的Challonge API密钥和用户名的配置文件。默认值: "challonge.ini"例如
$ python3 create_amateur_bracket.py mtvmelee72
--config_file=akbiggs_challonge.ini
--use_double_elimination=False
parse_challonge_config.py :从配置文件获得Challonge凭据的开发工具。
Challonge API键是您要保密的东西。我设置了此工具,因此您可以轻松地从配置文件中解析Challonge信息,该文件可以从您的Git Repo中忽略,而不是将其进行硬编码为代码。
有关带有指令的示例配置文件,请参见Challonge.ini。
$ python3 parse_challonge_config.py my_challonge.ini
{ user: 'blah', api_key: 'not telling' }
在进行测试之前,您需要初始化蝙蝠:
git submodule update --init --recursive
之后,只需运行test.sh即可运行所有单元测试:
./test.sh