Last active
June 8, 2021 11:42
-
-
Save jtangelder/32b7af5031a4e22198c6 to your computer and use it in GitHub Desktop.
CLI teletekst.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import urllib.request | |
import urllib.error | |
import json | |
import re | |
import cmd | |
import html | |
def getTeletekstPage(page): | |
url = 'http://teletekst-data.nos.nl/json/%s' % (page) | |
res = urllib.request.urlopen(url) | |
return json.loads(res.read().decode('utf-8')) | |
def parseLine(line): | |
line = re.sub(r"<[^<>]+>", "", line) | |
line = re.sub(r"&\#x[a-zA-Z0-9]+;", "█", line) | |
return html.unescape(line); | |
def printContent(content): | |
lines = content.splitlines(); | |
for line in lines: | |
print(parseLine(line)) | |
class TeletekstShell(cmd.Cmd): | |
prompt = '(teletekst) ' | |
def onecmd(self, pageId): | |
try: | |
page = getTeletekstPage(pageId) | |
printContent(page.get('content')) | |
except urllib.error.HTTPError as err: | |
print(err.reason) | |
if __name__ == '__main__': | |
TeletekstShell().cmdloop() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment