Wocart
Wocart가 알제리 매장의 현금착불 비즈 전체를 운영한다
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗En «nettleser for nettbutikker». Du legger selv inn butikkene, grupperer dem i kategorier og søker etter varer i mange butikker samtidig.
/ fokuserer søkefeltet.Next.js 16 (App Router), TypeScript, Tailwind CSS v4 og cheerio (HTML-parsing på serveren).
Lagring: alt lagres i nettleserens localStorage. Dataene ligger altså bare på enheten du bruker. Bruk eksport/import for backup eller for å flytte data mellom enheter. Lagringen ligger bak grensesnittet Repository i src/lib/storage.ts, så en Supabase-backend kan kobles på senere uten endringer i UI-et.
Krever Node.js 20.9 eller nyere.
npm install
npm run dev
Åpne http://localhost:3000. Første gang lastes fem eksempelbutikker inn (Brando, Volt, Retro, NLY Man og Decades). Søkemalene deres er beste gjetning og er ikke verifisert. Bruk «Test mal» i redigeringsvinduet og juster ved behov.
Andre kommandoer:
npm run build
npm run lint
Ingen er påkrevd. Alle er valgfrie og gjelder bare server-API-ene.
| Variabel | Standard | Beskrivelse |
|---|---|---|
SCRAPER_USER_AGENT | Butikkbrowser/1.0 (...) | User-Agent ved henting av butikksider. Legg gjerne inn en kontaktadresse. |
SEARCH_CACHE_TTL_SEC | 300 | Hvor lenge produktresultater caches (sekunder). |
SEARCH_RATE_LIMIT_PER_MIN | 20 | Maks antall «Hent produkter»-søk per klient-IP per minutt. |
SCRAPER_HOST_INTERVAL_MS | 1500 | Minste tid mellom forespørsler mot samme butikk. |
SCRAPER_ALLOW_PRIVATE | – | Bare for lokal testing (1) mot butikker på localhost. Har ingen effekt i produksjon. |
Eller fra kommandolinjen:
npx vercel --prod
Etter deploy kan du installere appen fra nettleseren («Legg til på Hjem-skjerm» på iPhone, eller installer-ikonet i Chrome).
En mal er en adresse der {query} byttes ut med søkeordet, f.eks. https://butikk.no/search?q={query}. Når du legger inn en ny butikk, gjør GET /api/template?url=… dette:
<form> med søkefelt),/search?q=, /sok?q=, /?s=, /catalogsearch/result/?q= …) og godtar bare mønstre der testordet faktisk vises på resultatsiden.«Test mal» (GET /api/template?test=…) sjekker en mal på samme måte. Noen butikker laster resultatene med JavaScript. Da kan testen ikke bekrefte malen, så åpne testsøket og sjekk selv.
POST /api/search)Nettleseren sender søkeordet og de valgte butikkene (med maler og selektorer, siden dataene ligger i nettleseren). Serveren svarer med en NDJSON-strøm, én linje per butikk så snart den er ferdig:
*/$ støttes, egen User-agent: butikkbrowser-gruppe går foran *, stier normaliseres (æ/ø/å, prosentkoding), og innhold etter 500 KiB ignoreres. Filen huskes i 24 timer. Søkesider som er sperret, hentes ikke. Kan ikke robots.txt leses (nettverksfeil, 5xx eller 429), hentes ingenting, og appen prøver igjen etter ett minutt.Product/ItemList), deretter OpenGraph, og til slutt CSS-selektorer du legger inn under «Avansert» i butikkinnstillingene.Mange butikker viser søkeresultatene med JavaScript, så HTML-en inneholder ingen produkter. Butikkens eget søke-API gir da raske og rene data. Du velger det under «Avansert → Produkt-API»:
| Type | Endepunkt | Eksempel |
|---|---|---|
| Shopify | /search/suggest.json?q=… | Shopify-butikker |
| WooCommerce | /wp-json/wc/store/v1/products?search=… | Kleins |
| Egendefinert JSON | Din egen URL-mal med {query}, pluss stier som data.products, name, price.amount og images.0.url | Retro (/api/navigation/product?query=…), Decades (Voyado Elevate: /publicapi/esales/search?q=…) |
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗