diff --git a/README.md b/README.md index 898bb16..ef19dc7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# 8th Fetcher — Парсер Восьмого ветра +# 8th Wind Fetcher — Парсер Восьмого ветра ## Godville game profiles parser @@ -18,4 +18,164 @@ This software created for demonstation purposes only. Вы можете использовать эту программу для своих личных задач, но делайте это на свой страх и риск. Я не несу ответственности за каждого, кто нарушит правиля Годвилля с помощью этой программы. -Данная программа создана исключительно в ознакомительных целях. \ No newline at end of file +Данная программа создана исключительно в ознакомительных целях. + +## Параметры, возвращаемые парсером + +Для начала, существуют ровно два состояния ответа: на правильный и неправильный запрос. В случае неправильного запроса ответ будет примерно таким: + + { + "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`` на конце — его уровень. + +На этом, кажется, всё. Хэппи хакинга, и да не забанят тебя демиурги! \ No newline at end of file