diff options
author | jaseg <s@jaseg.de> | 2013-07-29 17:18:58 +0200 |
---|---|---|
committer | jaseg <s@jaseg.de> | 2013-07-29 17:18:58 +0200 |
commit | 1466970c712fbd3f8579fdc995acc80e0e115299 (patch) | |
tree | 11300ee15c8dbc080dea5c25adde14e87c596b71 /ponysay-qotd.py | |
parent | 68d4bc202e5a27f32f4cadb183d4ef479c9479fd (diff) | |
download | ponysay-1466970c712fbd3f8579fdc995acc80e0e115299.tar.gz ponysay-1466970c712fbd3f8579fdc995acc80e0e115299.tar.bz2 ponysay-1466970c712fbd3f8579fdc995acc80e0e115299.zip |
Added a QOTD protocol server (RFC865)
Diffstat (limited to 'ponysay-qotd.py')
-rwxr-xr-x | ponysay-qotd.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/ponysay-qotd.py b/ponysay-qotd.py new file mode 100755 index 0000000..2530d8f --- /dev/null +++ b/ponysay-qotd.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 +import random +from socketserver import ThreadingMixIn, TCPServer, BaseRequestHandler +import ponysay + +# Quote-Of-The-Day protocol implementation using ponysay backend +# See RFC865 ( https://tools.ietf.org/html/rfc865 ) for details. +# To prevent traffic amplification attacks we are only providing a TCP service. + +class ThreadingTCPServer(ThreadingMixIn, TCPServer): pass + +ponylist = ponysay.list_ponies_with_quotes() + +class QOTDHandler(BaseRequestHandler): + def handle(self): + pony = random.choice(ponylist) + s = ponysay.render_pony(pony, ponysay.random_quote(pony), + balloonstyle=ponysay.balloonstyles['cowsay'], + center=True, + centertext=False) + self.request.sendall(bytes(s, "UTF-8")) + +if __name__ == "__main__": + HOST, PORT = "", 8017 + server = ThreadingTCPServer((HOST, PORT), QOTDHandler) + server.serve_forever() |