包含我用來使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