API Hejto jest tragicznie udokumentowane. Trzeba się domyślać, jakie parametry i wartości wpisywać (mało tego, wiadomości z API są w języku polskim, ale dokumentacja już jest po angielsku). Gdyby kod API Hejto był otwarty, to by nie było problemu. Właśnie "udało mi się" dostać ratelimita, testując automatyzację nowych publikacji


#nowywlascicielhejto

Komentarze (51)

zed123

@kontrabanda Właśnie mi przypomniałeś post sprzed wieków, który krążył po specjalistycznych boardach. xD


...co to jest za usługa %SvStream.DeviceDesc% w pierdolonym win2k, bo wypierdala mi się co godzinę razem z całym w d⁎⁎ę je⁎⁎⁎ym systemem, a jakaś niedorżnięta w d⁎⁎ę parchawa ciota spolszczyła zasrane nazwy usług i procesów, tylko że, k⁎⁎wa, nie starczyło jej je⁎⁎⁎ej konsekwencji, żeby spolszczyć je także w komunikatach o błędach, co dowodzi jednoznacznie, że microsoft to chuje, i to krzywe. anyway, jeśli ktoś ma pomysł, co to gówno robi, jak to wy⁎⁎⁎⁎⁎olić w pizdu albo uzdatnić do je⁎⁎⁎ej współpracy, to bardzo proszę o pomoc, zanim mnie ciężka ku⁎⁎⁎ca trafi i wy⁎⁎⁎⁎dolę całe to pudło przez pierdolone okno.

z góry dziękuję

kontrabanda

@zed123 : przepiszmy to na "dzisiejsze standardy":


...co to jest za API w pierdolonym Hejto, bo wypierdala mi się co minutę razem z całymi w d⁎⁎ę je⁎⁎⁎ymi workflowami, a jakaś niedorżnięta w d⁎⁎ę parchawa ciota spolszczyła zasrane odpowiedzi z API, tylko że, k⁎⁎wa, nie starczyło jej je⁎⁎⁎ej konsekwencji, żeby spolszczyć je także w dokumentacji, co dowodzi jednoznacznie, że [...] to chuje, i to krzywe. anyway, jeżeli ktoś ma pomysł, co to gówno robi, jak to wy⁎⁎⁎⁎⁎olić w pizdu albo uzdatnić do je⁎⁎⁎ej współpracy, to bardzo proszę o pomoc, zanim mnie ciężka ku⁎⁎⁎ca trafi i wy⁎⁎⁎⁎dolę całe to API przez pierdolone okno.

z góry dziękuję

AdelbertVonBimberstein

@kontrabanda to winny @ebe on to pisał najebany.


Pozdrawiam

#nowywlascicielhejto

ataxbras

@kontrabanda Puppeteer i po problemie

kontrabanda

@ataxbras: my akurat używamy n8n do automatyzacji. Mastodona dla porównania dało radę spiąć bez problemu. Wystarczy zarejestrować aplikację na Mastodonie, przekleić dane autoryzacyjne tam gdzie trzeba, a dokumentacja do API Mastodona przynajmniej jest o wiele lepiej i przejrzyściej napisana -- https://docs.joinmastodon.org.


@hejto -- moglibyście wziąć przykład z twórców Mastodona, dokumentując API. Z góry dziękuję.

ataxbras

@kontrabanda Też używam n8n - n8n-nodes-puppeteer. Puppeteer nadaje się do tego, żeby móc wykonywac akcje bez wykorzystania API (jeśli jest skopane/niewygodne).

ErwinoRommelo

First time? @entropy_ juz takie cuda widzial nurkujac w tym szambie ze sie w cyrku nie smieje

koszotorobur

@ErwinoRommelo - przy moich projektach jak #statystykihejto , #hejtoszukaczka czy https://www.hejto.pl/wpis/hejto-podsumowanie-roku-2024-dajesz-zap-dostajesz-podsumowanie-w-speech-balloon oraz kilku innych, które wykorzystywały Hejto API - to straciłem trochę szacunku do twórców Hejto

entropy_

@ErwinoRommelo ja miałem zero problemów.

No ale to ja, umiem czytać i w ogóle.

Przyznaję jest kilka miejsc gdzie się trzeba domyślać ale nie jest aż tak źle.

Powiedział bym 5-

entropy_

@ErwinoRommelo a ratelimit udało mi się wbić raz tylko i to na serwerze testowym

ErwinoRommelo

@koszotorobur no wiadomo ze prowizorka totalna xd no ale co zrobisz, takiego spaghetti codu juz nie odplatasz a od nowa robic znowu? Komu by sie chcialo

koszotorobur

@entropy_ - przecież to API to jest śmiech na sali - nie dość, że niektóre parametry nie są udokumentowane a są wymagane i dowiadujesz się o nich z odpowiedzi API (łaskawcy przynajmniej tyle dali) - to jeszcze ma ograniczenia ilości zwracanych podstron (większość endpointów po 50 podstronie zwraca 50 podstronę).

Nawet mi się nie chce innych idiotyzmów przypominać bo mnie tylko nerwy szarpią

kontrabanda

@entropy_: z racji tego, że jestem frontendowcem, nie jest to moje pierwsze zetknięcie się z konceptem API. Tyle że w innych przypadkach albo dostaję instrukcję, co gdzie trzeba przesłać, albo dostaję dokumentację, która jest napisana na tyle dobrze, że nie będę musiał się domyślać, co trzeba zrobić, żeby stało się to, co chcę.


Na Hejto z kolei np. endpoint do publikacji postów jest dla mnie niejasno wytłumaczony. Okej, jest zmienna `content`, to tam oczywiste, że trzeba wrzucić zawartość postu. Ale potem zacząłem dostawać w trakcie testowania błędy typu "zdefiniuj społeczność" czy "zdefiniuj typ postu". Patrzę w dokumentację, a tam... nie ma żadnej informacji o tym, jak mam zdefiniować dodatkowe parametry. Wpisuję w wyszukiwarkę "type", "post", "link" -- wyszukiwarka nic nie zwraca.


Dla porównania dokumentacja Mastodona, gdzie też jesteśmy, jest przejrzyście napisana -- i tam nie miałem żadnego problemu ze zdefiniowaniem odpowiedniego zapytania. /OJ

entropy_

@ErwinoRommelo @koszotorobur neee nie jest tak

źle.

Też robiłem podsumowanie, ale poszedłem z innej chyba strony bo raz pobrałem i robiłem wstępne obliczenie niektórych rzeczy

Wszystko co było żle wynikało z mojego chujowego kodu.

ErwinoRommelo

@entropy_ jesli ebe stoi za toba z bronia palna to mrugnij 3 razy

entropy_

@kontrabanda type post link i article to pamiętam jak implementowałem w swoim kliencie. Jak się przyzwyczaisz jak uploadować obrazki to w zasadzie działają tak samo

koszotorobur

@ErwinoRommelo - albo to albo jeszcze Tomeczek @entropy_ tego API do niczego bardziej skomplikowanego nie próbował wykorzystać

entropy_

@ErwinoRommelo ja serio takich problemów nie miałem.

Testowałem bota i raz wbiłem rate limit ale cały kod pokazałem adminom. Musisz ze 6 postów na minutę wrzucić żeby to dostać więc kolega robił bruteforce

kontrabanda

@entropy_: masz gdzieś kod publicznie dostępny? Jeżeli tak, pomoc by była bezcenna.

entropy_

@kontrabanda oczywiście że nie żeby botów do publikacji i piorunowania nie robić. Pokazalem jednemu adminowi i jak chce to niech udostępni, ja do tego ręki nie przyłożę.

kontrabanda

@entropy_: zawsze też możesz pokazać część kodu na DMach, o ile Hejto ma taką funkcjonalność. Abstrahując, security by obscurity to zły pomysł na zabezpieczenie aplikacji

entropy_

@kontrabanda ale to jest tylko wrapper do pythona na to api.

Dosłownie najebany to pisałem pół na pół z qwen2.

Powiedz z czym masz taki problem to może coś poradzimy tutaj publicznie

koszotorobur

@entropy_- a co on taki hitry - sam odemnie dostał przykłady jak używać Hejto API a teraz się nie podzieli?

kontrabanda

@entropy_: mam workflow w n8n, który pozwala mi na zautomatyzowanie publikacji. Po otrzymaniu pomocy od @koszotorobura mam teraz coś takiego. Docelowo jednak chcę, żeby to występowało jako znalezisko.

fcecef6b-f157-4232-a97b-254067dadd6e
entropy_

@koszotorobur tak, dałeś mi przykład jak wygenerować token i zrobić post. Uwazam, że ta moja biblioteka idzie za daleko w tym kierunku i związana jest z Twoją (poza generowaniem tokena) tylko tym samym endpointem w api

entropy_

@koszotorobur dałeś mi ~40linijek kodu a ja mam z 400

entropy_

@kontrabanda community to musi być slug tej komunity. To co w url

koszotorobur

@entropy_ - ale OP prosi dokładnie o to samo - przykłady używania API by móc dodawać posty - a nie całą Twoją bibliotekę

entropy_

@kontrabanda community ustaw to co na czerwono. Ma być slug

Nsfw nie trzeba ustawiać. Mało tego czasami samo się ustawi jak użyjesz śliskich tagów

b4e3c67c-47d5-49e0-9a21-32c56a76d6fd
entropy_

@koszotorobur @kontrabanda a tak w ogóle to w n8n widać czemu się wysypało. W błedzie jest wszystko napisane

kontrabanda

@entropy_: dobra, póki co udało mi się ogarnąć posty jako `discussion`. Szału nie ma, ale lepsze to niż nic. RSSy wordpressowe nie dają zdjęć tytułowych (no i ich definiowanie w n8n, żeby API Hejto było zadowolone, nie jest na moje nerwy).

entropy_

@kontrabanda moim sposobem i tak musiał byś mieć lokalnie pobrać na przynajmniej kilka milisekund obrazek plus musiał byś zmusić n8n do użycia mojej upośledzonej biblioteki pythona xD

Szybciej jest tak jak jest bez implementacji tego w n8n xD

kontrabanda

W ogóle to też jest ciekawe odnotowania, gdyż n8n niby pisze, że jest błędny JSON, ale post się pojawia na Hejto.

d7f8ea8d-be11-422f-be71-ba69e25e9742
kontrabanda

@entropy_: ale i tak dzięki za chęć pomocy

entropy_

@kontrabanda a co tam jest w other?

Też używam n8n i zgaduję że dostałeś odpowiedź z kodem innym niż 200

kontrabanda

@entropy_: Invalid JSON in response body at jsonParse. Tylko tyle. W razie czego załączam też to:

170e9bed-4023-4766-9ba2-2e4d4b61ed04
entropy_

@kontrabanda aaaa rozumiem.

Dostałeś 201 albo 203 co znaczy po prostu ok.

To nie hejto jest złe tylko n8n zjebany.

A wiem że jest zjebany bo sam używam

kontrabanda

@entropy_: dobra, "oszukałem" system. Dodałem blok-widmo który nic nie robi, ale ustawienia są takie, żeby przy Hejto kontynuowało wykonywanie workflowa. No i n8n widzi to jako "sukces" w ostatecznym rozrachunku.

cad33973-06ea-4122-ba2e-34094465463f
entropy_

@kontrabanda słuchaj, n8n jest niedojebane jak lato z radiem i piszę to jako osoba która używa tego w chuj.

Hejto zwraca 201(albo 203 nie chce mi się teraz sprawdzać a nie pamiętam) co znaczy po prostu: ok, zrobione

To że jakiś niedojebany (według mojej prywatnej opinii jako osoby która używa tego od przeszlo 2 lat) soft czegoś nie umie zrobić to nie wina dokumentacji. To wina niedojebanego softu.

Jakbyś to napisał pijany w pythonie z półmózgiem typu qwen2 jak ja to by działało od strzała.

Tldr

N8n nie ogarnia kodów odpowiedzi bo to nie jest python

kontrabanda

@entropy_: 201 jak dobrze pamiętam to "Created", więc prędzej bym się tego spodziewał jeżeli się pojawia nowy post.

entropy_

@kontrabanda wszystko (chyba) masz w zakładce "other" której nie kliknąłeś

entropy_

@kontrabanda gdyby ktoś przeczytał dokumentację to by się dowiedział że json nie jest w tym api odpowiedzią na stworzenie postu.

@koszotorobur ale to chyba trzeba bardziej zaawansowane rzeczy z api robić jak ja

A wszystkiego mozna bylo uniknąć klikając "other info" i przeczytać dlaczego sie wysypało

12e1675d-2124-4a46-9583-a50ff4c365cc
koszotorobur

@entropy_ - nawet jak wszystko jest wyjaśnione to zdarzają się problem bo człowiek nie znajdzie sam lub nie doczyta lub źle zinterpretuje

Ja tam pomagam wszystkim bo wiem, że nie wszytko dla każdego jest oczywiste - pomimo, że z mojej perspektywy się takim zdaje.

A OP Twoją pomoc też docenił i miło, że sobie pomagamy tu na Hejto

entropy_

@koszotorobur akurat tutaj to nie jest nasza interpretacja tylko twórców n8n, którzy uznali że odpowiedzi "ok, dodane" nie da się wysłać kodem 201 tylko MUSISZ jsonem xD

Jakąś połowę swoich automatyzacji przepisałem na pythona bo to gówno jest ledwo używalne xD

Najśmieszniej jest jak potrzebujesz jednego z argumentów który jest na wejściu użyć na wyjściu a w środku masz pętlę.

Ogólnie to rozwiązanie tego problemu w n8n to machajacypapiez.jpg xDDD

koszotorobur

@entropy_ - używanie języka programowania ma zdecydowanie swoje plusy - zwłaszcza nad różnymi graficznymi narzędziami do automatyzacji, które jak widać mają swoje głupie funkcjonalności (lub ich brak).

entropy_

@koszotorobur Akurat w n8n najbardziej co mnie denerwuje to że nie ma "stanu globalnego" nie wiem jak to fachowo nazwać

jak masz komórkę która robi

def foo():

return a=5 b=13 c="banan"


Potem komórkę z pętlą while

bar(a,b,c)

while x:

#do something on a,b,c

return d


i trzecią komórkę w której potrzebujesz abc oraz zależnego od nich d to odzyskanie a,b,c zależy od kontekstu i nawet wtedy udaje się czasami. ale d z poprzedniej komórki dostaniesz zawsze.

Jezus Maria jak mnie to wkurwia

wonsz

Trzeba się domyślać, jakie parametry i wartości wpisywa

Kto j⁎⁎ał offshore ten się w cyrku nie śmieje.

AdelbertVonBimberstein

@kontrabanda a w ogóle jak masz jakiś problem z funkcjonowaniem serwisu proszę o kontakt na


[email protected]


Moja administracja zajmie się tym niezwłocznie.


Pozdrawiam

#nowywlascicielhejto

entropy_

U mnie chyba działa???

entropy_

@kontrabanda Tak ustaw kolego jak u mnie na obrazkach, żadnych błędów nie ma i nie trzeba nic rzeźbić

Koment wyżej wstawiłem z n8n i workflow się nie zatrzymał.

6583ef6b-7646-40c8-9cd1-88671ef69b72
eb1f2afe-1be1-4e0e-9195-a84be95fd075
7eba687c-b2bd-4d3b-bb7e-f1b44bbee9fd
kontrabanda

@entropy_: ustawione, już się nie pruje że coś jest nie tak -- serdecznie dziękuję

Zaloguj się aby komentować