Hur SVERA samlar data
SVERA samlar automatiskt in data från flera publika källor med egenutvecklade scrapers. Datan cachas lokalt som JSON, bearbetas av builders som genererar statiska HTML-sidor, och publiceras via SFTP. Alla källor är öppna och publika — vi lagrar inga personuppgifter utöver vad som redan publicerats av officiella förbund.
Dataflöde
Datakällor
| Källa | Åtkomst | Intervall | Beskrivning |
|---|---|---|---|
WebTracking.se/pbl |
Publik | 48h | Tävlingslogg för svensk offshore-racing. Inkluderar race-id, båt, förare, klubb, tider och placeringar. Primär källa för resultat.html. |
SVEMO TAMtam.svemo.se |
Autentiserad | 48h | Svenska Motorbåtsförbundets tävlingsadministration. Kalender med datum, plats, arrangör, grenar och status för kommande tävlingar. Kräver inloggning (ASP.NET + CSRF). Används inte för resultat: den inloggade vyn är kontoavgränsad och visar bara den gren licensen gäller. |
SVEMO TAta.svemo.se |
Publik | 48h | Publika resultatlistor från SVEMO, för alla tre grenar. Parseade HTML-tabeller med position, förare, navigatör, klubb, båt, klass, nationalitet och poäng. Celler mappas på kolumnrubrik, aldrig position — layouten ändras mellan säsonger. Tabellen har högst én klubbkolumn: KlubbNav (när en navigatör listas) är navigatörens klubb, Klubb är förarens. Förarklubben hämtas därför från anmälningslistorna, inte härifrån. |
SVEMO anmälningslistorta.svemo.se — Förare/Laglista |
Publik | med resultat | Anmälningslistan per klass, med en rad per person och den personens egen klubb. Enda källan som skiljer förarens klubb från navigatörens — ett ekipage består ofta av två personer i olika klubbar. Finns för offshore från 2022; aquabike och rundbana saknar dem, vilket inte gör något då de tabellerna redan har förarens klubb. |
SVEMO Publikta.svemo.se/public |
Publik | 48h | Primär tävlingskatalog. Hämtar tävlingar från publika sidor (Telerik-grid) per gren och säsong — Offshore, Rundbana och Aquabike, 2022 till innevarande år. Ingen inloggning krävs. Det är denna lista som avgör vilka tävlingar resultat hämtas för. |
UIM Sportuim.sport |
Publik | 48h | Internationella motorbåtsförbundets kalender. WebForms med Telerik-grid. Datum, namn, plats, land och disciplin. |
SVEMO Reglersvemo.se |
Publik | 168h | Regelsamling och bestämmelser för svensk båtracing. Ändras sällan. |
NyheterFlera källor |
Publik | 168h | Internationella powerboat-nyheter från PRW, F1H2O och PBN. AI-sammanfattning på svenska. |
Dataformat (JSON)
Alla scrapers sparar data som JSON i bot/data/. Nedan visas strukturen för varje datakälla.
svemo_calendar.json — SVEMO Kalender
svemo_calendar_public.json — SVEMO Publik (verifiering)
Verifieringsrapporten sparas i svemo_verification.json med antal avvikelser och tidsstämpel.
uim_calendar.json — UIM Kalender
webtracking_races.json — Race-logg
webtracking_results.json — Resultat
svemo_results.json — SVEMO Resultat
Används av build_champions.py för att beräkna SM/RM-ställningar, och av build_resultat.py och build_kalender.py. Poängen i tabellerna räknas alltid från placering — points_official är SVEMOs egen kolumn, som saknar SM-bonusen och bara visas som tooltip. status skiljer ”SVEMO har inte publicerat något” från ”vi kunde inte fråga”, och coverage gör en misslyckad hämtning omöjlig att förväxla med en tom säsong.
news_feed.json — Nyhetskällor
Aggregerat från tre källor: Powerboat Racing World (PRW), F1H2O och Powerboat News (PBN). Används av build_news.py och build_rss.py.
weekly_digest.json — AI-sammanfattning
Genereras veckovis av AI-modell (med ZDR — Zero Data Retention — när personnamn förekommer). Visas på nyheter.html.
rules.json — Regler & Bestämmelser
Regelsamling från SVEMO. Används på klasser.html.
Genererade utdata
Utöver HTML-sidorna genererar SVERA även följande maskinläsbara flöden:
| Fil | Format | Beskrivning |
|---|---|---|
| rss.xml | RSS 2.0 | SVERAs egna svenska nyheter (från index.html). Inkluderar kategori-taggar och sociala delningsbeskrivningar. |
| rss-intl.xml | RSS 2.0 | Internationella racerbåtsnyheter (PRW, F1H2O, PBN). Uppdateras veckovis. |
| champions.html | HTML | SM/RM-mästarställningar för offshore. Poäng räknas från placering; förarens och navigatörens klubb löses upp var för sig ur anmälningslistorna. |
| aquabike.html | HTML | SM-ställning i aquabike. Använder SVEMO:s egen poängkolumn rakt av — ingen placeringstabell, ingen startgräns, inget SM-tillägg. Heat summeras aldrig till en rundtotal; en runda som bara publicerat heat redovisas som lucka. |
| klubbliga.html | HTML | Klubbliga per gren: offshore på placeringspoäng, aquabike på SVEMO:s poäng, rundbana på medaljer (SVEMO slutade publicera rundbanepoäng 2024). Varje plats i båten räknas för sin egen klubb. |
Automationsbot (Charlie Webber)
SVERA drivs av en autonom bot — Charlie Webber — som hanterar både schemalagda uppdateringar och email-styrda uppgifter.
Schemalagt flöde
Daglig cron-körning (06:00): scrapers hämtar data → builders genererar HTML → innehållskontroll (hash-jämförelse) → deploy. ”Uppdaterad”-datum ändras bara när innehåll faktiskt ändrats.
Email-pipeline
Admin kan skicka uppgifter via email. Boten klassificerar komplexiteten (LOW/MEDIUM/HIGH) och delegerar till rätt AI-motor. Vid personuppgifter används alltid Zero Data Retention (ZDR) för integritetsskydd.
AI-sammanfattning
Internationella nyheter sammanfattas veckovis på svenska av AI. När artiklar innehåller personnamn dirigeras bearbetningen genom en ZDR-modell (Zero Data Retention) som inte lagrar någon data efter behandling.
Databearbetning
Event-sammanslagning (kalender)
SVEMO TAM returnerar separata poster för varje gren (Rundbana, Offshore, Aquabike) även när de hålls på samma plats och datum. SVERAs builder slår ihop dessa till en rad med flera gren-badges. Matchning sker på date + location.
SM/RM-poängberäkning
SM-poäng räknas enbart från deltävlingar med 3 eller fler startande ekipage i klassen. Deltävlingar med färre än 3 ger RM-poäng. Poängskalan: 25, 20, 16, 13, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.
Resultatfiltrering
Klasser PB (Patrullbåt) och R (Räddning) filtreras bort från resultatvisningen då de inte är tävlingsklasser.
För tredjeparter
SVERA erbjuder i nuläget inget publikt REST-API, men våra datakällor och format är öppet dokumenterade för transparens. Om du vill bygga en tjänst som använder samma datakällor:
| Riktlinje | Beskrivning |
|---|---|
| Respektera intervaller | Scrapa inte oftare än var 48:e timme från samma källa. Regler och nyheter räcker med veckovis. |
| Identifiera din bot | Använd en tydlig User-Agent, t.ex. MinApp-Bot/1.0 (kontakt@example.com). |
| Cacha lokalt | Spara data lokalt och undvik redundanta anrop. Använd tidsstämplar för att avgöra om ny data behövs. |
| Använd publika källor | Prioritera publika endpoints (ta.svemo.se, uim.sport, webtracking.se) framför autentiserade. |
| Källhänvisning | Ange källa om du visar data vidare, t.ex. ”Data från SVEMO via SVERA”. |
Vill du integrera med SVERA?
Vi är öppna för samarbeten och datadelning. Kontakta oss om du bygger en tjänst eller app kring svensk båtracing.
Kontakta oss →