Archived
1

Documentation (sort of) in README.md

This commit is contained in:
Vladimir Hodakov 2017-10-27 08:37:33 +04:00
parent a9e42d7248
commit 147edbd6c5

164
README.md
View File

@ -1,4 +1,4 @@
# 8th Fetcher — Парсер Восьмого ветра # 8th Wind Fetcher — Парсер Восьмого ветра
## Godville game profiles parser ## Godville game profiles parser
@ -18,4 +18,164 @@ 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`` на конце — его уровень.
На этом, кажется, всё. Хэппи хакинга, и да не забанят тебя демиурги!