18 Кб, 640x640
Двач API — Инструкция к применению 42375 В конец треда | Веб
обновлено 06.08.2022

https://2ch.hk/api.yml (М)

JSON для тредов и списков:
Треды:
http(s)://2ch.hk/доска/res/номертреда.json
Список тредов:
http(s)://2ch.hk/доска/номерстраницы.json (первая страница: index)
Все треды с сортировкой по последнему посту:
http(s)://2ch.hk/доска/catalog.json
Все треды с сортировкой по времени создания треда:
http(s)://2ch.hk/доска/catalog_num.json
Все треды с доски(облегченный вариант, с просмотрами и рейтингом для топа тредов):
http(s)://2ch.hk/доска/threads.json

Мобильное API
Получить настройки всех досок:
Пример: http(s)://2ch.hk/makaba/mobile.fcgi?task=get_boards

Получить все посты из треда с номера поста по доске:
Пример: http(s)://2ch.hk/makaba/mobile.fcgi?task=get_thread&board=abu&thread=39220&num=41955

Получить все посты из треда с номера поста по треду:
Пример: http(s)://2ch.hk/makaba/mobile.fcgi?task=get_thread&board=abu&thread=39220&post=252
Получить один пост:
Пример: http(s)://2ch.hk/makaba/mobile.fcgi?task=get_post&board=доска&post=номер_поста

Капча:
Для обычной рекапчи - /api/captcha/recaptcha/id
Для невидимой - /api/captcha/invisible_recaptcha/id
возвращает id - публичный ключ. А так же коды result - наличие бана, предупреждения, введенного паскода, истекшего пасскода и просто если макаба рип

По кодам result:
0 - ОШИБКА
2 - ты под пассом
3 - пасс истек
1 - требуется проверка капчи
Если в ответе есть warning - значит прилетел пред. Если есть banned - прилетел бан.
В принципе все.

Пути к файлам:
Доски: http(s)://2ch.hk/доска/
Нулевая: http(s)://2ch.hk/доска/index.html
Списки тредов: http(s)://2ch.hk/доска/1-10.html

Треды: http(s)://2ch.hk/доска/res/номер_треда.html
Пост: http(s)://2ch.hk/доска/res/номер_треда.html#номер_поста

Файлы: http(s)://2ch.hk/доска/src/таймштамп.расширение
Превью: http(s)://2ch.hk/доска/thumb/таймштампs.расширение

Флаги: http(s)://2ch.hk/flags/код_страны.png
Иконки: http(s)://2ch.hk/icons/logos/иконка.png

Вопросы задавайте на admiRY^nANUS2Vm*chPUNCTUMhR*Ek

Пост будет дополняться... Если заметите ошибки или хотите реквесты, пишите ИТТ.
## Abu ## 2 49947
(взял отсюда https://github.com/8ofproject/2ch-Browser-iOS/tree/develop)
Отправка сообщения в тред / создание треда

https://2ch.hk/makaba/posting.fcgi (М)

Параметры для передачи:

json = 1
task = post
board - код доски
thread - номер треда - для создания нового треда необходимо проставить 0
email - значение поля e-mail
name - имя
subject - тема сообщения
comment - комментарий, максимальное количество символов - 15000
image - изображение для отправки

Если нет пасскода, то необходимо передавать следующие поля:

captcha_type - recaptcha
captcha-key - ключ для получения ReCaptcha - есть в открытом доступе в форме постинга
g-recaptcha-response - ответ сервера reCaptcha - после решения головоломок сервер выдаёт поле с длинным ключём - это и он есть

Если есть пасскод, необходимо поле:

usercode - подробно о том, что это такое описано в соответствующем разделе.

Параметр usercode и связка параметров для капчи являются взаимоисключающими.

При использовании их одновременно положительный ответ сервера не гарантирован.

Если используется что-то одно, то второе обязательно должно отсутствовать в запросе.

Использование пасскода при работе с API
Работу по обеспечению рабочего механизма отправки сообщений через пасскод можно разделить на следующие этапы:

1) отправка пасскода на сервер двача

POST-запрос по адресу: https://2ch.hk/makaba/makaba.fcgi (М) с параметрами:

task = auth
usercode = passcode - необходимо отправлять именно пасскод, и пусть вас не смущает название параметра

2) получение в ответ usercode-параметр для использования в дальнейших запросах

К сожалению, как такового ответа в нормальном виде сервер не выдаст. Вместо этого он сохранит локально Cookies на устройстве и попытается перенаправить на одну из досок (обычно b).

3) сохранение usercode-параметра как cookie

Нас интересует cookie с параметром name равным usercode_nocaptcha, необходимо самостоятельно достать его значение из кук (создаётся при отправке пасскода на устройстве автоматом) и сохранить локально на устройстве через соответствующий механизм.

Затем использовать этот параметр в форме как значение переменной usercode. а также создавать локальную cookie-переменную с именем usercode_nocaptcha* и значением, соответствующим значению, полученному с сервера.

4) использование usercode-параметра при отправке сообщений
## Abu ## 2 49947
(взял отсюда https://github.com/8ofproject/2ch-Browser-iOS/tree/develop)
Отправка сообщения в тред / создание треда

https://2ch.hk/makaba/posting.fcgi (М)

Параметры для передачи:

json = 1
task = post
board - код доски
thread - номер треда - для создания нового треда необходимо проставить 0
email - значение поля e-mail
name - имя
subject - тема сообщения
comment - комментарий, максимальное количество символов - 15000
image - изображение для отправки

Если нет пасскода, то необходимо передавать следующие поля:

captcha_type - recaptcha
captcha-key - ключ для получения ReCaptcha - есть в открытом доступе в форме постинга
g-recaptcha-response - ответ сервера reCaptcha - после решения головоломок сервер выдаёт поле с длинным ключём - это и он есть

Если есть пасскод, необходимо поле:

usercode - подробно о том, что это такое описано в соответствующем разделе.

Параметр usercode и связка параметров для капчи являются взаимоисключающими.

При использовании их одновременно положительный ответ сервера не гарантирован.

Если используется что-то одно, то второе обязательно должно отсутствовать в запросе.

Использование пасскода при работе с API
Работу по обеспечению рабочего механизма отправки сообщений через пасскод можно разделить на следующие этапы:

1) отправка пасскода на сервер двача

POST-запрос по адресу: https://2ch.hk/makaba/makaba.fcgi (М) с параметрами:

task = auth
usercode = passcode - необходимо отправлять именно пасскод, и пусть вас не смущает название параметра

2) получение в ответ usercode-параметр для использования в дальнейших запросах

К сожалению, как такового ответа в нормальном виде сервер не выдаст. Вместо этого он сохранит локально Cookies на устройстве и попытается перенаправить на одну из досок (обычно b).

3) сохранение usercode-параметра как cookie

Нас интересует cookie с параметром name равным usercode_nocaptcha, необходимо самостоятельно достать его значение из кук (создаётся при отправке пасскода на устройстве автоматом) и сохранить локально на устройстве через соответствующий механизм.

Затем использовать этот параметр в форме как значение переменной usercode. а также создавать локальную cookie-переменную с именем usercode_nocaptcha* и значением, соответствующим значению, полученному с сервера.

4) использование usercode-параметра при отправке сообщений
## Abu ## 3 49948
Все описанные ниже точки входа используют единый формат для результата и единые коды ошибок.
Переменная result отвечает за результат выполнения запроса и может принимать следующие значения:
3 - Капча не требуется. Например, в случае если на доске она отключена.
2 - Капча не требуется, поскольку активен VIP аккаунт.
1 - Запрос удовлетворён успешно.
0 - При выполнении запроса возникла ошибка. Код ошибки находится в переменной error, описание ошибки в переменной description. В данный момент спецификация кодов ошибок находится в разработке и скорее всего будет изменена.

Перед тем, как использовать какую-либо капчу, вы должны получить настройки для доски:
/api/captcha/settings/b
enabled - включена ли капча или нет. Если нет, ничего делать не нужно и любой запрос id вернёт код 3 (или 2, если используется пасскод).
types - массив с идентификаторами капчи, доступными на доске. Каждый тип может иметь уникальные настройки, например, время "протухания" капчи.
Описание точек входа:
1) /api/captcha/2chaptcha:
/captcha/2chaptcha/id?board=[доска]&thread=[тред] - используется для получения id капчи. Переменная thread не обязательна при создании нового треда.
При отправке, например, поста, необходимо установить переменную captcha_type в значение переменной type. id и значение в [type]_id и type_[value] соответственно.
/api/captcha/2chaptcha/service_id - используется для получения id капчи без проверки на наличие пасскода и настроек доски.
/api/captcha/2chaptcha/image/[id] - используется для получения картинки для капчи, используя id из запроса выше.
/api/captcha/2chaptcha/check/[id]?value=[value] - используется для проверки капчи до отправки поста.
2) /api/captcha/animecaptcha:
/api/captcha/animecaptcha/id?board=[доска]&thread=[тред] - используется для получения id капчи. Переменная thread не обязательна при создании нового треда.
Помимо id передаётся массив values с возможными вариантами ответа. В этом случае значение капчи должен принимать id правильного по вашему мнению варианта.
При отправке, например, поста, необходимо установить переменную captcha_type в значение переменной type. id и значение в [type]_id и type_[value] соответственно.
/api/captcha/animecaptcha/service_id - используется для получения id капчи без проверки на наличие пасскода и настроек доски.
/api/captcha/animecaptcha/image/[id] - используется для получения картинки для капчи, используя id из запроса выше.
/api/captcha/animecaptcha/check/[id]?value=[value] - используется для проверки капчи до отправки поста.
3) /api/captcha/recaptchav1: /api/captcha/recaptchav1/id - используется для получения публичного id рекапчи первой версии.
/api/captcha/recaptchav1/mobile - используется в мобильных приложениях для упрощённого вывода капчи.
4) /api/captcha/recaptcha: /api/captcha/recaptcha/id - используется для получения публичного id рекапчи второй версии.
/api/captcha/recaptcha/mobile - используется в мобильных приложениях для упрощённого вывода капчи.
5) /api/captcha/mailru: /api/captcha/mailru/id - используется для получения публичного id капчи от mail.ru.

Устаревший интерфейс /makaba/captcha.fcgi будет ОТКЛЮЧЁН 8 сентября.
Капча от Yandex и проект CleanWeb ЗАКРЫТ. Её реализация невозможна из-за закрытия сервиса. Нельзя. Никак. Потому, что капчу отключили.
## Abu ## 3 49948
Все описанные ниже точки входа используют единый формат для результата и единые коды ошибок.
Переменная result отвечает за результат выполнения запроса и может принимать следующие значения:
3 - Капча не требуется. Например, в случае если на доске она отключена.
2 - Капча не требуется, поскольку активен VIP аккаунт.
1 - Запрос удовлетворён успешно.
0 - При выполнении запроса возникла ошибка. Код ошибки находится в переменной error, описание ошибки в переменной description. В данный момент спецификация кодов ошибок находится в разработке и скорее всего будет изменена.

Перед тем, как использовать какую-либо капчу, вы должны получить настройки для доски:
/api/captcha/settings/b
enabled - включена ли капча или нет. Если нет, ничего делать не нужно и любой запрос id вернёт код 3 (или 2, если используется пасскод).
types - массив с идентификаторами капчи, доступными на доске. Каждый тип может иметь уникальные настройки, например, время "протухания" капчи.
Описание точек входа:
1) /api/captcha/2chaptcha:
/captcha/2chaptcha/id?board=[доска]&thread=[тред] - используется для получения id капчи. Переменная thread не обязательна при создании нового треда.
При отправке, например, поста, необходимо установить переменную captcha_type в значение переменной type. id и значение в [type]_id и type_[value] соответственно.
/api/captcha/2chaptcha/service_id - используется для получения id капчи без проверки на наличие пасскода и настроек доски.
/api/captcha/2chaptcha/image/[id] - используется для получения картинки для капчи, используя id из запроса выше.
/api/captcha/2chaptcha/check/[id]?value=[value] - используется для проверки капчи до отправки поста.
2) /api/captcha/animecaptcha:
/api/captcha/animecaptcha/id?board=[доска]&thread=[тред] - используется для получения id капчи. Переменная thread не обязательна при создании нового треда.
Помимо id передаётся массив values с возможными вариантами ответа. В этом случае значение капчи должен принимать id правильного по вашему мнению варианта.
При отправке, например, поста, необходимо установить переменную captcha_type в значение переменной type. id и значение в [type]_id и type_[value] соответственно.
/api/captcha/animecaptcha/service_id - используется для получения id капчи без проверки на наличие пасскода и настроек доски.
/api/captcha/animecaptcha/image/[id] - используется для получения картинки для капчи, используя id из запроса выше.
/api/captcha/animecaptcha/check/[id]?value=[value] - используется для проверки капчи до отправки поста.
3) /api/captcha/recaptchav1: /api/captcha/recaptchav1/id - используется для получения публичного id рекапчи первой версии.
/api/captcha/recaptchav1/mobile - используется в мобильных приложениях для упрощённого вывода капчи.
4) /api/captcha/recaptcha: /api/captcha/recaptcha/id - используется для получения публичного id рекапчи второй версии.
/api/captcha/recaptcha/mobile - используется в мобильных приложениях для упрощённого вывода капчи.
5) /api/captcha/mailru: /api/captcha/mailru/id - используется для получения публичного id капчи от mail.ru.

Устаревший интерфейс /makaba/captcha.fcgi будет ОТКЛЮЧЁН 8 сентября.
Капча от Yandex и проект CleanWeb ЗАКРЫТ. Её реализация невозможна из-за закрытия сервиса. Нельзя. Никак. Потому, что капчу отключили.
4 49954
тест
5 49955
Кто-нибудь дайте пример запроса, как отправить пост с разгаданной капчей. То есть вот я получил картинку, разгадал, а как правильно составить запрос с вариантом ответ, не могу понять из этого описания.
6 49956
>>42375 (OP)
Абу, забань меня навсегда, пидр!!

Я серьёзно
7 49959
>>42375 (OP)
Абу, сделай json-схему. Нихера не понятно. Почему по запросу треда по номеру посты лежат в массиве threads?
8 49960
>>955
Бамп реквесту!
9 49961
>>955
Бамп реквесту!
10 49962
>>955
Бамп реквесту!
11 49963
>>955
Бамп реквесту!
12 49964
>>955
Бамп реквесту!
13 49966
>>955
Бамп реквесту!

Ну объясните кто-нибудь.
14 49972
>>955
Бамп реквесту!

Пожалуйста.
15 49973
>>959
Сам составь, сука.
16 49974
>>955
Бамп реквесту!
17 49977
>>955

>Бамп реквесту!

Тред закрытОбновить закрытый тред
« /abu/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее