Как да разберете кой е харесал дистрибуция на Perl на metacpan
Можете да харесате дистрибуции на metacpan. Например моето разпространение Test::Whitespaces има 2 харесвания:
Беше ми любопитно да разбера кой е поставил тези харесвания. Няма такава информация на уебсайта на metacpan (актуализация: тази информация се появи след написването на публикацията, подробности в края на публикацията), но има API, чрез който вероятно можете да направите това.
Първи подход към решението
Не беше възможно да се реши проблемът веднага. API има документация, има някои модули, има прекрасен сайт explorer.metacpan.org, но как да използвате всичко това е напълно неясно.
Докладът се оказа много интересен (и след като успях да реша проблема си), записах резюметата от този доклад.
Резюме на доклада
Разговор от Олаф Алдерс „(Аб)използване на MetaCPAN API за забавление и печалба“.
metacpan api използва elasticsearch
PS Докладът споменава модула MetaCPAN::API, но сега той вече е отхвърлен и се препоръчва вместо него да се използва MetaCPAN::Client.
Вторият подход към решението
Ето резултата от скрипта:
Скриптът първо изисква API на Metacpan „покажи ми идентификатора на всички потребители, които са харесали разпространението“, като изпрати заявка до манипулатора „/v0/favorite“. Получаваме отговор. Има много шум в отговора, даден от elasticsearch, но има данни за потребителски идентификатори: "user": "faLMeoWDRjSethSZIGNB_A" и "user": "6wlW4wIgQW6QK_-YU0uxFw".
И тогава скриптът за всеки получен потребителски идентификатор открива какъв потребител е той. Обработка на заявка "/v0/author" и отговор.
По някаква причина не за всички потребителски идентификатори има запис в тип автор, ако скриптът не намери данни, тогава извежда ". ".
Актуализация 2014-05-14
Много е смешно, но няколко дни след написването на тази публикация, сайтът metacpan.org има възможност да види кой харесва вашата дистрибуция.
Ето информацията за харесванията на моя модул Test::Whitespaces: