Author: Malte Bublitz
Language/File type: Python 3
Description
Zeigt ein „Zitat des Tages“ von unserem Quote-of-the-day-Server an (TCP Port 17).
Da das QOTD-Protokoll (RFC 865*; allerdings ist unser QOTD-Service nicht 100% RFC-konform) keine Unicode-Unterstützung hat, werden Umlaute etc. umgewandelt (z.B. ä zu ae); gelegentlich sind aber noch Zeichen in den „fortune-Keksen“, die für Umwandlungsfehler sorgen.
*: https://www.heise.de/netze/rfc/rfcs/rfc865.shtml
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Get a qoute of the day from the rolltreppe3 QOTD server
# over TCP port 17
#
import os
import socket
QOTD_HOST = "rt3x.de"
QOTD_PORT = 17
def get_qotd():
qotd = ""
address = (
os.getenv("QOTD_HOST", QOTD_HOST),
os.getenv("QOTD_PORT", QOTD_PORT)
)
s = socket.socket(
socket.AF_INET,
socket.SOCK_STREAM
)
s.connect(address)
while True:
data = s.recv(64)
if not data:
break
qotd += data.decode("UTF-8")
s.close()
if __name__ == "__main__":
# No newline at the end, since the data recieved
# from the server contains a leading newline
print(get_qotd(), end="")