Sayangnya, Wartthunder Replay Files tampaknya tidak mengandung informasi yang mudah dibaca (seperti WOT, yang mencakup beberapa JSON). Ini upaya yang sangat, sangat mendasar untuk parsing wartthunder replay file (.wrpl). Ada WT-Tools, yang meskipun tampaknya tidak bekerja dengan replay server (Multipart).
Ada tiga skrip yang tersedia:
️ Gunakan dengan risiko Anda sendiri, halaman web mengikis (dilindungi) mungkin bertentangan dengan TOS/hukum di negara -negara tertentu
Skrip ini dapat digunakan untuk mengikis replay dari https://warthunder.com/en/tournament/replay/ halaman. Memohon seperti ini:
python replays_scraper.py <num_pages>
di mana <num_pages> adalah jumlah halaman untuk dikikis (biasanya ada 25 replay per halaman). Ini akan mencetak objek JSON dengan semua tayangan ulang yang ditemukan.
Karena halaman dilindungi login, skrip ini mengharapkan file auth_cookie.json dengan cookie untuk login:
auth_cookie.json:
{
"identity_sid" : " ... "
} di mana ... adalah nilai cookie identity_sid (yang bisa Anda dapatkan dengan masuk ke warthunder.com dan membaca cookie di browser Anda).
Unduh replay dari https://warthunder.com/en/tournament/replay/.
python download_replay.py <replay_id>
di mana <replay_id> adalah id replay (64-bit, baik dalam notasi desimal atau heksadesimal). Ini akan menyimpan file replay dalam folder yang dinamai dengan nama ulang ID replay dalam notasi hex.
Menguraikan replay dalam folder
python parse_replay.py <replay_folder>
Ini mengharapkan file replay dinamai 0000.wrpl, 0001.wrpl, dll. Jika <replay_folder> tidak diberikan, itu akan menggunakan direktori saat ini.
Output akan dalam bentuk JSON:
parsing replay in /path/to/replay/005569aa001501ca
parsing /path/to/replay/005569aa001501ca/0000.wrpl
parsing /path/to/replay/005569aa001501ca/0001.wrpl
parsing /path/to/replay/005569aa001501ca/0002.wrpl
parsing /path/to/replay/005569aa001501ca/0003.wrpl
parsing /path/to/replay/005569aa001501ca/0004.wrpl
parsing /path/to/replay/005569aa001501ca/0005.wrpl
parsing /path/to/replay/005569aa001501ca/0006.wrpl
parsing /path/to/replay/005569aa001501ca/0007.wrpl
parsing /path/to/replay/005569aa001501ca/0008.wrpl
parsing /path/to/replay/005569aa001501ca/0009.wrpl
{
"level": "levels/avg_normandy.bin",
"mission_file": "gamedata/missions/cta/tanks/normandy/normandy_dom.blk",
"mission_name": "normandy_Dom",
"time_of_day": "day",
"weather": "hazy",
"time_of_battle_ts": 1641217514,
"time_of_battle": "2022-01-03 14:45:14",
"num_players": 21,
"players": [
{
"player_id": 34,
"vehicles": [
"us_m1a1_abrams",
"us_m1a1_hc_abrams"
]
},
{
"player_id": 35,
"vehicles": [
"us_m1_ip_abrams",
"us_hstv_l"
]
},
...
]
}
Anda juga dapat menggunakan skrip sebagai modul
import replays_scraper
import download_replay
import parse_replay
# set the cookies
cookies = { "identity_sid" : "secret_key" }
# download the html
pages = replays_scraper . download_pages ( 1 , cookies )
# scrape replay data from html
replays = []
for page in pages :
replays += replays_scraper . parse_page ( page )
# download the files of the last replay
download_replay . downloadReplay ( replays [ - 1 ][ "id" ])
# get the hexadecimal id (= folder name)
replay_id_hex = download_replay . _get_hex_id ( replays [ - 1 ][ "id" ])
# parse the replay
print ( parse_replay . parse_replay ( replay_id_hex ))