Odp: Dodanie integracji z nową bazą BTSearch
Wstepnie walczylem z uclient-fetch, ale wlasnie nie chcialo to dzialac i pozostal tylko curl
, wazne ze dziala i pakiety nie traca funkcjonalnosci a nawet jest ciut wiecej pokazane.

Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → Dodanie integracji z nową bazą BTSearch
Strony Poprzednia 1 2 3 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
Wstepnie walczylem z uclient-fetch, ale wlasnie nie chcialo to dzialac i pozostal tylko curl
, wazne ze dziala i pakiety nie traca funkcjonalnosci a nawet jest ciut wiecej pokazane.

OK, mamy to. Bedzie dzialac i na uclient-fetch tylko musze rozbudowac zapytanie o kilka dodatkowych argumentow.
Dziala cos takiego:
uclient-fetch \
--no-check-certificate \
-U 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36' \
--method=POST \
--header='Content-Type: application/json' \
--header='Accept: application/json' \
--header='Origin: https://btsearch.pl' \
--header='Referer: https://btsearch.pl/' \
--body-data='{"query":"cid: ' + cellDEC + ' ecid: ' + cellDEC + '"}' \
-O - \
'https://btsearch.pl/api/v1/search'Musisz uważać bo w 24.10 chyba nie było --method (domyślnie było POST)
Musisz uważać bo w 24.10 chyba nie było --method (domyślnie było POST)
Nie mam nic na 24.10 ktos musi to sprawdzic jak to sie tam zachowa.
Hej, tak w ogóle to przecież czyste js z luci potrafi taki api wywołać, nie musisz tego curlem ani uclientem. Fetch z js to zrobi, będzie i szybciej i bez zewnętrznych narzędzi.
Hej, tak w ogóle to przecież czyste js z luci potrafi taki api wywołać, nie musisz tego curlem ani uclientem. Fetch z js to zrobi, będzie i szybciej i bez zewnętrznych narzędzi.
Oo.. czyli bylaby kolejna opcja, do wyboru do koloru. Wieczorem na to zerkne, musze znow wpasc w dokumentacje.
@Cezary moglbys sprobowac przetestowac ten pomysl z "Fetch" i LuCI JS?
Nie zadziała. cors z przeglądarki na to nie pozwala, tam w API masz przykład tego
fetch('https://btsearch.pl/api/v1/search?limit=100&sort=desc&sortBy=relevance', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
query: ''
})
})Rób więc przez uclient-fetch
Nie zadziała. cors z przeglądarki na to nie pozwala.
Czyli dobrze probowalem, wlasnie mialem w odpowiedzi blad z przegladarka.
Tylko ktos musi upewnic sytuacje jak wyglada skladnia na starszych wydaniach, aby placzu potem nie bylo ze nie dziala. Od biedy moge zostawic i curl niech bedzie moze do wyboru metoda.
Na 24.10 nie ma --body-data i --method. Działa coś takiego:
uclient-fetch \
--header='Content-Type: application/json' \
--header='Accept: application/json' \
--header='Origin: https://btsearch.pl' \
--header='Referer: https://btsearch.pl/' \
--post-data='{"query":"ecid: 29250319"}' \
-O - \
'https://btsearch.pl/api/v1/search'Oki, dziekuje. Czyli jest wszystko. Przepisze to w wolnej chwili.
Dla zainteresowanych ta funkcjonalnoscia..
Zrobilem aktualizacje pakietu (+repo) i dziala bez curl. Jedyne co trzeba zrobic to zmienic domyslne ustawienie z otwierania strony na pobieranie danych.
Hej, sorry ze musicie robić to curlem ale musiałam jakoś zabezpieczyć API przed scrapowaniem (chyba nieudolnie z tego co widzę). Może to jakos przemyślę jeszcze i dam wam znać jeżeli jest lepsza opcja niż callowanie curla ![]()
Hej, sorry ze musicie robić to curlem ale musiałam jakoś zabezpieczyć API przed scrapowaniem (chyba nieudolnie z tego co widzę). Może to jakos przemyślę jeszcze i dam wam znać jeżeli jest lepsza opcja niż callowanie curla
Dzieki, ale nie trzeba sie nad tym juz zastanawiac, wszystko dziala i nie potrzebujemy instalowac curla
dane sa pobierane, wiec jest git. Troche zabawy bylo ale ostatecznie mamy lepsza funkcjonalnosci niz wczesniej. Brawo!
Radzimy sobie ![]()
Okej, to mogę wam jeszcze powiedzieć że jak chcecie linkować do samej stacji (zamiast do lokalizacji na mapie) to możecie użyć takiego syntaxu:
https://btsearch.pl/#map=16.00/<lat>/<lng>~f~S<id stacji w naszej bazie>
czyli dodawać `station.id` (nie mylić z `station.station_id`).
Przykład: https://btsearch.pl/#map=16/53.122222/2 … 4~f~S15457
Chyba popsułeś btsearch
Wystąpił nieoczekiwany błąd. Spróbuj ponownie lub odśwież stronę
{"requestedAttributes":{"antialias":false,"preserveDrawingBuffer":false,"powerPreference":"high-performance","failIfMajorPerformanceCaveat":false,"desynchronized":false,"alpha":true,"depth":true,"stencil":true,"premultipliedAlpha":true},"statusMessage":"Could not create a WebGL context, VENDOR = 0xffff, DEVICE = 0xffff, GL_VENDOR = Disabled, GL_RENDERER = Disabled, Sandboxed = yes, Optimus = no, AMD switchable = no, Reset notification strategy = 0x0000, ErrorMessage = BindToCurrentSequence failed: .","type":"webglcontextcreationerror","message":"Failed to initialize WebGL"}
To jest akurat wina po stronie klienta, nie strony itd. Po prostu MapLibreGL (a bardziej przeglądarka) nie umie zainicjować WebGL. Restart przeglądarki/komputera powinien pomóc
Hej, sorry ze musicie robić to curlem ale musiałam jakoś zabezpieczyć API przed scrapowaniem (chyba nieudolnie z tego co widzę). Może to jakos przemyślę jeszcze i dam wam znać jeżeli jest lepsza opcja niż callowanie curla
Cloudflare chroni przed uclient-fetch, wget, curl.
Pobieranie (BOT) polegnie na etapie przekierowania.
Dobrze napisany REST autoryzuje tylko tych co mają aktywny klucz, pozostali mają 401.
U nas jest to wyłączone po stronie CF. Można normalnie wysyłać curlem itd.
Dobrze napisany REST autoryzuje tylko tych co mają aktywny klucz, pozostali mają 401.
Nie dokońca prawda bo API może być publiczne i nie musi mieć żadnego zabezpieczenia. U nas klucze są w 99% po to, aby identyfikować użytkowników którzy wysyłają te requesty ![]()
Przemyślałam to dokładnie, i zrobiłam publishable keys (takie które można używać na cliencie z ratelimitem 120req/60s) oraz zmieniłam CORS aby działał z każdą domeną, więc fetch z przeglądarki powinien teraz działać bez problemu - albo nie ruszać tego wcale, jednakże zmieniłam że requesty z curla itd mają teraz mały ratelimit
Hej, sorry ze musicie robić to curlem ale musiałam jakoś zabezpieczyć API przed scrapowaniem
Nie dokońca prawda bo API może być publiczne i nie musi mieć żadnego zabezpieczenia.
To albo chcesz zabezpieczenia albo nie.
REST bez klucza nie działa, więc nie ma publicznego REST.
A samo API to dane json, więc te dane mogą być publiczne bez zabezpieczenia.
REST bez klucza działa, ale jest na nim mały ratelimit, nie wiem skąd wgl wziąłeś że on nie działa
A to że to są dane w JSON to co? Nie chcę aby serwer był przeciążony requestami userów w żaden sposób bo te dane pochodzą z bazy lol
REST bez klucza działa ale chciałaś zabezpieczenia, więc REST bez klucza jako zabezpieczenie jest bez sensu, bo nie ma autoryzacji.
REST jest po to aby nie obciążać serwera.
@ririxi czy w bazie pojawią się numery PCI dla 5G?
@ririxi czy w bazie pojawią się numery PCI dla 5G?
Jak ktoś je dopisze to tak. Wszystko zależy od społeczności
Niestety popularne aplikacje (netmonitor, netmonster) nie umieszczają chyba w logach PCI dla NR, więc raczej rzadko te dane się tam pojawią - ale opcja dopisania jest
Strony Poprzednia 1 2 3 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Oprogramowanie / Software → Dodanie integracji z nową bazą BTSearch
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc