[ /b/ /u/ /rf/ /dt/ /vg/ /r/ /cr/ /lor/ /mu/ /oe/ /s/ /w/ /hr/ ] [ /a/ /ma/ /sw/ /hau/ /azu/ ] [ /tv/ /cp/ /gf/ /bo/ /di/ /vn/ /ve/ /wh/ /fur/ /to/ /bg/ /wn/ /slow/ /mad/ ] [ /d/ /news/ ] [ Главная | Настройки | Закладки | Плеер ]

Ответ в тред 24370. [Назад]
 [ Скрыть форму ]
Имя
Не поднимать тред 
Тема
Сообщение
Капча Капча
Пароль
Файл
Вернуться к
  • Публикация сообщения означает согласие с условиями предоставления сервиса
  • В сообщениях можно использовать разметку wakabamark
  • На данной доске отображаются исходные имена файлов!
  • Разрешенные типы файлов: vector, code, image, video, music, flash, text, archive, pdf
  • Тред перестает подниматься после 500 сообщений.
  • Треды с числом ответов более 10 не могут быть удалены.
  • Старые треды перемещаются в архив после 40 страницы.

No.24370 Ответ
Файл: string.gif
Gif, 16.64 KB, 598×413 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
string.gif
Описание API теперь можно найти тут: help://api

С вопросами и предложениями можно обращаться в этот тред.

АПИ для постинга будет позже, надеюсь на этой неделе.

Алсо, прошу обратить особое внимание на Last-Modified/E-Tags: использование этих заголовков значительно ускоряет работу с API и экономит траффик клиента и сервера.
Post was modified last time at 2011-10-20 16:45:48
>> No.24399 Ответ
>>24370
Спасибо за новое API.
И сразу вопрос - как можно использовать board_id?
>> No.24401 Ответ
>>24399
А где ты там его нашел?
>> No.24402 Ответ
>>24370
> Алсо, прошу обратить особое внимание на Last-Modified/E-Tags: использование этих заголовков значительно ускоряет работу с API и экономит траффик клиента и сервера.
Да оно еще и будет экономить нагрузку на проц клиента. Ня, каваии.
>> No.24403 Ответ
Файл: p_f[1].jpg
Jpg, 49.71 KB, 560×423 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
p_f[1].jpg
>>24370
А что это такое? Как это может пригодиться? Прошу коротко объяснить.
>> No.24404 Ответ
>>24401
Да он ведь отдается в каждом запросе из справки
Ну хотя примерно ясно что /d/==1, /b/==2, но почему бы не выдавать буквенный код?
>> No.24406 Ответ
>> No.24407 Ответ
>>24406
Спасибо!
>> No.24553 Ответ
Файл: vlcsnap-2011-04-21-18h29m25s97.png
Png, 694.50 KB, 1280×720 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
vlcsnap-2011-04-21-18h29m25s97.png
Товарищи админы, объясните одну непонятку.
Почему в запросе данных сессии (/api/user.json?threads) всегда параметр "unread" равен нулю? Разве он не должен указывать количество непрочитанных сообщений в треде?
Плюс ко всему второй удобный параметр этого запроса - "lastpostid" всегда неопределен (null), что тоже не очень хорошо
>> No.24554 Ответ
>>24553
Потому, что это структура данных новой версии, которая еще не развернута на сервере. Я туда только кусок смержил, чтобы экспорт старой структуры не делать.
Когда эта часть будет live, я напишу отдельно в /news/ (да и её сложно будет не заметить, поскольку избранные/скрытые треды там совсем иначе сделаны).
>> No.24558 Ответ
Файл: shot0045.png
Png, 305.39 KB, 800×450 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
shot0045.png
>>24554
Ага,с этим все ясно, ждем следующего апдейта.
Теперь другой вопрос - почему в этих же данных сессии у избранных тредов ("level": "bookmarked") параметр threadid означает threadid, а у скрытых ("level": "hidden") threadid означает displayid?
Это бага и она будет исправлена или же фича и thread_id надо будет обрабатывать по-разному?
>> No.24560 Ответ
>>24558
Это бага. Скрытые сейчас хранятся в другой структуре данных, и при экспорте просто нормализуются к новому виду. Чтобы thread_id получить, надо запросы лишние делать, поэтому я пока не стал этим заморачиваться, ибо сессии все-равно в течение месяца надеюсь таки развернуть на сервере новые. Можно, в принципе, чтобы не возникало недоразумений, сейчас отдавать еще display_id (=null у букмарков, и айди у хидден тредов).
>> No.24564 Ответ
Файл: shot0055.png
Png, 342.57 KB, 800×450 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
shot0055.png
>>24560
> чтобы не возникало недоразумений, сейчас отдавать еще display_id
Не стоит заморачиваться. Лучше подождем полного апдейта.
И вот еще что. Сильно ли будет отличаться реализация избранного/скрытого после апдейта со стороны апи? А то я сейчас пользуюсь api/thread/:board/:thread/hide.json, sign.json и подобными. Они будут работать после апдейта?
>> No.24565 Ответ
>>24564
С т.з. интерфейса - всё также.
Разве что может изменю это странное sign на что-нибудь более логичное, типа bookmark, но старый вариант тоже будет работать.
>> No.24572 Ответ
Файл: 2009_10_12_16_14_imgur_com_z1b9b.png
Png, 2.86 KB, 314×145 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
2009_10_12_16_14_imgur_com_z1b9b.png
Последние сообщения треда
        * /api/thread/{thread_id:d+}/last{.format}
        * /api/thread/{board}/{display_id:d+}/last{.format}
Няша, сделай обратно возможность xhtml, пожалуйста.
И желательно оставь в том числе и старый формат тоже(Что сейчас и есть), но это не важно.
>> No.24580 Ответ
>>24572
> сделай обратно возможность xhtml
Пока верну, конечно, но очень любопытно - зачем?
>> No.24583 Ответ
Файл: 1235767007998.jpg
Jpg, 61.81 KB, 572×730 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1235767007998.jpg
>>24580
Но у меня же кривые руки, няша. Играясь яваскриптом, я из апишного xhtml'а в джва регекспа сделал полноценный текст для вставки.
Кроме моих кривых плагинов на этом браузере других скриптов не предвидится, обезьянка тут не взлетает. А даже если апи в .xhtml-e более нагружает сервер, то перезагрузки странички полностью нагружают его ещё больше.

tl;dr не умею в json.
>> No.24584 Ответ
>>24583
> А даже если апи в .xhtml-e более нагружает сервер, то перезагрузки странички полностью нагружают его ещё больше.
Ну, как минимум желательно таки разобраться с If-Modified-Since/Last-Modified.

А так дело не в нагрузке, а прежде всего в идеологической неправильности такого решения - xhtml подразумевает ответ в виде валидного документа, а не кусков отрендереных шаблонов. Этому, как минимум, нужен другой идентификатор формата, чтобы не возникало путаницы.
>> No.24629 Ответ
Такое дело. Я помню, администрация обещала предоставить доступ к списку display_id удаленных постов треда. Эта фича уже появилась?
>> No.25336 Ответ
Файл: sora-no-woto4.jpg
Jpg, 97.90 KB, 1280×720 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
sora-no-woto4.jpg
>>24370
Напомню на всякий случай
> АПИ для постинга будет позже, надеюсь на этой неделе.
> Post was modified last time at 2011-10-20 16:45:48
>> No.25445 Ответ
Файл: 1301907990_annasophia-robb_posted_at_hicelebs.net_06.jpg
Jpg, 869.21 KB, 1997×3000 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1301907990_annasophia-robb_posted_at_hicelebs.net_06.jpg
У меня собственно два вопроса.
Во-первых, почему при запросе с If-Modified-Since я получаю в ответ 200 ОК, вместо 304?
Запрос:
GET /api/thread/new/mad/14108.json?last_post=15623 HTTP/1.1
If-Modified-Since: Sun, 27 Nov 2011 19:18:31 GMT
User-Agent: DobroParser
Cookie: hanabira=многацифр
Connection: Keep-Alive
Accept-Encoding: gzip
Accept-Language: en-US,*
Host: dobrochan.ru
Ответ:
HTTP/1.1 200 OK
Server: nginx/0.8.42
Date: Sun, 27 Nov 2011 16:25:04 GMT
Content-Type: application/json
Connection: keep-alive
Keep-Alive: timeout=20
Pragma: no-cache
Cache-Control: no-cache
Last-Modified: Sun, 27 Nov 2011 19:18:30 GMT
Content-Length: 281

Дальше дата.
И второй вопрос, возможно объясняющий первый. Почему так расходятся поля Date и Last-Modified?
В данном случае похоже date в реальном GMT, а Last-Modified указывает местное время.
>> No.25451 Ответ
>>25445
> If-Modified-Since: Sun, 27 Nov 2011 19:18:31
> Last-Modified: Sun, 27 Nov 2011 19:18:30
Дату надо ставить точно такую же, какая отдается в Last-Modified.
> Почему так расходятся поля Date и Last-Modified?
Потому, что Date это время генерации ответа веб-сервера, а не контента.
>> No.25457 Ответ
Файл: kinopoisk.ru-AnnaSophia-Robb-578261--w--800.jpg
Jpg, 60.21 KB, 800×600 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
kinopoisk.ru-AnnaSophia-Robb-578261--w--800.jpg
>>25451
> > If-Modified-Since: Sun, 27 Nov 2011 19:18:31
> > Last-Modified: Sun, 27 Nov 2011 19:18:30
> Дату надо ставить точно такую же, какая отдается в Last-Modified.
Собственно там то же самое. И изначально я так и сделал, но так оно не работало.
> Потому, что Date это время генерации ответа веб-сервера, а не контента.
Ну это понятно. Я спрашиваю потчему оно находится далеко в будущем.
Last-Modified: Sun, 27 Nov 2011 19:18:30 за вычетом 27 November 2011 (Sun) 20:37 местного это будет 2,5 часа разницы. Причем страница "будет" изменена через 2.5 часа после моего >>25445 поста. Это не совсем правильно.
>> No.25458 Ответ
>>25457
> Собственно там то же самое
Хм, действительно. Причем оно везде поломалось, с кешированием в браузерах тоже, хотя в коде ничего не менял. Буду разбираться.
> Я спрашиваю потчему оно находится далеко в будущем.
Это дата генерации ответа нгинксом, т.е. "прямо сейчас по серверу". Оно с ласт-модифид вообще никак не связано.
Сейчас выдает Date Mon, 28 Nov 2011 07:33:43 GMT что с поправкой на часовой пояс дает текущее время на сервере.
>> No.25459 Ответ
Файл: AnnaSophia Robb-DGG-016051.jpg
Jpg, 48.94 KB, 383×644 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
AnnaSophia Robb-DGG-016051.jpg
>>25458
> Хм, действительно.
А!ТО совершенно на пустом месте в ряд ли бы писать стал.
> Сейчас выдает Date Mon, 28 Nov 2011 07:33:43 GMT
Еще раз. Это понятно.
Я спрашиваю про поле Last-Modified.
По факту оно мне выдает GMT+4 вместо GMT.
>> No.25460 Ответ
>>25459
> Я спрашиваю про поле Last-Modified. По факту оно мне выдает GMT+4 вместо GMT.
А, ну да. Оно выдает ровно тоже самое, что находится в поле last_modified треда (а там время по МСК), без поправки на часовой пояс, ибо нет смысла.
>> No.25462 Ответ
Файл: 1287255806_annasophiarobb_posted_at_hicelebs.net_03.jpg
Jpg, 81.72 KB, 450×600 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1287255806_annasophiarobb_posted_at_hicelebs.net_03.jpg
>>25460
> Оно выдает ровно тоже самое, что находится в поле last_modified треда (а там время по МСК), без поправки на часовой пояс, ибо нет смысла.
Особого смысла да, нету. Но было бы несколько удобнее и очевиднее. Поскольку когда видишь GMT думаешь что это GMT, а не GMT+4.

Ладно, ок. Я понял. Ждемс когда починят If-Modified-Since.
>> No.25614 Ответ
>>25462
Вверх.
>> No.25615 Ответ
>>25614
Но зачем?
>> No.25616 Ответ
>>25615
Очевидно же чтобы:
а) Починили If-Modified-Since, ну или назвали сроки.
б) Напомнить про API для постинга.
>> No.25618 Ответ
Реально как-то спалить факт того что требуется ввод волнистой капчи в случае когда в данных сессии торчит токен "nousercaptcha"?
>> No.25658 Ответ
>>25618
Ладно, замнем для ясности. Есть другой более интересный вопрос.
Почему в данных сессии "last_viewed" обновляется только при загрузке xhtml версии треда, но не json? У меня идея фигс - синхронизировать "избранное" на телефоне и на компе. А для этого надо знать либо количество непрочитанных сообщений (не работает в текущей версии доброчана), либо время последнего просмотра.
>> No.25664 Ответ
>>25658
> У меня идея фигс - синхронизировать "избранное" на телефоне и на компе.
Поставить им одну печеньку?
>> No.25667 Ответ
>>25664
Ясен пень одну. Но ведь надо еще как-то количество непрочитанных сообщений считать. А для этого нужно >>25658
Да, телефон работает через json. Потому и хочу исправления этого бага
>> No.25668 Ответ
>>25667
> Да, телефон работает через json
Ведроидоклиент?
>> No.25669 Ответ
>>25668
Он самый
>> No.25671 Ответ
>>25667
> Потому и хочу исправления этого бага
Это не баг, это фича.
Во вторых запрос что полностью отрендеренного, что через json не означает ни разу что ты его прочитал.
Но в полностью отренедеренном виде это гораздо вероятнее.
Предлагаю обновлять дату последнего прочтения только при использовании дополнительного параметра в json.
>> No.25672 Ответ
>>25671
Можно и через параметр. Главное чтобы была такая возможность. А то я ведь так буду XHTML дергать
>> No.25673 Ответ
>>25671
> запрос что полностью отрендеренного, что через json не означает ни разу что ты его прочитал
Параметр называется не last_readed, а last_viewed, что характерно.
И все же лучше обновлять этот параметр при любом запросе. Ибо я не представляю ситуации где это может помешать
>> No.25674 Ответ
>>25673
> Параметр называется не lastreaded, а lastviewed, что характерно.
По мне так что "просмотренный", что "прочитанный" это одно и то же.
> Ибо я не представляю ситуации где это может помешать
В случае листать чан с телефона и листать чан с компа:
Оставляем включенным автоматическое обновление на телефоне, получаем помеченные как прочитанные сообщения на компе, хотя мы их не читали.
Или есть пример лучше. Например нужно сделать какой-нибудь служебный запрос для того чтобы выцепить все картинки с треда и он попадает между тем когда добавлен новый пост и когда мы запрашиваем обновление для чтения.
>> No.25675 Ответ
>>25674
> получаем помеченные как прочитанные сообщения на компе
Автоматическое обновление не загружает посты, а лишь смотрит их дату изменения.
> нужно сделать какой-нибудь служебный запрос
А зачем ему общие печеньки цеплять?
>> No.25676 Ответ
>>25675
> а лишь смотрит их дату изменения.
А если они не в избранном?
> А зачем ему общие печеньки цеплять?
Чтобы сессия была одна и счетчики одни и избранное одно.
>> No.25678 Ответ
>>25676
> А если они не в избранном?
/api/thread/{thread_id:d+}{.format}
> Чтобы сессия была одна и счетчики одни и избранное одно.
Для этого не обязательно цеплять куки к служебным запросам, как ты их назвал
>> No.25679 Ответ
>>25678
> /api/thread/{thread_id:d+}{.format}
Но там нету last_viewed
> Для этого не обязательно цеплять куки к служебным запросам, как ты их назвал
Как будто я каждый раз ручками из цепляю. Но таки да. Можно.
>> No.25680 Ответ
>>25679
Дата/время изменения хранится в last_modified
>> No.25682 Ответ
>>25680
> last_modified
lastviewed и lastmodified немного разные вещи, не?
>> No.25685 Ответ
>>25682
last_viewed < last_modified => есть новые сообщения
last_viewed >= last_modified => нет новых сообщений
Ты групый
>> No.25686 Ответ
>>25685
> Ты групый
Няша, но как посмотреть last_viewed для сообщений, которых нет в избранном? Правильно такого нет.
>> No.25687 Ответ
Файл: y-u-no-guy.jpg
Jpg, 13.29 KB, 250×254 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
y-u-no-guy.jpg
>>25686
Но зачем нам узнавать last_viewed для сообщений, которых нет в избранном?
>> No.25697 Ответ
>>25687
Нуокей нуокей. Считай как считаешь. Пусть будет так. Доброчан же.
>> No.25698 Ответ
>>25697
Ага. Тем более что все равно в ближайшее время никто ничего не исправит.
>> No.25725 Ответ
Файл: 0074f470bee64d528764d8afb7f9cd46.jpg
Jpg, 387.39 KB, 976×1049 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
0074f470bee64d528764d8afb7f9cd46.jpg
Объясните, товарищи извращенцы, вот мне допустим, надо в стиле вакабы чтобы были страницы, такие например dobrochan.ru/b/1.html.
Тут у вас выдается предупреждение, что де пройдите в API (злые вы, даже 4chan поддерживает редиректит), но API, насколько я понял не поддерживает расстраничивание и список тредов в нем я вообще не понял получить как (тред не читал).
По крайней мере, юзерагент он не будет проверять при доступе к xhtml cтраницам?
Может быть всётаки поставите редирект на .html (я не собираюсь вайпать доброчан и вообще добрый)?
>> No.25734 Ответ
Файл: 1289282396921.jpg
Jpg, 300.57 KB, 659×800 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1289282396921.jpg
>>25725

Ладно, я пошутил. Но всё равно так только школьники делают.
>> No.25963 Ответ
Файл: 34618f44219c637ae246b32eaa816449.png
Png, 64.97 KB, 650×606 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
34618f44219c637ae246b32eaa816449.png
Реально достать трипкод через API?
Алсло бампаю >>25658
>> No.25977 Ответ
Еще вопрос, а можно ли получить список ссылок на все изображения треда (они есть в сообщениях), с размерами и выставить ограничение по рейтингу через API же?

Плохая, кстати, у вас разметка, нерегулярная

25725-кун
>> No.25978 Ответ
>>25977
1. Получаешь тред
2. Парсишь
3. ????
4. PROFIT
>> No.26025 Ответ
>>25978

Да, я пробовал так делать, но из-за того, что там какая-то чехарда с тегами у первого изображения треда и остальных, всё изображения выделить декларативным способом (а именно его я применяю при парсинге) не получается, либо мне это пока не удалось. Кроме того, мне нужно отображать изображения в браузере, и даже, если я подменю реферрер (хотя пока не пробовал - выдаются пустые изображения), всё равно вылезут ограничения по рейтингу. Очень недружественно это всё.
>> No.26028 Ответ
Забыл уточнить, что проблемы у меня из-за того, что мне нужны размеры изображений.
>> No.26029 Ответ
>>25977
Не понимаю, чем не устраивает обычный апи тредов. Там все изображения есть.
>> No.26030 Ответ
>>26025
> либо мне это пока не удалось
Вот в этом и вся проблема
>> No.26031 Ответ
>>26030

Но если бы доброчан хоть сколько-нибудь стремился бы к совместимости с вакабой хотя бы по структуре разметки, её бы не было да, и XPath мне не доступен
>> No.26033 Ответ
>>26031
Не надо парсить хтмл-ки доброчана. Мы вообще крайне отрицательно на это смотрим, и не гарантируем их дальнейшее существование.
Есть JSON API, который легко парсить как браузерами, так и любыми сторонними клиентами.
>> No.26304 Ответ
Очень хочется чтобы запросы вида http://dobrochan.ru/b/0.json
тоже поддерживали параметры new_format и message_html.
>> No.26305 Ответ
>>26304
Хм, про АПИ для страниц досок я просто забыл, он старый остался.
>> No.26485 Ответ
а теперь самый хардкорный вопрос: можно ли получить список борд? вот как нить вот так
[...,"b",...]
>> No.26486 Ответ
>>26485
1. На Зачем?
2. Почему "борд", а не "досок"?
3. Парси https://dobrochan.ru/frame.xhtml.
>> No.26493 Ответ
>>26486
1) ну список постов в виде треда есть. список тредов есть в качестве страницы. we need to go deeperhigher!
2) май бед, сорри
3) пасибо. это то, что надо.
>> No.26495 Ответ
>>26485
Есть вот такой апи, http://dobrochan.ru/api/chan/banners.js
>> No.26497 Ответ
>>26495
Но ведь есть доски без баннеров. Проще список выдрать отсюда: http://dobrochan.ru/api/chan/stats/diff.json
>> No.26499 Ответ
>>26497
Спасибо, это ваще пушка.%%регексп вообще детсадовский%% Пользуясь случаем, передаю привет маме спрашиваю: на основе чего вычисляются количества непрочитанных постов? Кукисы?
>> No.26501 Ответ
>>26499
> регексп
> JSON
Нахуйтакжитьпосоны.жпг
> на основе чего вычисляются количества непрочитанных постов? Кукисы?
Тут всё привязано к кукисам.
>> No.26502 Ответ
>>26501
Да мне как-то большой разницы нет - написать пятнадцать строк кода меньше или юзать либу.
Временами свой велосипед интереснее.
>> No.26507 Ответ
>>26501
> > регексп
> > JSON
> Нахуйтакжитьпосоны.жпг
Думаешь подключаемая либа будет много быстродейственнее?
>> No.26509 Ответ
>>26507
Думаю, что там, где идет речь о HTTP, "быстродействие" нахрен не нужно, в отличие от скорости разработки и надежности кода. JSON парсеры гарантируют преобразование в нативную структуру данных, которую легко обрабатывать, а ваши регэкспы ломаются от любого чиха.
К тому же, да, если либа написана на си, она будет быстрее, чем регэкспа.
>> No.26513 Ответ
>>26509
> К тому же, да, если либа написана на си, она будет быстрее, чем регэкспа.
Но если я пишу на си? Oh, whatever...
> в отличие от скорости разработки и надежности кода.
Мне быстрее нарисовать регекспу, чем изучать еще одну либу. О надежности чуть ниже.
> JSON парсеры гарантируют преобразование в нативную структуру данных, которую легко обрабатывать, а ваши регэкспы ломаются от любого чиха.
В лучшем виде это будет либо ассоциативный массив, либо сразу конвертация в переменную с хранением названия поля в другой переменной. И в любом случае оно будет ломаться от смены названий полей, и практически в любом случае при смене формата поля данных.
Так что оно будет одинакого.
Осло, если регэкспа ломается от любого чиха то либо она криво написана (см. неосиляторство), либо тут сторонняя либа не поможет.
>> No.26514 Ответ
Файл: 13081624153455.png
Png, 16.60 KB, 497×386 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
13081624153455.png
>>26513
Пикрелейтед.

>>26499-кун
>> No.26609 Ответ
>>26305
Но, я надеюсь, это потом подправят?
>> No.26703 Ответ
>>25459
В общем, я не понял почему, но сейчас last-modified работает. Там какие-то экзотические проблемы с переводом из GMT в UTC.

Что-то мне кажется, что проще вообще использовать E-Tagи везде, с теми же датами, но без лишнего парсинга в таймстампы и обратно.
>> No.28519 Ответ
Файл: shot0012.png
Png, 363.81 KB, 800×450 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
shot0012.png
Бампану тредец и напомню о текущих проблемах:
  • невозможно узнать какие сообщения удалены, а какие появились после премодерации через запрос /api/thread/.../new;
  • интерфейс запроса страниц доски /{board}/{page}.json не поддерживает параметр message_html и вывод в новом формате (объект result или error);
  • /api/user.json до сих пор не показывает количество непрочитанного;
  • отсутствует api для постинга.
Плюс пожелание - хотелось бы разделить запрос /api/user.json?threads на два: /api/user.json?hidden и /api/user.json?bookmarked. А то при большом количестве скрытых тредов много траффика бесполезно расходуется.
>> No.28653 Ответ
Как часто можно дёргать API? Очень ли обидятся админы, если я буду делать по 100 запросов подряд без интервала между ними каждые 3 часа?
>> No.28654 Ответ
>>28653
> если я буду делать по 100 запросов подряд без интервала между ними каждые 3 часа?
За это просто забаним подсеть на уровне веб-сервера. Да и там троттлинг настроен на 5 запросов, после этого айпи блокируется автоматически.
>> No.28658 Ответ
>>28654
У меня 20 IP из разных подсетей, заебётесь. Лучше скажите лимиты для запросов. Максимальное кол-во запросов в час, минимальный интервал внутри одной пачки и т.д.
>> No.28661 Ответ
>>28658
Если вам нужно делать "100 запросов каждые 3 часа", то вы изначально делаете что-то не так, и тут надо не интервалы менять, а разбираться, что за данные вам нужны и нафига такое количество запросов с такой периодичностью.
>> No.28664 Ответ
>>28661
Мне нужно треды получать с ~10 досок. Будем считать, что надо забрать первые 10 страниц (при условии, что они изменятся) с каждой доски. Даже если изменятся только 3 страницы, то это уже 30 запросов
>> No.28665 Ответ
>>28664
За 3 часа 10 страниц не меняются => вы делаете совершенно не нужные и бессмысленные запросы.
>> No.28666 Ответ
>>28665
А теперь прочитайте третье предложение, ага
>> No.28671 Ответ
>>28654
> троттлинг настроен на 5 запросов
Это просто пушка. У вас API для того, чтобы им пользоваться или чтобы на него смотреть?
>> No.28672 Ответ
>>28671
API не предназначен для копирования всего чана целиком. Для слежения за избранными тредами этого достаточно.
>> No.28674 Ответ
Допустим, я пишу свой куклоскрипт, который ежеминутно дёргает открытый во вкладке тред через Ясона. Открываю 10 тредов = 10 запросов/минуту = бан?
>> No.28675 Ответ
>>28672
Я бы не выкобенивался, если бы на Доброчане был rss. Я хочу подписаться на новые треды в нескольких разделах (не в /b/, в /b/ rss не нужен) и не обновлять каждый день страницы, а один раз открыть свой Google Reader и пролистать новые треды

If-None-Match-запросы, которые получают 304й ответ считаются дёрганием API или нет?
>> No.28676 Ответ
>>28675
> новые треды в нескольких разделах
У нас за сутки во всех разделах суммарно создается не более 30-40 тредов. Их все можно получить одним запросом разом, а не сотней отдельных.
>> No.28677 Ответ
>>28676
И что же это за магический запрос, отсутствующий в манах?
>> No.28685 Ответ
>>28519
> Плюс пожелание - хотелось бы разделить запрос /api/user.json?threads на два: /api/user.json?hidden и /api/user.json?bookmarked. А то при большом количестве скрытых тредов много траффика бесполезно расходуется.
Добавил параметр thread-level с перечислением уровней, которые нужно отображать через запятую, например user.json?threads&thread-level=hidden, user.json?threads&thread-level=bookmarked, user.json?threads&thread-level=bookmarked,replied,op, по умолчанию thread-level равен bookmarked,replied,op,hidden.

>>28677
/api/threads.json?since=2012-02-22 16:46:22 как-то так, например.
>> No.28687 Ответ
>>28685
replied и op не работают, но за остальное - спасибо.
> /api/threads.json
Интересно, сколько еще недокументированных возможностей есть у движка?
>> No.28688 Ответ
>>28687
Ну, я и не писал, что они работают сейчас.
>> No.28708 Ответ
>>28675
> если бы на Доброчане был rss
В /lor/ есть скрипт dobrochan-to-rss.
>>28688
> Ну, я
А можно попросить проверить полноту задокументирования текущего функционала?
>> No.28719 Ответ
>>28708
Проще писать сюда, какие данные нужны. Ибо даже если АПИ нет, для выдачи существующих данных новый прикрутить - 3 минуты.
>> No.28725 Ответ
>>28719
Хочу апи для вывода списка сообщений, которые удалены или появились после премодерации без загрузки полного списка сообщений.
И еще интерфейс запроса страниц доски /{board}/{page}.json с выводом текста сообщений в html формате.
Давно уже хочу.
>> No.28726 Ответ
>>28725
С удаленными постами после ввода уведомлений. С премодерацией - пока я склоняюсь к варианту автоматически пихать раскрытые посты в конец треда, с новым дисплейайди и новой датой, так всем удобнее будет. Но это тоже после уведомлений.
Про доски - видел выше, у меня в туду записано, но там есть пока нюансы. Проще сделать отдельно /api/board/..., как с тредами.
>> No.30715 Ответ
Файл: 05-felicia-01.jpg
Jpg, 55.38 KB, 640×360 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
05-felicia-01.jpg
Тактический бамп.
Как дела, админы?
>> No.30883 Ответ
Файл: wpid-Himatsubushi_Sora_no_Woto_-_01_-_H264_-_720p_-_E83AD672_7-500x281.jpg
Jpg, 26.35 KB, 500×281 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
wpid-Himatsubushi_Sora_no_Woto_-_01_-_H264_-_720p_-_E83AD672_7-500x281.jpg
Куда вообще писать о багах в API? Сюда или в багрепорты?
Существует проблема с закладками.
  • Создаем тред,
  • Добавляем его в закладки,
  • Удаляем тред.
Заходим в "Закладки" на сайте - треда нет.
Открываем user.json?threads - тред присутствует. Удалить его от туда никак не получается.
Исправьте, а?
>> No.30884 Ответ
>>30883
Лучше сюда.
> Удалить его от туда никак не получается.
Починю, но не раньше 1го числа.
>> No.31026 Ответ
Файл: Screenshot-asd.png
Png, 64.86 KB, 517×345 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Screenshot-asd.png
Собственно, скоро поддержка API будет добавлена в куклоскрипт: https://github.com/SthephanShinkufag/Dollchan-Extension-Tools/pull/130
Сразу возникает несколько вопросов/предложений:
1) Когда будет починен If-Modified-Since?
If-Modified-Since: Mon, 30 Apr 2012 21:13:29 GMT Last-Modified: Mon, 30 Apr 2012 21:13:29 GMT Status Code: HTTP/1.1 200 OK 2) Можно ли в JSON'е отдавать время в том же формате, что и на борде? В куклоскрипте есть функция замены времени на местное и для подгруженных постов она не будет работать. Пик релейтед.
>> No.31027 Ответ
>>31026
> Когда будет починен If-Modified-Since?
Когда последний раз проверял, всё работало. Прозреваю, опять из-за богомерзких таймзон преобразование времени сбилось.
На этой неделе заменю тогда везде на E-Tag.
> Можно ли в JSON'е отдавать время в том же формате, что и на борде?
JSON предполагает машиночитаемый формат, поэтому используется ISO. Преобразование из ISO в любой другой формат по идее поддерживается любым языком, скорее всего и жабаскриптом.
В принципе, можно, конечно, добавить отдельный ключ, но проще конвертировать на клиентской стороне.
>> No.31030 Ответ
>>31027
> JSON предполагает машиночитаемый...
Ладно. Буду преобразовывать регексом.

Ах да, есть ли АПИ для получения удалённых сообщений из треда?

Алсо, что отдаёт JSON при получении новых постов, если тред был удалён?
>> No.31031 Ответ
>>31030
> Ах да, есть ли АПИ для получения удалённых сообщений из треда?
Сами удаленные сообщения (содержание), естественно, получить без модераторских привилегий нельзя.
Список будет когда-нибудь потом.
> Алсо, что отдаёт JSON при получении новых постов, если тред был удалён?
Если тред удален, все апи для него будут возвращать ошибку "тред не существует", ЕМНИП. Или ошибку "тред удален", не помню точно, работает ли последняя.
>> No.31032 Ответ
>>31031
> Список будет когда-нибудь потом.
Ладно, периодически буду просматривать эту ветку.
> Если тред удален, все апи для него будут возвращать ошибку "тред не существует"
Т.е. можно проверять так: if(json['error'] && json['message'].toLowerCase() === 'тред не существует') { /* тред удалён */ }?
>> No.31034 Ответ
>>31032
Не, ошибка на английском, просто лень смотреть код.
Создал@удалил тред, вот пример: http://dobrochan.ru/api/thread/156292/all.json
>> No.31035 Ответ
>>31034
Хм, надо же, даже сам тред возвращает.
>> No.31036 Ответ
>>31035
А, ну да, баг был в длинной форме, т.е. http://dobrochan.ru/api/thread/d/31033/all.json - ошибка.
>> No.31037 Ответ
>>31034
Ага, спасибо. Сделал так: if((json['result'] || {})['__class__'] === 'DeletedThread') { /* тред удалён */ }.
>> No.31038 Ответ
>>31036
http://dobrochan.ru/help/api
> Ответ в json/xml содержит либо объект result либо объект error.
Объекта error в http://dobrochan.ru/api/thread/d/31033/all.json я не вижу. Баг? Или ошибка в хелпе?
>> No.31039 Ответ
А тут http://dobrochan.ru/api/thread/d/31033/new.json?message_html&new_forma[...]31033 объект error есть. Странно это.
>> No.31040 Ответ
>>31038
Отсутствие нужных флагов.
http://dobrochan.ru/api/thread/d/31033/all.json?new_format
>> No.31041 Ответ
>>31040
А, ну всё тогда. Спасибо.
>> No.31062 Ответ
Файл: filicia_heideman_by_darkhorsedommi-d3h8pur.jpg
Jpg, 134.12 KB, 900×1289 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
filicia_heideman_by_darkhorsedommi-d3h8pur.jpg
>>30884
Мир, труд, май вам, админы!
И не забывайте про труд. Бага все еще висит.
>> No.31199 Ответ
>>31026
Last-Modified должен корректно работать. До следующего перехода на зимнее время.
Но лучше сразу везде в коде предусмотреть E-Tags, ибо Last-Modified чуть позже из всех запросов уберу.
>> No.31216 Ответ
>>31199
Ага, действительно работает! Я думаю, сегодня это многие заметили.
>> No.31550 Ответ
Файл: -HorribleSubs-_Sora_no_woto_-_03_-720p-.mkv_snapsh.jpg
Jpg, 87.24 KB, 1280×720 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
-HorribleSubs-_Sora_no_woto_-_03_-720p-.mkv_snapsh.jpg
А почему HEAD запросы к sign.json и unsign.json теперь выдают 405?
Какие еще неожиданные радости мне стоит ожидать?
>> No.31564 Ответ
>>31550
Потому, что они никогда HEAD и не поддерживали и по сути выполняли GET.
> Какие еще неожиданные радости мне стоит ожидать?
Замену Last-Modified на ETag во всех API.
Надо документацию обновить, лол.
>> No.31582 Ответ
>>31564
Раз уж вы опять взялись за пилинг сайта, добавьте вывод досок в message_html формате, плиз.
>> No.31671 Ответ
>>31582
> вывод досок
Что это?
/d/index.js и т.д.?
>> No.31674 Ответ
>>31671
Да, именно этот запрос. И его варианты со страницами вроде /d/4.js и т.д.
>> No.31756 Ответ
Очень бы хотелось:
  • получать выдачу api в xml;
  • иметь возможность получить список доск с параметрами типа{ Tag='b',Name='Братство',Title='Доска обо всем'} способом, отличным от выдирания списка досок из js, затем запроса xhtml на каждую доску и выдирания названия и подзаголовка.
Было бы шикарно, если бы коллекции в xml-выдаче оборачивались в контейнер, тоесть вместо
<posts>
   <контентпоста1>
</posts>
<posts>
   <контентпоста2>
</posts>
Было
<posts>
   <post>
   <контентпоста1>
   </post>
   <post>
   <контентпоста2>
   </post>
<posts>

ЗЫ Если сильно дофига прошу, так и скажите - буду пилить грабли.
>> No.32383 Ответ
Как я сейчас наблюдаю, в заголовке ETag содержится только дата/время последнего изменения информации. Тогда в чем его кардинальное отличие от применявшегося ранее Last-Modified?
>> No.32483 Ответ
Господа разработчики, а кто для чего это АПИ использует? Может, кто-то уже запилил нормальную мобильную версию доброчана?

мимолюбопытствовал
>> No.32484 Ответ
>>32483
Да, есть уже полноценный отличный клиент для Андройда.
>> No.32485 Ответ
>>32484
А веб-версии нет? А то андройд-то далеко не у всех.
>> No.32486 Ответ
>>32483
Еще есть скриптик dobrochan2rss или как-то так. Суть понятна из названия.
>> No.32803 Ответ
>>32383
Отличия в семантике. ETag - просто строка, уникальная для какой-то конкретной версии страницы и не имеющая смысла. А Last-Modified это дата, которую фреймворк пытается интерпретировать, в том числе с пересчетом UTC/GMT зон (что периодически дает разницу в час между GMT и UTC).
Post was modified last time at 2012-07-13 05:39:05
>> No.33776 Ответ
Добавьте, пожалуйста, в ответы апи заголовок Content-Length!
>> No.34135 Ответ
Почему сервер может выдавать 503 в ответ на запросы к json api? Началось примерно сегодня утром.
Хотя старый доброридер работает нормально, его что - в исключения добавили?
>> No.34136 Ответ
>>34135
полагаю, это что-то вроде защиты.
>> No.34137 Ответ
>>34135
Из-за отсутствия кукисов с валидной сессией (более одного видимого поста). Временно до того, как исправлю баг, роняющий сервер.
>> No.34186 Ответ
http://www.4chan.org/news
> release of a read-only JSON API
Видимо, кто-то из разработчиков случайно попал на Доброчан, и увидел заветную аббревиатуру "API". Или увидел Доброридер в гугломаркете.
>> No.34207 Ответ
>>34186
И вот появилась первая борда, где через апи можно получить трипкод!
Но на основе их интерфейса нельзя сделать полноценный клиент. Текущая реализация больше подходит для юзерскриптов. Запросов к доскам нет, отдельные посты тоже получить нельзя, только новые сообщения - тоже. Зато то что есть очень понятно и хорошо документировано.
>> No.34788 Ответ
Файл: 81381.jpg
Jpg, 28.81 KB, 225×350 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
81381.jpg
Я уже почти год прошу добавить в интерфейс запроса страниц доски /{board}/{page}.json вывод текста сообщений в html формате (параметр message_html). >>26304, >>28519, >>28725, >>31582
Может сжалитесь наконец и сделаете эту фичу?
>> No.34841 Ответ
Только начал разбираться в пхп, не забрасывайте помидорами.
Делаю запрос с помощью filegetcontents('http://dobrochan.ru/api/thread/info/b/1.json'), получаю ответ - Search bots disabled for a while. Запрос из браузера проходит нормально.
Что я делаю неправильно? Если RTFM - то ткните пальцем, пожалуйста.
>> No.34846 Ответ
>> No.34847 Ответ
>>34846
Копал в сторону .htaccess , не помогло. Это у меня руки кривые, и от смены юзерагента все заработает?
Спасибо.
>> No.34852 Ответ
>>34846
Все, разобрался, спасибо.
>> No.35695 Ответ
Ой, доброадмины, ответьте на вопрос, чому нельзя забирать json с помощью wget? На самом деле то можно, но пришлось анально огораживаться
Написано же, что можно делать черпалку через api.

У меня черпалка на sh (wget + php), которая запихивает в мой любимый awesome данные.
>> No.40849 Ответ
Файл: slowbros.png
Png, 21.72 KB, 348×353 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
slowbros.png
А API для постинга уже запилили?
>> No.40862 Ответ
Файл: slowbros.png
Png, 21.72 KB, 348×353 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
slowbros.png
А куда делся пост об API для постинга?
Оно таки появилось?
>> No.40863 Ответ
>>40849
Нет, но для отдельных приложений может быть сделано исключение.
>> No.41305 Ответ
Приветствую Вас, доброадмины!
ПОдскажите, как ВЫ реализовали в wakab'e:
1) Одновременное прикрепление в сообщение нескольких картинок?
2) Кнопочку "развернуть тред"?
Спасибо!
>> No.41306 Ответ
>>41305
Это не вакаба, это ханабира. Ничего общего, кроме дизайна, между ними нет, ханабира написана на питоне на основе фреймворка Pylons, вакаба написана на перле.
>> No.41307 Ответ
Файл: 1366510461999.jpg
Jpg, 20.71 KB, 370×297 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1366510461999.jpg
>>41306
Чувствую себя бакой-слоупоком -_-

А вот снизу приписка wakaba+futaba - кое-какие возможности wakab'Ы используются?
>> No.41343 Ответ
>>41307
> кое-какие возможности wakab'Ы используются?
Используется идея и дизайн, лол.
>> No.41450 Ответ
А почему, собственно, так долго загружается JSON? Даже на толстых каналах 32 КБ грузятся от 3 до 6 секунд.
>> No.41900 Ответ
Файл: 1.py
Python, 2.16 KB, 80 строк - Нажмите на картинку, чтобы скачать файл
view edit
1.py
>>24370
И снова здравствуйте, доброчаньки.
Я принёс вам забавный скриктик, который проверяет активность тредов, выводит последний ответ, а так же интегрирован в awesome. Если понравится, могу пилить дальше всякие плюшки.

Сразу прошу прощения у питонщиков ибо это не мой профильный язык. Собрано за полдня на коленке
>> No.41954 Ответ
>>41900
Я, если честно, не понял, что он делает. Можешь описать ещё раз поподробнее? И что такое awesome?
>> No.41964 Ответ
>>41954
awesome wm - тайлинговый менеджер окон для linux. Подробнее можешь почитать в интернете.

А сам скрипт раз в 30 секунд проверяет состояние переданных ему в переменной urls тредов на наличие новых постов и если таковые есть, оповещает об этом юзверя. В целом типа вишмастера, только не вишмастер. Насчёт работоспособности на Шиндоуз я не уверен, ибо у меня её нет под рукой
>> No.41982 Ответ
>>41964
> типа вишмастера
Удаляет разделы диска что ли?
>> No.41985 Ответ
>>41982
когда ты научишься читать до конца няша?
> типа вишмастера, только не вишмастер
>> No.42189 Ответ
Нужен API для получения списка удалённых из треда постов. Просто массива с номерами постов будет вполне достаточно. Давно же обещали, а так и не сделали.
Что-то вроде такого:
/api/thread/109992/deleted.json
>> No.42587 Ответ
Как-нибудь можно получить инфу о новых постах на досках, кроме как расковырять http://dobrochan.ru/frame.xhtml ?
>> No.42588 Ответ
Можно ли подгружать посты, которые были сняты с премодерации?
>> No.42629 Ответ
>>42588
Так да или нет?
>> No.42674 Ответ
>>25963
>>34207
Тоже поддержу вопрос о трипкоде. Можно его всё же добавить в json?
>> No.43340 Ответ
>>42587
Осилить жысон, как это сделал я в скриптике.
Правда надо его немного перепилить для этого, но я думаю в скором времени на сишке отрисовать прогу для красноглазых коим и являюсь
>> No.43342 Ответ
>>43340
Ты невероятно оперативен анон, не говоря уже о том, что не дал собственно ссылку на джсон, по которой скрипт ханабиры и обновляет фрейм.
> прогу для красноглазых
А мог писать на кроссплатформенном фреймворке, как и полагается всякому порядочному швабодколюбу.
>> No.43357 Ответ
>>43342
/api/chan/stats/diff.json

Он же из кода выковыривается за пару секунд.
>> No.43361 Ответ
>>43342
Шиндоуз проблемы. Не грусти, будет тебе поддержка твоей плиточной недосистемы.

#ifdef WIN_32
...
#endif

А фреймворки - куча шлака и лишнего мусора, который вряд ли когда будет использоваться, а только висит мёртвым грузом в системе и памяти. Ява, так та вообще не нужна, вместе с недопилом под названием ведроид

Но это всё сраная лирика, так что не обращай особо внимание
>> No.43366 Ответ
>>43361
> плиточной
Ват?
> недосистемы
У нас хотя бы игры есть.
> #ifdef WIN_32
И будешь всё ручками делать? А если только консоль, то в идеале всё и так должно работать без хаков.

Осло, при чём тут жава? Осло, скажи, какой у тебя телефон, я посмеюсь.
>> No.43367 Ответ
>>43366
> > плиточной
> Ват?
Восьмёрка, да и сперму сюда тоже можно причислить.
> У нас хотя бы игры есть.
Да что ты говоришь? Играю в X3 и L4D, доволен.
> И будешь всё ручками делать?
Осилил бы ты уже для себя правильные редакторы и паттерны программирования, а потом бы мы с тобой поговорили.
> какой у тебя телефон
У меня две ноклы, самый дешёвые, хотя я могу позволить себе и ваши любимые лопаты. Телефон должен звонить, а не свистопердеть, для этого вполне хватает недобука, который на ура трудится уже 5 лет.

Посмеялся?
>> No.43370 Ответ
>>43367
> Восьмёрка, да и сперму сюда тоже можно причислить.
Ещё с хп сижу на классической схеме аля 98.
> X3
Окей.
> L4D
Шутан не игра.
> правильные редакторы и паттерны программирования
При чём тут редакторы и тем более паттерны? Перечитай пост.
> Посмеялся?
А то. Так и представляю, как ты с нетбуком будешь корячиться, если в интернет понадобиться выйти на улице. А ещё на андроиды няшные казуальные игры есть, на пека оно всё шароварное.
>> No.43456 Ответ
>>43370
> При чём тут редакторы и тем более паттерны? Перечитай пост.
Ты не просто жирный, а ещё и ебанутый. В нормальных редакторах настраивается автодополнение и не надо каждый раз бить ручками одно и то же.
> с нетбуком будешь корячиться
Продолжаешь свою ебанутость. Мне не надобится выйти в интернет на улице - раз, если вдруг совсем пиздец распидарасило всё в кровь кишки - есть пара людей, кому можно позвонить и они всё что надо интернете найдут - два. Я не на столько привязан к сети, как ты, видимо. Хотя вроде админ 5 серверов и 2 высоконагруженных проектов. Может я просто чего-то не понимаю в этой жизни.

А вообще сходи к венерологу и похудей, потом поговорим
>> No.43457 Ответ
>>43456
> Я не на столько привязан к сети, как ты, видимо. Хотя вроде админ 5 серверов и 2 высоконагруженных проектов.
А бандерлог от этих интернет-баталий у тебя не хуже, чем у школьника Васи из 6 "В".
мимозаметил
>> No.45037 Ответ
Пытался запилить бэкап закладок, возникла проблема с их массовым восстановлением - при посылке нескольких GET запросов подряд, проходят якобы все, но на деле Доброчан добавляет только одну закладку. ВТФ и что как это чинить?
>> No.45040 Ответ
>>45037
Отсылай по очереди
>> No.45264 Ответ
Файл: fail.png
Png, 37.43 KB, 938×383 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
fail.png
Начал переносить свой мэдскиллз с локалхоста, в результате вылез такой момент: при попытке забрать json через curl клаудфларе срывает башню и, собственно, пикрелейтед.

CURLOPT_COOKIESESSION, CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR заданы, если что.
На всякий случай, функция:
`
function fetchjson($jsonurl) {
$ch = curl_init($json_url);
$options = array(
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_USERAGENT      => 'Mozilla/5.0 (X11; Linux i686; rv:22.0) Gecko/20100101 Firefox/22.0',
  CURLOPT_HTTPHEADER     => array('Content-type: application/json'),
  CURLOPT_COOKIESESSION  => true,
  CURLOPT_COOKIEFILE     => COOKIE_FILE,
  CURLOPT_COOKIEJAR      => COOKIE_FILE
);
curl_setopt_array($ch, $options);
return curl_exec($ch);
}
`
>> No.45269 Ответ
>>45264
> function fetchjson($jsonurl) {
Я знаю магию.
function fetch_json($json_url) {
И покажу, как её творить:
function fetch*_*json($json*_*url) {
>> No.45297 Ответ
>>45269
А ты смешной.
>> No.45299 Ответ
>>45297
Спасибо. Мне действительно приятно, что я заставил тебя улыбнуться.
>> No.45320 Ответ
>>45269
Разметка-кун, научи трифорсить.
>> No.45326 Ответ
>>45320
 A
A A
Учись.
>> No.45327 Ответ
Наши, допилите апи, чтоб api/thread/{thread_id}/sign.json тоже работало.
>> No.45454 Ответ
Я, наверное, туплю, но
wget http://dobrochan.com/api/thread/264001/all.json
> Автоматические запросы к Доброчану разрешены только через специальный API.
Э-э… Но я ведь пользуюсь "специальным API, нет?".
>> No.45484 Ответ
Файл: talking_captcha.png
Png, 0.91 KB, 300×20 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
talking_captcha.png
>>45454
Меняй User-agent же. Доброчан не пускает самых очевидных ботов дальше такой заглушки.
>> No.45487 Ответ
>>45484
Об этом я догадался, но непонятен вообще смысл сообщения, потому как с юзерагентом он пускает вообще куда угодно (специально сейчас проверил на этой странице).
>> No.47361 Ответ
Админы, слушайте, доделайте уже закладки, иначе люди так и будут грузить добрачик миллионом запросов.
Например единственный метод, который я пока знаю для проверки на появление новых сообщений - использовать /last.json?count=1 для каждого отдельного треда.
Если у меня их 50 штук? И если меня 50 штук?
В общем задумайтесь, няши, дело вроде не хитрое, а разгрузит сервер неплохо.
>> No.47368 Ответ
>>47361
> Например единственный метод, который я пока знаю для проверки на появление новых сообщений - использовать /last.json?count=1 для каждого отдельного треда.
Нет, правильный метод это использовать http://dobrochan.com/api/thread/109992.json и проверять last_modified
> Если у меня их 50 штук? И если меня 50 штук?
Прям щас лучше уж 50 thread запросов, чем 1 запрос к bookmarks.

Но да, так как букмарки задолбали в их текущей реализации, постараюсь сегодня переписать и сделать вывод в жсон заодно.
>> No.47373 Ответ
>>47368
> проверять last_modified
А разница, что там один запрос, что тут один запрос.
> Прям щас лучше уж 50 thread запросов, чем 1 запрос к bookmarks.
Неужто там всё так сложно? Ну давай я тебе помогу.
>> No.47374 Ответ
>>47368
> > Если у меня их 50 штук? И если меня 50 штук?
> Прям щас лучше уж 50 thread запросов, чем 1 запрос к bookmarks.
Кстати не 50, а 2500. А вот если букмарк пользовать, то всего 50.
>> No.47375 Ответ
>>47373
> А разница, что там один запрос, что тут один запрос.
Разница в стоимости выполнения. Запросы к таблице постов намного дороже, чем к таблице тредов.
>> No.47376 Ответ
>>47375
Я так понимаю структура примерно следующая: tblthreads%boardname% tblposts%boardname%
Ну тогда да, тредов ощутимо меньше, чем постов.
>> No.47377 Ответ
>>47376
скушал разметку
tbl_threads_%board_name%
tbl_posts_%board_name%
>> No.47395 Ответ
>>47375
> Запросы к таблице постов намного дороже, чем к таблице тредов.
В самом деле? Так может пофиксить всего один символ >>43298 ?
>> No.47473 Ответ
>>47368
Ну что, мой друг, ты как всегда возложил на идею API?
>> No.47526 Ответ
А таки у куда писать, чтобы иметь постинг-рабочий UserAgent и какие справки в поликлинике для этого брать надо?
>> No.47537 Ответ
>>47526
Для начала смириться с тем, что всем наплевать.
Дальше как пойдёт. Программер объявился, бзднул в лужу и пропал узнаю себя, да
>> No.47538 Ответ
>>47526
У меня летом работало с любым, неужто запретили уже?
>> No.47541 Ответ
>>47537
> бзднул в лужу
   фрибзднул в лужу
>> No.47567 Ответ
>>47541
Я не уверен, что Зой использует именно эту версия юнипсов
>> No.47902 Ответ
А есть ли какой-то способ узнать без дополнительных запросов, указывает ли ссылка вроде >>1234123412 на сообщение?
Как, например, куклоскрипт это определяет? Ссылки на сообщения в треде - это понятно. А остальные?
>> No.47903 Ответ
>>47902
> Как, например, куклоскрипт это определяет?
Открой да посмотри.
>> No.47905 Ответ
>>47903
А, да, нужно использовать message_html, что-то я ступил.
>> No.50948 Ответ
Аноны, объясните балбесу, дергаю /api/chan/stats/diff.json, все хорошо, но вот как сказать API'шке, что я прочитал, скажем, /b/ и надо сбросить счетчик?

капча шитьминетровнымсебясиреневогополучилась явно на что-то намекает
>> No.50950 Ответ
>>50948
Дёрнуть индекс соответствующей борды, как мне кажется.
>> No.50952 Ответ
>>50950
Я уверен что есть другой путь, дорогой вызов иначе получается. Пойду в тред к ведроидам, может там подскажут.
>> No.54051 Ответ
Файл: 1225568730053.jpg
Jpg, 12.14 KB, 344×328 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1225568730053.jpg
Полноценного апи для досок нет. Недокументированная фича /b/0.json возвращает только в старом формате (что ещё куда ни шло) и не форматированные сообщения, что совсем печально. Если я буду отдельно запрашивать последние 10 постов для каждого треда на странице, это сильно жирно будет?
>> No.54729 Ответ
>>54051
> Недокументированная фича /b/0.json
Ого благодарю, не знал.
> и не форматированные сообщения
Да и не нужны они вообще, display_id десяти последних например, более чем достаточно IMO

А есть ли какая нибудь недокументированная фича что бы сообщения об ошибках "неправильно введена капча" "не поддерживаемый формат" итд. смотреть?
>> No.54735 Ответ
>>54729
> не нужны
Кому не нужны? Чтоб хтмл получить, приходится по отдельному запросу на каждый тред отправлять. И если так две доски с небольшим промежутком открыть, то получим 503, ибо Доброчан не любит частые обращения к апи.
Апи для постинга нет вообще, насколько я знаю, там простр возвращается редирект на соответствующую страницу.
>> No.54736 Ответ
>>54735
> если так две доски с небольшим промежутком открыть, то получим 503, ибо Доброчан не любит частые обращения к апи
А как ты тогда "10 постов для каждого треда на странице" тоже самое же будет или я понял не так?
> Апи для постинга нет вообще, насколько я знаю, там простр возвращается редирект на соответствующую страницу.
Ну да, редирект, но
> /error/post/6947209
Нельзя как нибудь вот это запросить типа
> /api/post/error/6947209.json
чтоб просто текст получить?
>> No.54759 Ответ
>>54736
Да, то же самое. На тот момент я как-то забыл, что чтобы взять оп-пост и десять последних постов, надо аж два запроса на тред.
> Нельзя как нибудь вот это запросить типа
> > /api/post/error/6947209.json
> чтоб просто текст получить?
Не слышал о таком.
>> No.55016 Ответ
>>54759
> Да, то же самое. На тот момент я как-то забыл, что чтобы взять оп-пост и десять последних постов, надо аж два запроса на тред.
Ну тогда парсер постов только писать. В принципе это даже в некотором роде плюс, так сообщения от api будут еще короче и ссылки на ютуб будут не коцаные.
>> No.55334 Ответ
А есть возможность получить настройки каждой доски единым json? Есть /api/chan/stats/diff.json, /api/chan/banners.json, а как получать всякие штуки вроде максимального количества файлов, поддерживаемые форматы файлов, скрытие имён и прочее, что отображается обычно под формой постинга.

Алсо реквестирую обновление help://api до текущей ситуации. Много чего недокументированно же. Пресловутые /b/0.json, /api/chan/stats/diff.json и прочие лимиты на количество запросов к api. В идеале с полным описанием формата ответов.
>> No.55355 Ответ
>>55334
> максимального количества файлов, поддерживаемые форматы файлов
Большинство таких вещей давно уже одинаково для всех разделов.
>> No.55367 Ответ
Файл: boards.json.js
JavaScript, 27.86 KB, 1294 строк - Нажмите на картинку, чтобы скачать файл
view edit
boards.json.js
>>55355
Большинство, но не все. Например на /mu/ можно пилить сразу 10 файлов в посте, тогда как везде 5. Ибо filesmaxqty = 10. Или в /di/ deletethreadpost_limit = 20, тогда как на большинстве досок 100.
Вручную я что-то такое собрал см. boards.json.js. Кстати нельзя вот запостить json в качестве файла.

Кстати можно было бы попробовать запилить новый api без обратной совместимости со старым. Например по адресу api.dobrochan.com|org|ru
>> No.55374 Ответ
Файл: Screen-Shot-2015-02-24-at-10.47.03.png
Png, 109.58 KB, 959×776 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Screen-Shot-2015-02-24-at-10.47.03.png
К концу недели возможно запилю свой поисковик по Доброчану. Ато плохо, что встроенный не робит.

Индексация даже работает. Пять тхредов в минуту это нормальная нагрузка или можно больше/меньше? Архив я так понимаю придётся парсить вручную?
>> No.55377 Ответ
>>55374
Если от этого не будет тормозить Доброчан, то ты просто няша.
>> No.55378 Ответ
>>55377
Врятли. Нагрузка сравнима с десятком открытых вкладок при наличии юзерскрипта автообновления.
>> No.55379 Ответ
>>55378
> Нагрузка сравнима с десятком открытых вкладок при наличии юзерскрипта автообновления
Нет, разумеется.
Во-первых нормальный скрипт автообновления использует апи загрузки новых постов, что даже в худшем случае, когда новые посты вообще есть, загружает всего пару сообщений. А при скачивании доброчана тред грузится со всеми сообщениями сразу, да еще в отрендеренной форме (html дороже json, в т.ч. из-за кривизны используемой библиотеки шаблонов, у которой в результате сильный оверхед).
Во-вторых автообновление запрашивает одни и те же треды, т.е. те, которые находятся в кэше вплоть до кэша запросов. Скачивание запрашивает разные, и более того, старые треды, что делает необходимым чтение данных с жесткого диска.

Честно говоря, с учетом всего этого упорства в попытках скачать старые треды, действительно похоже проще выложить публично sql-дамп, очищенный от личных данных.
>> No.55400 Ответ
>>55379
Бот опрашивает api и json досок. Самая большая нагрузка будет в период первой полной индексации. Потом будет слежение за первыми несколькими страницами с учётом /api/chan/stats/diff.json. При этом всём бот использует одну и ту же добросессию.
> Честно говоря, с учетом всего этого упорства в попытках скачать старые треды, действительно похоже проще выложить публично sql-дамп, очищенный от личных данных.
Для меня это только решит проблему с первой индексацией. Потом всё равно будет реалтайм слежение за досками.
Идеально для меня было бы вот такое api: /:board/all.json и /:board/archive.json или /api/all.json?board_id=43&archived&autosage со списком всех тхредов определённой доски. Примерно вот в таком формате:
{
  ":board": {
    "threads": [
      {"thread_id": 452365342, "display_id": 5235432, "board_id": 34, "last_hit": "2006-01-02 15:04:05", "last_modified": "2006-01-02 15:04:05" ...остальные настройки треда...}
    ]
  }
}
Т.е. без постов, а значит и без рекурсивных запросов. Я в любом случае буду опрашивать обновлённые треды полностью премодерацию и прочее ведь никто не отменял. При этом я могу, скажем, опрашивать /b/ раз в час или два, а слоудоску вроде /di/ или /hau/ раз в день и реже.
>> No.55416 Ответ
>>55400
Оно ещё конечно не готово, но вот http://dobrosearch.ngrok.com/
Полная индексация не проводится пока. Чисто потестить пока врубил.
>> No.55419 Ответ
>>55416
Неплохо. Введи, пожалуйста, exact search и поддержку вайлдкард (*,?, []) или мб даже лучше ограниченные регулярки.
>> No.55461 Ответ
Багофича такая багофича. Если вместо /api/chan/stats/diff.json написать что-то вроде /api/chan/stats/diff.j или /api/chan/stats/diff.all или ещё как с ошибкой, то собсна сабж.
>> No.55815 Ответ
>>55416
Уже не работает?
слоупок
>> No.56086 Ответ
>>55815
Ещё не работает. Будет примерно в то же время, что и доброчановский апдейт. Наверное.
слоупок-программер
>> No.56094 Ответ
Обнаружил недокументированную возможность

/api/post/{board}/{thread}/{post}.json?message_html&new_format&thread

Вернет информацию о доске + информацию о треде + информацию о посте

Доска:{ ... тред[1]:{ ... пост[1]:{ ... } } }
>> No.56095 Ответ
>>56094
Н-но ведь про это написано в справке.
>> No.56321 Ответ
>>56095
Про параметр &thread не написано же.
>> No.56323 Ответ
>>56321
Твоя правда.
>> No.57066 Ответ
>>24370
Апи вообще кто-нибудь занимается сейчас?
Хотелось бы апи для списка тредов на доске.
Недокументированного явно не хватает, т.к. нужен распаршенный хтмл, а не исходная разметка постов.
>> No.57237 Ответ
>>24370
> /utils/post/edit/109992/2145167/
А вообще свои посты есть возможность редактировать? (как нибудь там по паролю или типа того.)
>> No.61008 Ответ
Раз такие дела, то может теперь апи немного поправят и дополнят?
>> No.61738 Ответ
Реквестирую фичу чтобы при запросе новых постов в ответе были трипкоды\флажки\флаги стран.
>> No.61806 Ответ
Файл: -.png
Png, 86.94 KB, 1519×332 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
-.png
Добрый день.
Недавно на Доброчане что-то поменялось, и теперь кукла не может правильно определить трипкоды/флажки своих (моих) постов, потому что не может их получить по запросу. Вот что сказали куклоделы: пикрилейтед.
Не могли бы вы это как-то поправить?


Пароль:

[ /b/ /u/ /rf/ /dt/ /vg/ /r/ /cr/ /lor/ /mu/ /oe/ /s/ /w/ /hr/ ] [ /a/ /ma/ /sw/ /hau/ /azu/ ] [ /tv/ /cp/ /gf/ /bo/ /di/ /vn/ /ve/ /wh/ /fur/ /to/ /bg/ /wn/ /slow/ /mad/ ] [ /d/ /news/ ] [ Главная | Настройки | Закладки | Плеер ]