Skorborð

Lifandi staða úr pílukastleikjum sem skráðir eru í DartConnect. Þið fáið JSON með stöðunni, nöfnum, útskotsleið og tölfræði leiksins, og getið keyrt ykkar eigin grafík á því. Ef það hentar betur er líka til tilbúin grafík sem fer beint inn í vMix eða OBS.

Að byrja

  1. Finnið live-slóð spjaldsins í DartConnect. Hún lítur svona út:

    https://tv.dartconnect.com/live/myjyp/M/idafloridanana26r7

    Kóðinn er hlutinn á eftir /live/, hér myjyp. Það má líka senda alla slóðina, þjónustan finnur kóðann sjálf.

  2. Notið lykilinn sem þið fenguð (sjá Lyklar).

  3. Tengist /api/stream til að fá hverja breytingu um leið, eða spyrjið /api/state reglulega.

Lyklar

Öll köll þurfa lykil. Best er að senda hann í haus:

Authorization: Bearer LYKILL

Þar sem ekki er hægt að setja haus, t.d. í browser source, má setja hann í slóðina: ?key=LYKILL.

Án lykils, eða með röngum lykli, kemur 401. Hver aðili fær sinn eigin lykil og hægt er að loka einum án þess að það hafi áhrif á aðra.

/api/stream

GET/api/stream?code=myjyp

Straumur (Server-Sent Events). Í hvert sinn sem staðan breytist, eftir hverja umferð, kemur skilaboð af tegundinni board með allri stöðunni á gagnasniðinu:

event: board
data: {"version":1,"code":"myjyp","status":"live", … }

Þegar leik lýkur kemur auk þess, einu sinni, skilaboð af tegundinni finished með lokastöðunni. Fínt til að kalla fram lokagrafík:

event: finished
data: {"status":"finished","winner":0, … }

Lokastaðan stendur yfirleitt aðeins í nokkrar sekúndur á spjaldinu áður en það fer í idle, svo grípið hana úr straumnum frekar en með /api/state.

Á 15 sekúndna fresti kemur : ping til að halda tengingunni opinni. Straumurinn lokast af sjálfu sér eftir nokkrar mínútur. EventSource í vafra tengist þá strax aftur án þess að neitt þurfi að gera; í öðrum kerfum þarf að tengjast aftur þegar straumurinn endar.

/api/state

GET/api/state?code=myjyp

Staðan eins og hún er núna, eitt JSON-svar. Fyrir kerfi sem geta ekki tekið við straumi. Spyrjið á 1–2 sekúndna fresti.

SvarMerking
200Staðan, sjá gagnasnið.
400code vantar eða er ekki gildur.
401Lykill vantar eða er rangur.
404DartConnect þekkir ekki kóðann.
504Ekkert barst frá DartConnect. Spjaldið er líklega ekki í gangi.

Gagnasnið

Sama snið í báðum köllum. Þetta er útgáfa 1.

{
  "version": 1,
  "code": "myjyp",
  "updated": "2026-10-25T10:59:19.499Z",
  "status": "live",
  "winner": null,
  "match_id": "6adddea4bd32629b2fc61c94",
  "event":  { "tournament": "Floridana - NA deild 7. umferð 2026",
              "title": "Gulldeild NA - A og B", "round": "Round Robin" },
  "format": { "legs_first_to": 4, "sets": false, "description": "First to 4 Legs" },
  "leg":    { "number": 4, "starter": 1 },
  "throwing": 1,
  "players": [
    {
      "id": "ojr92owj",
      "key": "ojr92owj",
      "name": "Jón Oddur Hjálmtýsson",
      "display": "Jón Oddur",
      "country": "IS",
      "remaining": 117,
      "legs": 2,
      "sets": 0,
      "last_visit": 95,
      "darts_in_leg": 18,
      "average": { "match": 55.99, "leg": 64 },
      "checkout": ["T20", "17", "D20"],
      "checkout_standard": ["T20", "17", "D20"],
      "throwing": false,
      "stats": {
        "t180": 0, "t140": 1, "t100": 3,
        "highest_checkout": 86, "checkouts_100plus": 0,
        "best_leg_darts": 21, "first9_avg": 56.93,
        "legs_won": 4, "breaks": 2
      }
    },
    // seinni leikmaðurinn, sama snið
  ]
}

Leikurinn

SviðLýsing
statuslive á meðan leikur er í gangi. finished þegar honum er lokið, með lokastöðu og lokatölfræði. idle þegar spjaldið bíður eftir næsta leik; felið grafíkina þá.
winner0 eða 1 þegar leik er lokið, annars null.
match_overtrue þegar leiknum er lokið, líka eftir að spjaldið fer í idle.
last_matchAðeins í idle: síðasti leikur á spjaldinu, með lokastöðu (legs), winner, meðaltölum, auðkennum og tölfræði. Hentar fyrir lokaskjá á milli leikja. Getur verið null ef þjónustan sá ekki leikinn klárast.
match_idAuðkenni leiksins í DartConnect. Þegar það breytist er nýr leikur byrjaður á spjaldinu. Getur verið null fyrstu sekúndurnar.
eventHeiti mótsins, riðils eða umferðar eins og það er skráð í DartConnect.
format.legs_first_toLeggir sem þarf til að vinna.
leg.numberNúverandi leggur, talinn út frá stöðunni.
leg.starter0 eða 1: hvor byrjaði legginn.
throwing0 eða 1: hvor er að kasta.

Leikmenn

SviðLýsing
idFast auðkenni leikmannsins í DartConnect, það sama í öllum mótum. null ef leikmaðurinn er ekki skráður notandi í DartConnect, sem á við um suma.
keyAlltaf til staðar: id ef það er til, annars fast lykilorð búið til úr nafninu, t.d. n-sveinbjorn-hjalti. Notið key til að tengja ykkar eigin upplýsingar (nafn á skjá, félag, mynd o.s.frv.). Ef leikmaður stofnar síðar aðgang í DartConnect breytist key hans yfir í id.
nameFullt nafn eins og það er skráð í DartConnect.
displayTillaga að nafni á skjá. Íslendingar fá fornöfn („Jón Oddur“), þekktir keppendur gælunafn („Halli“), aðrir eftirnafn.
remainingÞað sem leikmaðurinn á eftir í leggnum.
last_visitSíðasta umferð. Tala, eða "BUST" / "MISS". Sama tala getur komið tvisvar í röð, svo notið darts_in_leg til að sjá hvenær ný umferð kemur.
averageMeðaltal á þrjár pílur, í leiknum og í núverandi legg.
checkoutÚtskotsleið þegar leikmaðurinn er á 170 eða minna og leið er til. Annars null. Hefðbundin leið, eða Bull-leið ef andstæðingurinn er á útskoti (sjá Gott að vita).
checkout_standardHefðbundna leiðin, óháð stöðu andstæðingsins.

Tölfræði leiksins (stats)

Kemur úr leikskýrslu DartConnect og uppfærist eftir hvern legg. Er null þar til fyrsta skýrslan liggur fyrir.

SviðLýsing
t180Fjöldi 180
t140Umferðir 140–179
t100Umferðir 100–139
highest_checkoutHæsta útskot
checkouts_100plusÚtskot upp á 100 eða meira
best_leg_dartsFæstar pílur í unnum legg
first9_avgMeðaltal fyrstu níu pílna í leggjunum
legs_wonUnnir leggir
breaksLeggir unnir þegar hinn byrjaði

Dæmi

curl

curl -H "Authorization: Bearer LYKILL" "https://SLOD/api/state?code=myjyp"

curl -N -H "Authorization: Bearer LYKILL" "https://SLOD/api/stream?code=myjyp"

Í HTML-grafík

const es = new EventSource("https://SLOD/api/stream?code=myjyp&key=LYKILL");

es.addEventListener("board", (e) => {
  const b = JSON.parse(e.data);
  if (b.status !== "live") return hide();
  const [a, c] = b.players;
  update(a, c, b.throwing);
});

Node.js

const res = await fetch("https://SLOD/api/stream?code=myjyp", {
  headers: { Authorization: "Bearer LYKILL" },
});
const reader = res.body.getReader();
const dec = new TextDecoder();
let buf = "";

while (true) {
  const { value, done } = await reader.read();
  if (done) break;                       // tengjast aftur hér
  buf += dec.decode(value, { stream: true });
  let i;
  while ((i = buf.indexOf("\n\n")) >= 0) {
    const msg = buf.slice(0, i);
    buf = buf.slice(i + 2);
    const data = msg.split("\n").find((l) => l.startsWith("data:"));
    if (msg.includes("event: board") && data) handle(JSON.parse(data.slice(5)));
  }
}

Tilbúin grafík

Ef þið viljið ekki smíða ykkar eigin: setjið þessa slóð inn sem browser source, 1920×1080. Bakgrunnurinn er gegnsær og borðið hverfur sjálft á milli leikja.

https://SLOD/grafik?code=myjyp&key=LYKILL
StillingDæmiÁhrif
accente4002bAðallitur: hringur og sá sem kastar
accent2ffd23fLitur á 180 og útskoti
panel, panel20a1530Grunnlitir borðsins
titleÚrvalsdeildinTexti neðst. Annars heiti mótsins úr DartConnect.
postopBorðið efst í stað neðst
scale0.8Stærð
showt180 eða autoTölfræðilína undir borðinu, alltaf uppi. auto skiptir á 8 sekúndna fresti.
demo1Gervileikur, til að stilla útlit án leiks

Tölfræði eftir þörfum

Tölfræðilínan kemur upp þegar ýtt er á takka og fer þegar ýtt er aftur. Í vMix má senda takka á browser source, í OBS þarf að smella á hana fyrst (Interact).

TakkiSýnir
1Fjöldi 180
2140+
3100+
4Hæsta útskot
5Fyrstu 9
6Stysti leggur
0 eða EscFela

Gott að vita