Documentation (sort of) in README.md
This commit is contained in:
parent
a9e42d7248
commit
147edbd6c5
162
README.md
162
README.md
@ -1,4 +1,4 @@
|
|||||||
# 8th Fetcher — Парсер Восьмого ветра
|
# 8th Wind Fetcher — Парсер Восьмого ветра
|
||||||
|
|
||||||
## Godville game profiles parser
|
## Godville game profiles parser
|
||||||
|
|
||||||
@ -19,3 +19,163 @@ This software created for demonstation purposes only.
|
|||||||
Вы можете использовать эту программу для своих личных задач, но делайте это на свой страх и риск. Я не несу ответственности за каждого, кто нарушит правиля Годвилля с помощью этой программы.
|
Вы можете использовать эту программу для своих личных задач, но делайте это на свой страх и риск. Я не несу ответственности за каждого, кто нарушит правиля Годвилля с помощью этой программы.
|
||||||
|
|
||||||
Данная программа создана исключительно в ознакомительных целях.
|
Данная программа создана исключительно в ознакомительных целях.
|
||||||
|
|
||||||
|
## Параметры, возвращаемые парсером
|
||||||
|
|
||||||
|
Для начала, существуют ровно два состояния ответа: на правильный и неправильный запрос. В случае неправильного запроса ответ будет примерно таким:
|
||||||
|
|
||||||
|
{
|
||||||
|
"status": "error",
|
||||||
|
"error_code": "400",
|
||||||
|
"description": "Invalid data."
|
||||||
|
}
|
||||||
|
|
||||||
|
Попали на такой ответ — смотрим, что случилось. Особенно поможет поле "description" — обычно его текста достаточно, чтобы понять, что случилось.
|
||||||
|
|
||||||
|
Формат тела правильного HTTP-запроса, ожидаемого программой, такой:
|
||||||
|
|
||||||
|
{
|
||||||
|
"god_name": "Имя бога"
|
||||||
|
}
|
||||||
|
|
||||||
|
_Дельный совет: делайте запросы не чаще одного раза в 20 секунд на один работающий инстанс программы._
|
||||||
|
|
||||||
|
Теперь поговорим об ответе на правильный запрос. В нём дофига полей, и ещё более дофига полей могут появляться от случая к случаю.
|
||||||
|
|
||||||
|
Вот так выглядит ответ на запрос о боге, у которого _есть всё_ (и то не факт):
|
||||||
|
|
||||||
|
{
|
||||||
|
"pantheons": {
|
||||||
|
"duelers": "21",
|
||||||
|
"duelery": "3",
|
||||||
|
"gladiatorship": "69",
|
||||||
|
"gratitude": "953",
|
||||||
|
"mastery": "48",
|
||||||
|
"might": "30",
|
||||||
|
"pairs": "19",
|
||||||
|
"popularity": "6",
|
||||||
|
"savings": "26",
|
||||||
|
"storytelling": "50",
|
||||||
|
"survival": "151",
|
||||||
|
"taming": "148",
|
||||||
|
"templehood": "1371",
|
||||||
|
"unity": "2",
|
||||||
|
"wood": "12"
|
||||||
|
},
|
||||||
|
"profile": {
|
||||||
|
"age": "8 лет 5 месяцев",
|
||||||
|
"arena_loss": "245",
|
||||||
|
"arena_wins": "1263",
|
||||||
|
"beasts_done": "05.03.2017",
|
||||||
|
"beasts_female": "1000",
|
||||||
|
"beasts_male": "1000",
|
||||||
|
"beasts_pairs": "1000",
|
||||||
|
"boat_done": "24.04.2014",
|
||||||
|
"body": "костюм царицы полей",
|
||||||
|
"body_stat": "+143",
|
||||||
|
"bricks": "1000",
|
||||||
|
"chronicle": "Летопись удалена за ненадобностью",
|
||||||
|
"church_done": "17.04.2011",
|
||||||
|
"coat": "протежезл",
|
||||||
|
"coat_stat": "+146",
|
||||||
|
"deaths": "120",
|
||||||
|
"god_name": "Имя бога",
|
||||||
|
"guild": "дом семи ветров",
|
||||||
|
"guild_status": "домозавр",
|
||||||
|
"hands": "культя личности",
|
||||||
|
"hands_stat": "+145",
|
||||||
|
"head": "шотландские виски",
|
||||||
|
"head_stat": "+145",
|
||||||
|
"hero_name": "Имя геройса",
|
||||||
|
"legs": "доколье",
|
||||||
|
"legs_stat": "+142",
|
||||||
|
"level": "133",
|
||||||
|
"motto": "Расщеплю на молекулы",
|
||||||
|
"pension": "30000",
|
||||||
|
"personality": "нейтральный",
|
||||||
|
"pet_level": "16",
|
||||||
|
"pet_name": "Гипноз",
|
||||||
|
"pet_type": "медуз горгоныч",
|
||||||
|
"shop": "«Гробы Напрокат»",
|
||||||
|
"shop_level": "33",
|
||||||
|
"talisman": "охранная грамота",
|
||||||
|
"talisman_stat": "+144",
|
||||||
|
"weapon": "кофемолот",
|
||||||
|
"weapon_stat": "+144",
|
||||||
|
"woods": "5121"
|
||||||
|
},
|
||||||
|
"skills": {
|
||||||
|
"0": "руки-ножницы",
|
||||||
|
"1": "залом уха",
|
||||||
|
"2": "кувырок через пупок",
|
||||||
|
"3": "любительская хирургия",
|
||||||
|
"4": "слоновий сэйлз",
|
||||||
|
"5": "крылатые качели",
|
||||||
|
"6": "удушливое объятие",
|
||||||
|
"7": "паническая атака",
|
||||||
|
"8": "принуждение к миру",
|
||||||
|
"9": "покупательная способность",
|
||||||
|
"0_level": "129",
|
||||||
|
"1_level": "127",
|
||||||
|
"2_level": "127",
|
||||||
|
"3_level": "123",
|
||||||
|
"4_level": "121",
|
||||||
|
"5_level": "118",
|
||||||
|
"6_level": "115",
|
||||||
|
"7_level": "115",
|
||||||
|
"8_level": "109",
|
||||||
|
"9_level": "108"
|
||||||
|
},
|
||||||
|
"status": "success"
|
||||||
|
}
|
||||||
|
|
||||||
|
Ответ на правильный запрос всегда будет состоять из четырёх секций — ``profile``, ``pantheons``, ``skills`` и ``status``. С последним полем всё понятно — ``success`` он и в Африке ``success``. Разберём первые три.
|
||||||
|
|
||||||
|
В секции ``profile`` нас будут ждать следующие _обязательные_ параметры:
|
||||||
|
|
||||||
|
* ``god_name`` — имя бога в игре.
|
||||||
|
* ``hero_name`` — имя героя.
|
||||||
|
* ``level`` — уровень
|
||||||
|
* ``motto`` — девиз
|
||||||
|
* ``age`` — возраст
|
||||||
|
* ``personality`` — характер героя
|
||||||
|
* ``arena_wins`` — количество побед на арене
|
||||||
|
* ``arena_loss`` — количество поражений на арене
|
||||||
|
* ``bricks`` — количество кирпичей. У храмовладельцев — 1000.
|
||||||
|
* ``church_done`` — дата постройки храма, или же пустая строка.
|
||||||
|
|
||||||
|
Всё остальное может быть, а может и не быть. _Необязательные_ данные таковы:
|
||||||
|
|
||||||
|
* ``deaths`` — количество смертей
|
||||||
|
* ``guild`` — гильдия
|
||||||
|
* ``guild_status`` — статус в гильдии
|
||||||
|
* ``woods`` — количество гоферовых брёвен
|
||||||
|
* ``boat_done`` — дата постройки ковчега, ежели таковой построен, или же пустая строка, если он собирается
|
||||||
|
* ``beasts_male`` — количество самцов
|
||||||
|
* ``beasts_female`` — количество самок
|
||||||
|
* ``beasts_pairs`` — количество пар тварей
|
||||||
|
* ``beasts_done`` — дата получения 1000-й пары тварей.
|
||||||
|
* ``pension`` — количество сбережений (в тысячах). У лавочников равно 30000.
|
||||||
|
* ``shop`` — название лавки
|
||||||
|
* ``shop_level`` — уровень торговца
|
||||||
|
* ``pet_name`` — имя питомца
|
||||||
|
* ``pet_level`` — уровень питомца
|
||||||
|
* ``pet_type`` — порода питомца
|
||||||
|
|
||||||
|
Всякая экипировка тоже заносится в ``profile``, а именно:
|
||||||
|
|
||||||
|
* ``weapon`` — оружие
|
||||||
|
* ``coat`` — щит
|
||||||
|
* ``head`` — голова
|
||||||
|
* ``body`` — тело
|
||||||
|
* ``hands`` — руки
|
||||||
|
* ``legs`` — ноги
|
||||||
|
* ``talisman`` — талисман.
|
||||||
|
|
||||||
|
Для каждого типа экипировки есть ``<имя_экипировки>_stat``, где указывается сила того или иного обмундирования. Внимание: это не integer, там есть знак + или -.
|
||||||
|
|
||||||
|
Самая сложная часть позади. Дальше — блок ``pantheons``. Пантеонов у нас много, иногда они даже размножаются. Здесь всё просто: идём в Годвилль, смотрим, каким словом заканчивается URL страницы с нужным пантеоном — и вуаля. Все имена данных в этом блоке совпадают с внутренними именами пантеонов в игре.
|
||||||
|
|
||||||
|
Ну и, наконец, последний блок ``skills``. Здесь у нас полный разброд и шатание, поэтому параметры называются ``0``, ``0_level``, ``1``, ``1_level`` и так далее. Каждый параметр с именем-цифрой — название умения, а с ``_level`` на конце — его уровень.
|
||||||
|
|
||||||
|
На этом, кажется, всё. Хэппи хакинга, и да не забанят тебя демиурги!
|
Reference in New Issue
Block a user