rt3x.de NoPaste

qotd.py

This is a nopaste service, powered by Flying Paste.

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="")