From 4c5755d2fc552f46903ec783bfefd1c7d80c9cb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucio=20Andr=C3=A9s=20Illanes=20Albornoz?= Date: Tue, 2 Jan 2018 22:02:36 +0100 Subject: [PATCH] pngbot.py: rate-limit `!pngbot' processing to once (1) each 45 seconds. --- pngbot.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pngbot.py b/pngbot.py index 5bc33b7..16cfa19 100755 --- a/pngbot.py +++ b/pngbot.py @@ -26,7 +26,7 @@ from itertools import chain import base64 import json import mirc2png -import os, socket, sys +import os, socket, sys, time import requests import urllib.request @@ -92,6 +92,7 @@ def main(argv0, ircServerHname, ircServerPort="6667", ircClientNick="pngbot", ir print("Connected to {}:{}.".format(ircServerHname, ircServerPort)) print("Registering on {}:{} as {}, {}, {}...".format(ircServerHname, ircServerPort, ircClientNick, ircClientIdent, ircClientGecos)) while True: + ircClientLastMessage = int(time.time()) ircServerMessage = _IrcBot.readline() if ircServerMessage == None: print("Disconnected from {}:{}.".format(ircServerHname, ircServerPort)) @@ -105,6 +106,10 @@ def main(argv0, ircServerHname, ircServerPort="6667", ircClientNick="pngbot", ir elif ircServerMessage[1] == "PRIVMSG" \ and ircServerMessage[2].lower() == ircClientChannel.lower() \ and ircServerMessage[3].startswith("!pngbot "): + if (int(time.time()) - ircClientLastMessage) < 45: + continue + else: + ircClientLastMessage = int(time.time()) asciiUrl = ircServerMessage[3].split(" ")[1] asciiTmpFilePath = "tmp.txt"; imgTmpFilePath = "tmp.png"; if os.path.isfile(asciiTmpFilePath):