From c25b6ef82b12e9a9f9bbd851890be6abe2a9aff2 Mon Sep 17 00:00:00 2001 From: Ringo Wantanabe Date: Tue, 14 Aug 2018 19:28:08 +0100 Subject: [PATCH] Added pause & resume --- rtbw.py | 29 ++++++++++++++++++++--------- rtbwctl.py | 2 ++ socks/transmission.py | 2 ++ 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/rtbw.py b/rtbw.py index 9433833..289468e 100644 --- a/rtbw.py +++ b/rtbw.py @@ -370,6 +370,7 @@ class Daemon(threading.Thread): self.buf = buf self.running=True self.info = info + self.paused=False threading.Thread.__init__(self) def _get(self,con, fr, ca=False): if ca: @@ -403,6 +404,12 @@ class Daemon(threading.Thread): elif cmd.uCommand == Command.CMD_INFO: #information log("[daemon]: Recieved info") con.send(json.dumps(self.info).encode("ascii")) + elif cmd.uCommand == Command.CMD_PAUSE: + log("[daemon]: Recieved pause") + self.paused = True + elif cmd.uCommand == Command.CMD_RESUME: + log("[daemon]: Recieved resume") + self.paused = False else: #unknwon command log("[daemon]: Recieved unknown command") pass @@ -466,16 +473,20 @@ if args.daemon!=None: try: while runForever or daemon.running: - log("Reading threads for %s from %d" % (args.board, last)) - posts = parse_page(args.api, args.board, "1", last) - last = pnomax(last, posts) - - if(len(posts)>0): - log("\t%d new posts since last cycle" % len(posts)) - buffer_write(buf, posts) + + if(not runForever) and daemon.paused: + log("Skipping rotation") else: - log("\tnothing new") - log("Buffer written successfully") + log("Reading threads for %s from %d" % (args.board, last)) + posts = parse_page(args.api, args.board, "1", last) + last = pnomax(last, posts) + + if(len(posts)>0): + log("\t%d new posts since last cycle" % len(posts)) + buffer_write(buf, posts) + else: + log("\tnothing new") + log("Buffer written successfully") time.sleep(int(args.timeout)) except(KeyboardInterrupt): diff --git a/rtbwctl.py b/rtbwctl.py index f975586..fbf0658 100644 --- a/rtbwctl.py +++ b/rtbwctl.py @@ -28,6 +28,8 @@ def parsecmd(s): elif s=="clear": return Command.CMD_CLEAR elif s=="get-clear": return Command.CMD_GET_CLEAR elif s=="info": return Command.CMD_INFO + elif s=="pause": return Command.CMD_PAUSE + elif s=="resume": return Command.CMD_RESUME else: return None parser = argparse.ArgumentParser(description="rtbwpy daemon control.") diff --git a/socks/transmission.py b/socks/transmission.py index 6cb5214..fcd01b7 100644 --- a/socks/transmission.py +++ b/socks/transmission.py @@ -29,6 +29,8 @@ class Command(object): CMD_SHUTDOWN = 3 CMD_GET_CLEAR = 4 CMD_INFO = 5 + CMD_PAUSE = 6 + CMD_RESUME = 7 def __init__(self): self.uCommand = 0