Hei, osaako joku sanoa miten Ylen Teksti Tv:n värikoodaukset toimivat eli ymmärrän kyllä, että esimerkiksi [tyel] - tagi tarkoittaa keltaista tekstiä, mutta mitään lopetustageja ei ole ja tämä hankaloittaa vähän rajapinnan käyttämistä.
Onko joku keksinyt jonkun kätevän tavan tämän rajapinnan tiedon näyttämiseen?
Rajapinnan käyttämiseen tarkoitettu ohje: ttv-rajapinta.doc
Olen joskus käyttänyt tätä APIa. Tägit sulkeutuvat implisiittisesti rivin lopussa.
Parsiminen onnistuu muuten hyvin, mutta g*-elementtien sisältöä en osaa tulkita.
[nbgr]
muuten vaihtaa taustan väriksi nykyisen tekstin värin. CSS:ssä se onnistuu kätevästi näin:
.nbgr { background: currentColor; }
Kiitoksia avusta. Jotain tuonkaltaista tagien sulkeutumista ajattelinkin.
Onko tuo värikoodaus jokin yleisesti käytössä oleva vai onko kyseessä Ylen oma ratkaisu?
Minun mielestäni he saisivat tehdä vähän kattavamman dokumentaation jossa olisi osio tämän datan parsimiseen.
multigamerr85 kirjoitti:
Onko tuo värikoodaus jokin yleisesti käytössä oleva vai onko kyseessä Ylen oma ratkaisu?
Olen koettanut selvittää tätä hakukoneella, mutta en ole löytänyt vastausta. Olisi tosi mielenkiintoista tietää, mistä merkintäkielestä tms. on kyse.
Eikö teksti-tv-koodaus ole suht helppo selvittää itsekin vertailemalla koodattua merkkijonoa ja graafista ulkoasua.
Voisiko joku api-keyn haltija liittää tänne Ylen teksti-tv:n etusivun koodin? Kiinnostaa nähdä millaista se on.
http://yle.fi/tekstitv/html/P100_01.html
Muoks: löytyikin:
[tblu][nbgr][gwhi]h hh p \n [tblu][nbgr][gwhi]\"d&jj,%[twhi]Teksti-TV \n [tblu][nbgr][gwhi] * *\",! \n [tcya][nbgr] [tblu]yle.fi\/tekstitv [tblu]199 PÄÄHAKEMISTO \n [gblu]#######################################\n [dhei]104 Junaliikenteen vika on korjattu \n \n [tcya]103 3 PUOLUETTA EROTTUU KUNTA-ASIOISSA \n [dhei]132 Trump paikkaili CIA-välejään \n \n [dhei]133 Voimakas järistys Tyynellämerellä \n \n \n [dhei]218 Zverev passitti Murrayn katsomoon \n \n [tgre]215 JARI-MATTI LATVALA NOUSI TOISEKSI \n [ggre]ppppppppppppppppppppppppppppppppppppppp\n [tgre][nbgr][tblu]101 UUTISET 160 TALOUS 190 ENGLISH \n [tgre][nbgr][tblu]201 URHEILU 350 RADIOT 470 VEIKKAUS \n [tgre][nbgr][tblu]300 OHJELMAT 400 SÄÄ 575 TEKSTI-TV\n [tgre][nbgr][tblu]799 SVENSKA 500 ALUEET 890 KALENTERI\n [tblu][nbgr][twhi]Mitä Suomi lukee 808\n [tblu][nbgr][twhi]Herkkupöytään: kuningatarkukko 811\n
Muoks: lisäsin koodiin rivinvaihdot rivinvaihtosymbolien perään, niin näkyy paremmin.
Äkkiseltään näyttäisi, että tägeissä t-alkuiset ovat tekstiä ja g-alkuiset 2x3-palikoista (lev x kork) koostuvaa grafiikkaa. Grafiikka dekoodautunee mm. näin:
.. .. ** h = .* p = .. # = .. .* ** ..
Lisäys: Grafiikka koodautunee ascii-merkeiksi näin:
12 Bitit = 34 57
Kuudes bitti on aina päällä (hex 20 on space, siitä ylöspäin mennään).
Eli esim. alaviiva (p) eli bitit 5 ja 7: 0111 0000 = 0x70 eli ascii-p.
Tässä vielä esimerkkitulostin tuolle Ylen teksti-tv:n etusivun yläosan grafiikalle, kielenä Python 3.
s = 'h hh p \n"d&jj,%\n * *",!' # bittimaski ja sitä vastaavat koordinaatit (maski, y, x) g = ((0x01, 0, 0), (0x02, 0, 1), (0x04, 1, 0), (0x08, 1, 1), (0x10, 2, 0), (0x40, 2, 1)) # merkkiä vastaavat piirrettävät koordinaatit def graf(c): ascii_arvo = ord(c) for maski, dy, dx in g: if maski & ascii_arvo: yield dy, dx # merkit koordinaateiksi koord = set() y = x = 0 for rivi in s.split('\n'): for c in rivi: for dy, dx in graf(c): koord.add((y + dy, x + dx)) x += 2 y += 3 x = 0 # tulostus for y in range(9): for x in range(24): print('*' if (y, x) in koord else ' ', end='') print()
Tulostaa:
* * * * * * ** * * * * * * * * **** * * * * * * * * * **
Joko tuo API on korjattu? Sitä muutaman vuoden yritin kysellä josko korjasivat. Siitä ei saanut millään speksien mukaan toteuttamalla oikeaa graafista tuotosta ulos vaikka mitä teki.
Jäi sovellusten tekeminen siihen kun heitä ei kiinnostanut :/
Aihe on jo aika vanha, joten et voi enää vastata siihen.