В Reddit, как скрипты получают количество upvotes и downvotes для комментария?


На Reddit люди могут публиковать комментарии, которые получают upvotes и downvotes. Эта информация не всегда доступна на самой странице, поэтому кажется, что для сбора этой информации используется что-то вроде API.

Я нашелэтот скрипт, который делает это , но не могу определить, откуда в скрипте он извлекает эту информацию. Может ли кто-нибудь указать мне на соответствующую строку, откуда скрипт получает данные?

2 3

2 ответа:

Каждый комментарий имеет data атрибуты:

<div class="thing id-t1_c4upmtm odd comment " onclick="click_thing(this)" data-fullname="t1_c4upmtm" data-ups="646" data-downs="83">

HTML-структуру Reddit действительно трудно проследить, поэтому найдите способ добраться от идентификатора комментария до элемента, содержащего этот материал.

Этот скрипт использует GM_xmlhttpRequest() для извлечения данных JSON для данной страницы: comments или user.

Данные, возвращаемые GM_xmlhttpRequest(), доступны в строке:

var jsonText = response.responseText,data;

, а затем анализируется с помощью функции processTree() скрипта. На самом деле это не одна строка; для этой функции требуется большая часть скрипта.

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