Dexter
Contents |
Dexter
Dexter is a teletext/text-tv reader application, which you can quickly read web-based implementations. It is designed so that you can manually add the sites that you want to follow.
Dexter is currently in Extras-devel. It is highly under development and is not intended for the faint of heart! Please, test it at your own risk. That said, all testing and feedback is appreciated.
For feedback and discussion about Dexter
Config file
In order to enable support for various implementations of teletext sites, the site specific information can be added to a config file.
Config file is located at $HOME/.config/Dexter/dexter.conf and it can be modified directly from xterm to add/edit/remove sites.
The config file has a subsection [sites], which lists all the available text-tv sites for Dexter. Each site has a unique id number in front of every line and each line has a site specific setting parameter. After sites, there is a size parameter, which needs to be the amount of sites in this section.
Example config file
This is an example config file with two working text-tv sites.
[sites] 1\siteName=Mtv3 1\imageUrl=http://www.mtv3tekstikanava.fi/new2008/images/[page]-[2:subpage].gif 1\predictionUrl=http://www.mtv3tekstikanava.fi/new2008/[page]-01.htm 1\subPredictionUrl=http://www.mtv3tekstikanava.fi/new2008/[page]-[2:subpage].htm 1\previousPrediction="<a href=\"(\\d+)-01.htm\"><< Edellinen sivu</a>" 1\nextPrediction="<a href=\"(\\d+)-01.htm\">Seuraava sivu >></a>" 1\previousSubPrediction="<a href=\"\\d+-(\\d+).htm\"><< alasivu</a>" 1\nextSubPrediction="<a href=\"\\d+-(\\d+).htm\">alasivu >></a>" 1\startPage=100 2\siteName=Yle 2\imageUrl=http://www.yle.fi/tekstitv/images/P[page]_[2:subpage].gif 2\predictionUrl=http://www.yle.fi/tekstitv/txt/P[page]_01.html 2\subPredictionUrl=http://www.yle.fi/tekstitv/txt/P[page]_[2:subpage].html 2\previousPrediction="<A HREF=\"http://www.yle.fi/tekstitv/txt/P(\\d+)_01.html\">\\[Edellinen sivu\\]</A>" 2\nextPrediction="<A HREF=\"http://www.yle.fi/tekstitv/txt/P(\\d+)_01.html\">\\[Seuraava sivu\\]</A>" 2\previousSubPrediction="<A HREF=\"http://www.yle.fi/tekstitv/txt/P(\\d+)_(\\d+).html\">\\[Edellinen alasivu\\]</A>" 2\nextSubPrediction="<A HREF=\"http://www.yle.fi/tekstitv/txt/P(\\d+)_(\\d+).html\">\\[Seuraava alasivu\\]</A>" 2\startPage=100 size=2
Site specific parameters
- imageUrl: Where the actual image of the page is located at.
- subImageUrl: (Optional) If the site has different url scheme for main pages and subpages, this can be used. Defaults to imageUrl if not set.
- predictionUrl: A html page where the previous/next page number can be found and parsed
- subPredictionUrl: Similar, but for parsing subpage prediction
- previousPrediction: Regular expression to find the previous page number. Find this from the source code and replace page number with (\\d+).
- nextPrediction: Similar, but for next page.
- previousSubPrediction: Similar, but for previous subpage.
- nextSubPrediction: Similar, but for next subpage.
- startPage: This page is loaded at first when you select the site.
Url variables for config parameters
There are a few variables that should be used when defining url's for the sites. These are [page], [subpage] and [topicpage].
Dexter will replace these variables with the correct value on the fly.
- [page]: The current page number
- [subpage]: The current subpage number
- [x:subpage]: The current subpage with x amount of padding. For example subpage 2 when x is 4 = 0002.
- [topicpage]: The topic page for the current page. For example, for a page number 165, topic page would be 100. For 401, topic page would be 400.
Replace page numbers in the url with these variables. This is needed for Dexter to work properly.
Prediction regular expressions
In order for Dexter to be able to "predict" the next/previous page, regular expressions are used. Dexter will match the regular expression and find the correct prediction. For example, if you are at page 145 and next page is 168, user presses next page, it will know to go to 168 instead of trying page number 146.
Regular expressions need to specify the string that has the information about the wanted prediction. When there are page numbers in the regular expression, make sure to use \\d+ instead of the static number. When you have the number you want, replace the static number with (\\d+). This will tell Dexter to save that as the predicted page number.
Important note: Remember to escape all the needed characters, for example ? needs to be \\? in order for the regular expression to work.
Working teletext/text-tv sites
Here is the list of teletext/text-tv sites found working with Dexter. When you find a new one, please add it to the list under the correct country. Also, the unique number at the beginning of every parameter should be replaced with "x", so that they don't collide. When you copy an entry, make sure to change this value to be a unique value for your config.
Finland
Yle
x\siteName=Yle x\imageUrl=http://www.yle.fi/tekstitv/images/P[page]_[2:subpage].gif x\predictionUrl=http://www.yle.fi/tekstitv/txt/P[page]_01.html x\subPredictionUrl=http://www.yle.fi/tekstitv/txt/P[page]_[2:subpage].html x\previousPrediction="<A HREF=\"http://www.yle.fi/tekstitv/txt/P(\\d+)_01.html\">\\[Edellinen sivu\\]</A>" x\nextPrediction="<A HREF=\"http://www.yle.fi/tekstitv/txt/P(\\d+)_01.html\">\\[Seuraava sivu\\]</A>" x\previousSubPrediction="<A HREF=\"http://www.yle.fi/tekstitv/txt/P\\d+_(\\d+).html\">\\[Edellinen alasivu\\]</A>" x\nextSubPrediction="<A HREF=\"http://www.yle.fi/tekstitv/txt/P\\d+_(\\d+).html\">\\[Seuraava alasivu\\]</A>" x\startPage=100
Mtv3
x\siteName=Mtv3 x\imageUrl=http://www.mtv3tekstikanava.fi/new2008/images/[page]-[2:subpage].gif x\predictionUrl=http://www.mtv3tekstikanava.fi/new2008/[page]-01.htm x\subPredictionUrl=http://www.mtv3tekstikanava.fi/new2008/[page]-[2:subpage].htm x\previousPrediction="<a href=\"(\\d+)-01.htm\"><< Edellinen sivu</a>" x\nextPrediction="<a href=\"(\\d+)-01.htm\">Seuraava sivu >></a>" x\previousSubPrediction="<a href=\"\\d+-(\\d+).htm\"><< alasivu</a>" x\nextSubPrediction="<a href=\"\\d+-(\\d+).htm\">alasivu >></a>" x\startPage=100
Nelonen
x\siteName=Nelonen x\imageUrl=http://www.nelonen.fi/teksti4/pages/[page]_[4:subpage].gif x\predictionUrl=http://www.nelonen.fi/teksti4/?page=[page] x\subPredictionUrl=http://www.nelonen.fi/teksti4/?page=[page]&subpage=[subpage] x\previousPrediction="<a href=\".page=(\\d+)\"><img src=\"images/alalaita_edellinen.gif\".+></a>" x\nextPrediction="<a href=\".page=(\\d+)\"><img src=\"images/alalaita_seuraava.gif\".+></a>" x\previousSubPrediction="<a href=\".page=\\d+&subpage=(\\d+)\"><img src=\"images/alalaita_edellinen_ala.gif\".+></a>" x\nextSubPrediction="<a href=\".page=\\d+&subpage=(\\d+)\"><img src=\"images/alalaita_seuraava_ala.gif\".+></a>" x\startPage=101
Sweden
TV4
Note: Subpages not working
x\siteName=TV4 x\imageUrl=http://www.nyhetskanalen.se/texttv-files/images/1/P[page]S[2:subpage].gif x\predictionUrl=http://www.nyhetskanalen.se/1.633665?page=[page] x\subPredictionUrl=http://www.nyhetskanalen.se/1.633665?page=[page] x\previousPrediction="href=\"\\?page=(\\d+)\" class=\"previous" x\nextPrediction="href=\"\\?page=(\\d+)\" class=\"next" x\previousSubPrediction="" x\nextSubPrediction="" x\startPage=100
Netherlands
NOS
x\siteName=NOS x\imageUrl=http://teletekst.nos.nl/gif/images/[page]-[2:subpage].gif x\predictionUrl=http://teletekst.nos.nl/gif/[page]-[2:subpage].html x\subPredictionUrl=http://teletekst.nos.nl/gif/[page]-[2:subpage].html x\previousPrediction="<a href=\"(\\d+)-\\d+.html\"><img src=\"/gfx/i-buttons/back.gif\"" x\nextPrediction="<a href=\"(\\d+)-\\d+.html\"><img src=\"/gfx/i-buttons/forward.gif\"" x\previousSubPrediction="<a href=\"\\d+-(\\d+).html\"><img src=\"/gfx/i-buttons/sub_back.gif\"" x\nextSubPrediction="<a href=\"\\d+-(\\d+).html\"><img src=\"/gfx/i-buttons/sub_forward.gif\"" x\startPage=100
Austria
ORF
x\siteName=ORF x\imageUrl=http://teletext.orf.at/[topicpage]/[page]_[4:subpage].png x\predictionUrl=http://teletext.orf.at/[topicpage]/[page]_[4:subpage].htm x\subPredictionUrl=http://teletext.orf.at/[topicpage]/[page]_[4:subpage].htm x\previousPrediction="<a href=\"(\\d+)_\\d+.htm\" accesskey=\"1\">" x\nextPrediction="<a href=\"(\\d+)_\\d+.htm\" accesskey=\"2\">" x\previousSubPrediction="<a href=\"\\d+_(\\d+).htm\" accesskey=\"3\">" x\nextSubPrediction="<a href=\"\\d+_(\\d+).htm\" accesskey=\"4\">" x\startPage=100
3sat
3sat broadcasts in Germany and Switzerland as well
x\siteName=3sat x\imageUrl=http://www.3sat.de/vtx3sat_clone/[topicpage]/[page]_[4:subpage].png x\predictionUrl=http://www.3sat.de/vtx3sat.php?url=[page]_[4:subpage].htm x\subPredictionUrl=http://www.3sat.de/vtx3sat.php?url=[page]_[4:subpage].htm x\previousPrediction="url=(\\d+)_\\d+.htm\">zurück</a>" x\nextPrediction="url=(\\d+)_\\d+.htm\">vor</a>" x\previousSubPrediction="url=\\d+_(\\d+).htm\"><<</a>" x\nextSubPrediction="url=\\d+_(\\d+).htm\">>></a>" x\startPage=100
sat.1 Austria
x\siteName=sat.1 Austria x\imageUrl=http://www.sat1.at/service/teletext/cache_at/[page]_[2:subpage].png x\predictionUrl=http://www.sat1.at/service/teletext/index.php?pagnr=[page]_[2:subpage] x\subPredictionUrl=http://www.sat1.at/service/teletext/index.php?pagnr=[page]_[2:subpage] x\previousPrediction="pagnr=(\\d+)_\\d+&trynext=-1\" class=\"teletext_numberBtn\">-</a>" x\nextPrediction="pagnr=(\\d+)_\\d+&trynext=1\" class=\"teletext_numberBtn\">\\+</a>" x\previousSubPrediction="pagnr=\\d+_(\\d+)\" class=\"teletext_numberBtn\"><</a>" x\nextSubPrediction="pagnr=\\d+_(\\d+)\" class=\"teletext_numberBtn\">></a>" x\startPage=100
Italy
RAI
x\siteName=RAI x\imageUrl=http://www.televideo.rai.it/televideo/pub/tt4web/Nazionale/page-[page].png x\subImageUrl=http://www.televideo.rai.it/televideo/pub/tt4web/Nazionale/page-[page].[subpage].png x\predictionUrl=http://www.televideo.rai.it/televideo/pub/solotesto.jsp?&pagina=[page]&sottopagina=1 x\subPredictionUrl=http://www.televideo.rai.it/televideo/pub/solotesto.jsp?&pagina=[page]&sottopagina=[subpage] x\previousPrediction="<a alt=\"Pagina Precedente\" href=\"solotesto.jsp\\?pagina=(\\d+)&sottopagina=1\">" x\nextPrediction="<a alt=\"Pagina Successiva\" href=\"solotesto.jsp\\?pagina=(\\d+)&sottopagina=1\">" x\previousSubPrediction="<a alt=\"Sottopagina precedente\" href=\"solotesto.jsp\\?pagina=\\d+&sottopagina=(\\d+)\">" x\nextSubPrediction="<a alt=\"Sottopagina successiva\" href=\"solotesto.jsp\\?pagina=\\d+&sottopagina=(\\d+)\">" x\startPage=100 x\pad=1
Switzerland
sat.1 Switzerland
x\siteName=sat.1 Schweiz x\imageUrl=http://www.sat1.ch/service/teletext/cache_ch/[page]_[2:subpage].png x\predictionUrl=http://www.sat1.ch/service/teletext/index.php?pagnr=[page]_[2:subpage] x\subPredictionUrl=http://www.sat1.ch/service/teletext/index.php?pagnr=[page]_[2:subpage] x\previousPrediction="pagnr=(\\d+)_\\d+&trynext=-1\" class=\"teletext_numberBtn\">-</a>" x\nextPrediction="pagnr=(\\d+)_\\d+&trynext=1\" class=\"teletext_numberBtn\">\\+</a>" x\previousSubPrediction="pagnr=\\d+_(\\d+)\" class=\"teletext_numberBtn\"><</a>" x\nextSubPrediction="pagnr=\\d+_(\\d+)\" class=\"teletext_numberBtn\">></a>" x\startPage=100
Germany
BR Bayerntext
x\siteName=Bayerntext (BR) x\imageUrl=http://www.br-online.de/content/import/bayerntext/pngData/[topicpage]/[page]_[4:subpage].png x\predictionUrl=http://www.br-online.de/content/import/bayerntext/pngData/[topicpage]/[page]_[4:subpage].htm x\subPredictionUrl=http://www.br-online.de/content/import/bayerntext/pngData/[topicpage]/[page]_[4:subpage].htm x\previousPrediction="<a href=\"(\\d+)_\\d+.htm\">\\d+<<</a>" x\nextPrediction=";<a href=\"(\\d+)_\\d+.htm\">>>\\d+</a>" x\previousSubPrediction="<a href=\"\\d+_(\\d+).htm\"><<</a>" x\nextSubPrediction="<a href=\"\\d+_(\\d+).htm\">>></a>" x\startPage=100