JoyReactor GraphQL Enpoint / dev :: joyreactor api :: api :: реактор

dev реактор api joyreactor api 

JoyReactor GraphQL Enpoint

Информация для тех, кто делает сайд-проекты, завязанные на парсинг реактора.

Для простоты дебаггинга к внутреннему API реактора, я открыл graphql-playground. Там выдаётся далеко не вся информация, но постепенно она будет наполняться. Лимиты там довольно жёсткие, но должно хватить.

Если не знаете что такое GraphQL - изучайте. Эндпоинт совместим со спецификацией Relay Object Identification.

Идентификатор строится как base64(Type:Id).

Например, таким запросом можно получить идентификатор поста по номеру картинки

{
  node(id:"UG9zdEF0dHJpYnV0ZVBpY3R1cmU6NjQxNDI5MQ=="){
  ... on PostAttributePicture { post { id } }
  }
}


Подробнее
dev,реактор,api,joyreactor api
Еще на тему
Развернуть

Отличный комментарий!

Если кто-нибудь из постящих в it-юмор не напишет тут что-нибудь умное и программистское, то я их уважать перестану.
MDED MDED10.01.202119:17ссылка
+48.9
Если кто-нибудь из постящих в it-юмор не напишет тут что-нибудь умное и программистское, то я их уважать перестану.
MDED MDED 10.01.202119:17 ответить ссылка 48.9
Я просто оставлю коммент, чтобы ты никуда не делся.
Я просто оставлю коммент, что бы вы всей толпой шли нахрен
Lictor Lictor 10.01.202119:49 ответить ссылка 2.8
Ой бля, да куда вы все денетесь с подводной лодки реактора?
вы еще в демотиватор засуньте тред
хуй
Джигурда
break;
end
Фух, спасибо.
Попался
2021 год, кукурузу ловят на живца...
Живца кукуруза захватывает охотно, но ловиться не торопится
Lictor Lictor 10.01.202119:55 ответить ссылка 2.2
Я просто захвачу живца, чтобы ты охотно не ловил.
Брейкин ньюс, кукуруза заглотил живца
Работает збс
Информация для тех, кто делает сайд-проекты, завязанные на парсинг реактора.
anagkh anagkh 10.01.202120:28 ответить ссылка 2.8
ВОТ УЖЕ ГДЕ РЕАЛЬНЫЙ ИЗВРАТ.
Radio Radio 10.01.202120:55 ответить ссылка 6.9
Нихуя не понятно, но очень интересно
koka как истеный мудрец с хохмой про удочку делает не приложение для телефона, а дает инструмент чтобы каждый смог сделать себе приложение для джоя на телефон.
Wolfdp Wolfdp 10.01.202122:07 ответить ссылка 10.9
GraphQL оверхеда не дает? Мне казалось, что для небольших продуктов (меньше, чем facebook/instagram) его не стоит использовать. Обычный REST со специальными endpoint'ами будет в разы более оптимальным.
kabanov kabanov 10.01.202119:37 ответить ссылка 7.7
Вот да, прикрутили бы обычный сваггер.
JohnnyZ JohnnyZ 10.01.202119:39 ответить ссылка 13.0
Вот это другое дело
MDED MDED 10.01.202119:48 ответить ссылка 16.0
И клиент для мобилки годный появится
нужно только adult контент заэксклюдить из мобильной аппликухи. Оставить доступным через избранное или как-нибудь еще. В reddit так сделано.
mirror mirror 10.01.202120:46 ответить ссылка -1.3
Sankaku вообще не избавлялись от adult контента из приложения (не считая iOS, только на андроиде), так как приложение хостят на своем же сайте.
Вырезать адульт из приложения? А нафига тогда нужно вообще тартить силы на бесполезное приложение?)
Чтобы пройти модерацию в сторах. Хуй знает чего минусят, идея то здравая.
mirror mirror 13.01.202117:55 ответить ссылка 0.0
Чтобы сформировать главную страницу потребуется дофига всяких запросов - у нас в правой колонке куча разнородных данных. Пусть лучше идёт одним жирным graphql-запросом, чем несколькими десятками rest-запросов.
koka koka 10.01.202119:58 ответить ссылка 1.6
SPA-версию пилить не думали? Или не потянете?
JohnnyZ JohnnyZ 10.01.202120:03 ответить ссылка -0.3
я, возможно, выскажу крамольную мысль, но зачем?
зачем странице, на которой единственный динамический функционал, это пагинация, полтора метра js? с этим отлично справляется 80кб jquery + 8кб pjax, уже лет 10 как.

я понимаю, что безнадежно отстал от тенденций последних годов, но оверинженерить статические странички, а потом стремительно решать появившиеся проблемы всякими серверсайд рендерингами и прочими костылями - для меня как-то за гранью.
*маленькая ремарка*
я понимаю, что top.reactor.cc это пробы пера и больше отладочная площадка для новых технологий, но функционал реактор сейчас это не гуглдокс или онлайн офис, что действительно должно быть application, это веб-сайт, такой каким он должен быть.
1) и на текущем сайте яваскрипта не мало написано - правда в виде лапши.
2) это позволяет сделать offloading визуализации на клиента.
3) позволяет лучше кэшировать на клиенте данные.
koka koka 10.01.202123:36 ответить ссылка 0.5
лапшу то никто не запретит писать и на реакте, и на ангуляре. тайпскрипт, конечно, больше поощряет человеческий код, возражений нет, но я встречал таких монстров на реакте, что даже если бы обезьяну научили писать на jquery и заставили писать аналогичный функционал, то вышло бы лучше.
насчет переноса нагрузки на пользователя - я не думаю, что парсить graphql гораздо дешевле, чем твиг, но вам виднее.

на самом деле, конечно, здорово что спустя столько времени вы еще развиваете проект и что во всем этом проглядывают даже попытки движения в сторону мобильных платформ (а топ.реактор гораздо более мобайл-френдли, чем все остальное вообще на реакторе).
наверное, и вправду, главное чтоб у вас инструменты вызывали интерес и комфорт в работе.
Про лапшу - я не в том смысле, что хреново написанно, а в том - что полноценно на jquery и не напишешь. Там всё идёт "заплатками" - ловим событие, ковыряем дом, что-нибудь туда записываем. При этом код каждой заплатки обычно не имеет понятия что вообще вокруг происходит.
koka koka 11.01.202101:39 ответить ссылка 0.1
а, ну в этом плане да.
но реакт, мне кажется, оверкилл все же немного - vue какого-нибудь хватило б с головой. но опять же, если приятней работать с реактом и душа к нему лежит, то остальное уже не принципиально.
Самый короткий путь тот, который ты знаешь. Вероятно на реакте кто-то уже делал проект, поэтому так. Лучше уж писать со знанием на Реакте, чем без знаний на чем-то еще.
frenzy frenzy 11.01.202112:50 ответить ссылка 1.2
Больше всего бесит в SPA замена нативного обновления вкладки на кривой статусбар на самом сайте. А еще ведь при нестабильном соединении всё может зависнуть и придётся обновлять всю страницу. А если соединение медленное, то вообще непонятно, грузится страница или нет.
Ну, я не понимаю, зачем было выбирать Реакт, который одновременно сосет у Ангуляра по удобству разработки (чего один блядский редакс стоит), скорости работы и особенно по размеру итогового кода, но в целом, современные фреймворки умеют отслеживать точечные изменения и обновлять DOM лучше, чем это бы сделали люди. Это экономит массу времени на разработке и отладке.

Кроме того, если добавить туда чуть-чуть современного CSS, то сделать невсратый мобильный дизайн будет тривиальной задачей, а потом можно будет даже с ним отдельное приложение собрать, если захочется.
Hellsy Hellsy 10.01.202122:09 ответить ссылка -1.8
кхехм, вообще редакс это необязательный инструмент
А что, появилось что-то новое, чтобы не тащить данные через все компоненты? Неужто осилили скопировать ангуляровские сервисы?
Hellsy Hellsy 11.01.202100:50 ответить ссылка -0.6
Ну как новое, хуки еще в 2018 появились. Лично я не использую ни redux, ни mobx, хуков хватает с головой. Есть и свои, кастомные. Конечно, и там, и тут есть плюсы и минусы, но вот так. Слонов не делаю, хотя проекты достаточно сложные. Нравится также react с typesript.
Ангуляр лично мне показался душным, скорее всего потому, что я его изучал на стыке мажорных версий. Много кода. Медленный в рендере (на тот момент). Принуждает к опп. Не дает выбора, react - просто ui библиотека, делай что хочешь. Ну и crm, под которую делаются приложения, тоже на react, так что стили и ядро можно тибрить прямо с сервера системы.
> хуков хватает с головой

Это же тупо обсерверы от RxJS, не?

Возможно мне Ангуляр подходит больше потому как я фулстек и OOP c MVC для меня - очевидные, понятные и разумные шаблоны, позволяющие легко и четко структурировать код в крупных проектах, где Реакт неизбежно пожирает сам себя, увязая в бесконечном дебаге и адских тормозах.

Последние три версии Ангуляра (9 - 11) еще и настаивают на стрикт TS и бюджетах - это предупредительный/максимальный размер JS-чанка.

Особенно радует стрикт, а то я видел любителей тайпскрипта, которые из всех типов предпочитают any, про интерфейсы даже не слышали, а конструкция типа key in keyof ... вызывает у них ступор и непонимание - мол, им же обещали, что в JS все как-то само...
Hellsy Hellsy 11.01.202110:34 ответить ссылка 0.0
>Это же тупо обсерверы от RxJS, не?

хуки - это хуки. Меняют весь жц компонента.
Насчет увязающего реакта - дури можно и хуй сломать. Следить надо за ререндерами.

>OOP c MVC для меня - очевидные, понятные и разумные шаблоны

Для меня тоже. На плюсах. А на js они мешаются, он позволяет не следовать опп полностью. js - это не такой язык программирования в старом свитере, как плюсы. Эта херня постоянно мешает молочный коктейль с виски, занюхивает коксом и делает вещи. Какой смысл пытаться отнять у нее стакан?
Потому что когда команда делает проект чуть крупнее hello world, то следование паттернам и соглашениям облегчает взаимодействие и отладку, делая все предсказуемым и понятным. И большой проект сводится к куче микрозадач, каждая из которых простая, легкая и понятная. Что на сервере, что на клиенте.

Вот мне нужны какие-то типовые операции с данными. Я создаю таблицу в SQL, создаю ее модель/набор наследующих друг друга моделей в C#, переношу это добро в TS в виде интерфейсов достаточных для представления. Создаю сервис, который оперирует с этими моделями (по сути отражает контроллер в C#). В компоненте использую сервис и у меня после этого даже в шаблоне компонента есть автокомплит по ключам модели и проверкам типов. Ошибиться негде. Чуть-чуть юниттестов сверху и готово. Когда коллеге понадобится внести изменения, он поменяет модель и сразу увидит, если где-то что-то проебалось. Добавь сверху DRY, KISS и SOLID - и вот стабильный продукт, который легко развивать.

А подход Реакта, да еще на чистом JS - это что-то вроде PHP первых версий, чудовищная мешанина кода и темплейтов в которой черт ногу сломит. Ты что-то поменял? Тебе пиздец, добро пожаловать в игру "угадай, что и где уебется в ближайший месяц". Поменялась модель на сервере? Тебе двойной пиздец.
Hellsy Hellsy 11.01.202123:06 ответить ссылка 0.6
Во-первых, про ts я уже упоминал.
Во-вторых, с помощью реакт сделано несколько сложнейших систем, dynamics 365 например. Хреновина от майкрософт. При этом доступен и старый интерфейс на jquery/kendo. Бекенд и апи у них один и тот же.
В третьих, никто тебе не диктует, как и что использовать, реакт это библиотека для ui, а ангуляр - уже фреймворк.
Я просто не понимаю, почему ты его хейтишь, это инструмент для визуализации и ничего больше.
И да, насчет поменял и не можешь найти... Если не писать нормальную документацию и не вести коммиты по-человечески, то и в хеллоуворде потеряешься.
Я, конечно, каменщик и работаю три дня, но как-то получается избегать пиздецов. Писал я и систему дедубликации, и панельки интерактивные со всякими календарями, действиями и таблицами. Ничего сверхсложного в интерфейсе, на мой взгляд, нету. Магия - она под капотом сервера. (бекенд я тоже пишу, кек)
Реакт вдвое старше Ангуляра, конечно же на нем нахерачено куча всего, включая бизнес-логику.

А недолюбливаю я его, потому что любой язык/фреймворк, даже Реакт, подразумевает определенные паттерны использования. И Реакт - это про говнокодерство в его наихудших проявлениях. Про мешанину кода и шаблонов, про гигантский хуй, выложенный на принципы ООП вообще и хорошего программирования в частности. Это ПХП в мире фронтэнда.

И да, это так же привлекает новичков, как и ПХП - низкий порог входа, херачь как попало и что попало. Но итоговая цена разработки среднего проекта оказывается гораздо выше.

При этом Ангуляр, после освоения, не проигрывает Реакту в скорости разработки даже мелких проектов. Роутер, пачка компонентов, сервисы для взаимосвязи - все, готово.
Hellsy Hellsy 12.01.202122:48 ответить ссылка 0.0
Пидарасы, сер. И, да, я пьян,ибо у меня ДР, и мне пох на ваш пограммиссткий йумор.
да, но зачем это нужно на сайте, функционал которого это лента картинок, в 80-90% случаев взаимодействие с которой состоит в её пролистывании до конца и переходе на следующую страницу?
Если ты посмотришь на джой, который собран на классческом jQuery, то там справа от ленты в которой, на минуточку, еще есть куча комментариев с различным функционалом, есть целая пачка разнообразной хрени - топ комментов с разными переключателями времени, любимые тэги, лучшее, топ пользователей, фендомы, на сервера собрано, и т.д. и т.п.

И при любой навигации по страницам ВСЕ НАХУЙ ПЕРЕРИСОВЫВАЕТСЯ, ДАЖЕ НЕБО, ДАЖЕ АЛЛАХ. Потому что приходит страница целиком, а не маленький json с данными. Это ненужная нагрузка как на сервер, так и на клиент.

А тебя послушать, так даже jQuery не нужен, для "ленты картинок" хватит поднять FTP-сервер, накидать в корень картинок, открыть для добавления директрию "Песочница" и хватит с юзеров.
Hellsy Hellsy 11.01.202100:58 ответить ссылка 0.7
если ты про тогглы "Неделя - Месяц - Все время" в сайдбаре, то я тебя расстрою - такую хуйню можно сверстать без единой строки js в принципе:)
больше динамического функционала в сайдбаре нет.
"Собрано на сервера" это два блока, где дочерний занимает n% ширины от родительского, и я думаю сервер не особо страдает от ебанутся тяжелого математического вычисления ($donated / 136000 * 100) и подстановки его в инлайновый стиль.

а вот что действительно нуждается в переработке - так это редактор создания поста и мобильная версия (вернее она нахуй не нужна, достаточно адаптировать десктопную, попрятав куда-нибудь сайдбар) и немного причесав контент).
> акую хуйню можно сверстать без единой строки js

А можно воспользоваться ровно одной ангуляровской директивой, которая, кстати, неотображаемый контент даже не отрисует и тем самым не будет занимать память браузера и раздувать DOM-модель попусту.

И контент можно получать/обновлять динамически - на фреймворке это делается тривиально. Например, для "сейчас на сайте" это актуально.
Hellsy Hellsy 11.01.202123:12 ответить ссылка 0.0
да я знаю, и даже согласен, но динамически обновляемые онлайн пользователи это не та проблема, которая прям мозолит глаза.
хотя, конечно, было бы круто.
> редакс

so 2019
koka koka 10.01.202123:16 ответить ссылка 0.1
Какой там оверхед он даст? Это по сути новомодный jsonrpc/odata/.... Он парсит кверю, выполняет на источнике данных, и возвращает ответ. Руками сильно оптимальнее ничего тут не сделать. Особенно если данные вытягиваются не с других сервисов а напрямую их БД, тогда это просто один селект и все.
Psilon Psilon 10.01.202120:32 ответить ссылка 0.2
Ничего себе joyreactor прогрессивный :)
SirEdvin SirEdvin 10.01.202119:38 ответить ссылка 0.8
я так понимаю, родного православного мобильного приложения не ждать?
fghjk fghjk 10.01.202119:58 ответить ссылка 1.3
Полезно. Возможность восстановить "съеденные" цензурой картинки существенно упростилась (кстати сейчас превьюшки постов - маршрут вида //img10.joyreactor.cc/pics/thumbnail/ID_поста - все равно отображает забаненный в РФ \ съеденый копирастами контент). Как вижу сейчас при запросе через GraphQL информация никак не защищена и данные заблоченных постов отображаются в полном объеме. Планируете ли вы как то ограничивать подобные запросы в будущем? Или по сути в таком случае ответственность на сторонних разработчиках и вы не при чем?
Ну запросы то навряд ли будем ограничивать. Прямого урла как получить это - всё равно нет, а банят именно по урлам.
koka koka 10.01.202121:02 ответить ссылка 1.9
Однако, спасибо
>навряд ли будем ограничивать

Эх...Так понимаю все таки пришлось ограничить? Стало отдавать посты с пустым массивом attributes для цензуренного где-то с начала месяца.
Зависит от сайта с которого ты запрашиваешь. Если запрашиваешь с самого api.joyreactor.cc - то будет отдавать без цензуры.
koka koka 02.11.202109:51 ответить ссылка 0.0
а, ясно, ну тоже гуд вариант. спасибо
weekTopPosts(year: 2020, week: 1) {
bestComments {
post {
bestComments {
post {
bestComments {
post {
bestComments {
post {
...
Надеюсь, подобные вложенные запросы не создают нагрузку в овердофига запросов к БД. Ну и надеюсь что N+1 для подобных запросов с зависимостями тоже решается.
C4Grey C4Grey 10.01.202121:36 ответить ссылка 1.0
graphql есть, https нету :/
Уже объясняли, при хттпс РКН может видеть только на какой сайт человек заходит, а на какую именно страницу - не может. Поэтому, если РКН не понравился один единственный пост, то придётся блочить весь реактор.
query { node(id:4645610) { id } } возвращает "Internal server error". Это ID этого поста.
sprspr sprspr 11.01.202101:43 ответить ссылка 0.1
Нет, я понимаю, что это неправильный запрос, но сервер же не должен сваливаться от этого.
sprspr sprspr 11.01.202102:21 ответить ссылка 0.0
Можно получить рейтинг любого поста/комментария. Так и задумывалось?
sprspr sprspr 11.01.202102:28 ответить ссылка 0.0
да, а почему нет?
koka koka 11.01.202102:51 ответить ссылка 0.0
Почему-то вообразил, что в апи будут те же ограничения на показ рейтинга, что и на сайте (залогиненым).
sprspr sprspr 11.01.202103:51 ответить ссылка 0.0
Так разлогиненым ты можешь увидеть все эти рейтинги. Вроде даже в JRAS есть опция показывать их все.
koka koka 11.01.202111:53 ответить ссылка 0.0
Ты его можешь получить, просто разлогинившись.
эх, я как то делал телеграм бота на питоне который с помощью BeautifulSoup парсил картинки с джоя.
А постить с его помощью нельзя, я так понимаю? У меня есть мысль создать клиент для ПК и для мобилок потом, на ксамарине (да, я больной).
Есть api, чтобы создавать посты?
пока - нельзя, но в будущем предполагается перенести на него всё.
koka koka 17.03.202110:10 ответить ссылка 0.0
Просто без постинга смысла во всех этих клиентах нет.
Будем ждать.
кстати, постить можно =)
koka koka 02.05.202316:42 ответить ссылка 0.0
А оставлять комменты? =)
это уже давно можно
koka koka 02.05.202317:35 ответить ссылка 0.0
Бомба. Значит пора пилить клиент.
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
A joyreactor.cc/all Смотреть I Ска*,.п> (С)	£2 Р
^ JcyReactor
подробнее»

joyreactor dev реактор

A joyreactor.cc/all Смотреть I Ска*,.п> (С) £2 Р ^ JcyReactor