لا يبدو أن ملفات Warthunder Replay تحتوي على أي معلومات قابلة للقراءة بسهولة (مثل WOT ، والتي تتضمن بعض JSON). هذه محاولة أساسية للغاية لتحليل ملفات إعادة تشغيل Warthunder (.wrpl). هناك أدوات WT ، والتي لا يبدو أنها تعمل مع إعادة خادم (multipart).
هناك ثلاثة نصوص متوفرة:
️ استخدم على مسؤوليتك الخاصة ، قد تكون صفحات الويب (المحمية) ضد TOS/القانون في بعض البلدان
يمكن استخدام هذا البرنامج النصي لكشط إعادة الإعادة من https://warthunder.com/en/tournament/replay/ صفحة. استدعاءها مثل هذا:
python replays_scraper.py <num_pages>
حيث <num_pages> هو عدد الصفحات التي يجب كشطها (عادةً ما يكون هناك 25 عملية إعادة لكل صفحة). سيقوم بطباعة كائن JSON مع جميع عمليات الإعادة الموجودة.
نظرًا لأن الصفحة محمية لتسجيل الدخول ، يتوقع هذا البرنامج النصي ملف auth_cookie.json مع ملفات تعريف الارتباط لتسجيل الدخول:
Auth_cookie.json:
{
"identity_sid" : " ... "
} حيث ... هي قيمة ملف تعريف الارتباط identity_sid (والتي يمكنك الحصول عليها عن طريق تسجيل الدخول إلى Warthunder.com وقراءة ملفات تعريف الارتباط في متصفحك).
قم بتنزيل إعادة تشغيل من https://warthunder.com/en/tournament/replay/.
python download_replay.py <replay_id>
حيث <replay_id> هو معرف إعادة التشغيل (64 بت ، إما في تدوين عشري أو سداسي عشري). سيؤدي ذلك إلى تخزين ملفات إعادة التشغيل في مجلد سمي على اسم معرف إعادة التشغيل في تدوين Hex.
تحليل إعادة تشغيل في مجلد
python parse_replay.py <replay_folder>
إنه يتوقع تسمية ملفات إعادة التشغيل 0000.WRPL ، 0001.WRPL ، إلخ. إذا لم يتم تقديم <replay_folder> ، فسيستخدم الدليل الحالي.
سيكون الإخراج في شكل 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"
]
},
...
]
}
يمكنك أيضًا استخدام البرامج النصية كوحدة
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 ))