Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Ylen Teksti-Tv rajapinta ja värikoodaus

Sivun loppuun

multigamerr85 [20.01.2017 09:09:14]

#

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

HTML5 [20.01.2017 13:42:12]

#

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; }

multigamerr85 [20.01.2017 15:32:07]

#

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.

HTML5 [20.01.2017 20:24:23]

#

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.

Chiman [22.01.2017 14:03:27]

#

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.

Chiman [22.01.2017 19:08:55]

#

Ä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.

Chiman [23.01.2017 14:09:01]

#

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:

 *   * *
 *   * *  **
 *   * * *  *
  * *  * ****
   *   * *
   *   * *  *
   *   *  **

feenix [25.01.2017 16:15:46]

#

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 :/


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta