From 22a665c9b8c22c83e0a14eaa4ac39311feef6354 Mon Sep 17 00:00:00 2001 From: Wilfried Klaebe Date: Sat, 30 Jun 2018 15:25:00 +0200 Subject: [PATCH 01/17] revamp credentials.json and login - use existing access_token --- credentials.json | 5 +++-- redpill.py | 28 +++++++++++++++------------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/credentials.json b/credentials.json index e3db49c..2d681f7 100644 --- a/credentials.json +++ b/credentials.json @@ -1,5 +1,6 @@ { - "username":"@username:homeserver.org", + "home_server":"homeserver.org", + "username":"username", "password":"cantguessthis", - "server":"https://myhomeserver.org:8910" + "base_url":"https://myhomeserver.org:8910" } diff --git a/redpill.py b/redpill.py index 117fc7c..b8cc5fc 100644 --- a/redpill.py +++ b/redpill.py @@ -18,15 +18,15 @@ #requests.packages.urllib3.disable_warnings() def loadCredentials(filename): - global password, username, server - json_data = open(filename) - data = json.load(json_data) - json_data.close() + global server, base_url, username, access_token, password + with open(filename) as json_data: + data = json.load(json_data) + server = data["home_server"] + base_url = data.get("base_url", "https://{}".format(server)) username = data["username"] - password = data["password"] - server = data["server"] - + access_token = data.get("access_token", None) + password = None if access_token else data["password"] def processMessage(obj): global room, rooms, lastEventRoom, room_keys @@ -65,7 +65,8 @@ def getFirstRoomAlias(r): def start(stdscr): - global size, room, data, rooms, access_token, endTime, rooms, all_rooms, lastEventRoom, room_keys + global server, base_url, username, access_token, password + global size, room, data, rooms, endTime, rooms, all_rooms, lastEventRoom, room_keys curses.curs_set(0) curses.use_default_colors() @@ -75,11 +76,12 @@ def start(stdscr): stdscr.refresh() loadCredentials("./credentials.json") - client = MatrixClient(server) - access_token = client.login_with_password( - username, - password, - size[0]) + client = MatrixClient(base_url, token=access_token, user_id='@{}:{}'.format(username, server)) + if access_token is None: + access_token = client.login_with_password( + username, + password, + size[0]) rooms = client.get_rooms() From 4f800a42c1181add325e5072ebbfc13b3b6ab2f5 Mon Sep 17 00:00:00 2001 From: Wilfried Klaebe Date: Sat, 30 Jun 2018 15:26:02 +0200 Subject: [PATCH 02/17] introduce log() --- redpill.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/redpill.py b/redpill.py index b8cc5fc..9d5e265 100644 --- a/redpill.py +++ b/redpill.py @@ -17,6 +17,10 @@ #from requests import requests #requests.packages.urllib3.disable_warnings() +def log(obj, filename='redpill.log'): + with open(filename, 'a') as the_file: + the_file.write(str(obj) + "\n") + def loadCredentials(filename): global server, base_url, username, access_token, password with open(filename) as json_data: @@ -31,9 +35,7 @@ def loadCredentials(filename): def processMessage(obj): global room, rooms, lastEventRoom, room_keys - with open('event.log', 'a') as the_file: - the_file.write(str(obj) + "\n") - + log(obj, 'redpill-event.log') if "room_id" in obj: if room != all_rooms: From 47875a200af679a41f3672b9425d6e3a486c67ab Mon Sep 17 00:00:00 2001 From: Wilfried Klaebe Date: Sat, 30 Jun 2018 15:26:48 +0200 Subject: [PATCH 03/17] log exceptions for debugging --- redpill.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/redpill.py b/redpill.py index 9d5e265..a2d09c2 100644 --- a/redpill.py +++ b/redpill.py @@ -680,7 +680,13 @@ def start(stdscr): main_screen.keypad(1) curses.start_color() - start(main_screen) + try: + start(main_screen) + except: + import traceback + with open('redpill-exception.log', 'a') as f: + traceback.print_exc(file=f) + raise except curses.error: curses.nocbreak() From 5b00c6d310e0dd4b95a7c868f0984bfa9661fb95 Mon Sep 17 00:00:00 2001 From: Wilfried Klaebe Date: Sat, 30 Jun 2018 15:27:24 +0200 Subject: [PATCH 04/17] rename sends.log --- redpill.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redpill.py b/redpill.py index a2d09c2..067fbab 100644 --- a/redpill.py +++ b/redpill.py @@ -533,7 +533,7 @@ def start(stdscr): nextRoom = (nextRoom + 1) % len(rooms) the_room_to_post_to = None elif c == 10: # enter - with open('sends.log', 'a') as the_file: + with open('redpill-sends.log', 'a') as the_file: the_file.write("the_room_to_post_to:" + str(the_room_to_post_to) + "\n") the_file.write("lastEventRoom: " + str(lastEventRoom) + "\n") the_file.write("room: " + str(room) + "\n") From b9ed534083c7efe43a661a82285bd97cd56621e2 Mon Sep 17 00:00:00 2001 From: Wilfried Klaebe Date: Sat, 30 Jun 2018 15:29:09 +0200 Subject: [PATCH 05/17] remove duplicate globals, remove unused variable endTime --- redpill.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/redpill.py b/redpill.py index 067fbab..7c663ce 100644 --- a/redpill.py +++ b/redpill.py @@ -68,7 +68,7 @@ def getFirstRoomAlias(r): def start(stdscr): global server, base_url, username, access_token, password - global size, room, data, rooms, endTime, rooms, all_rooms, lastEventRoom, room_keys + global size, room, rooms, all_rooms, lastEventRoom, room_keys curses.curs_set(0) curses.use_default_colors() @@ -94,7 +94,6 @@ def start(stdscr): room_keys = list(rooms.keys()) room = all_rooms #room_keys[1] # "all_rooms" nextRoom = 1 - endTime = client.end curses.halfdelay(10) maxDisplayName = 24 From afc5fce91683c5d7f99353cda1b2653509b46b9f Mon Sep 17 00:00:00 2001 From: Wilfried Klaebe Date: Sat, 30 Jun 2018 15:31:06 +0200 Subject: [PATCH 06/17] "Rooms(client, all_rooms)" fails because all_rooms doesn't start with '!'. --- redpill.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/redpill.py b/redpill.py index 7c663ce..c0e6dd2 100644 --- a/redpill.py +++ b/redpill.py @@ -88,9 +88,8 @@ def start(stdscr): rooms = client.get_rooms() all_rooms = "all rooms" - rooms[all_rooms] = Room(client, all_rooms) + rooms[all_rooms] = all_rooms - rooms[all_rooms].events = [] room_keys = list(rooms.keys()) room = all_rooms #room_keys[1] # "all_rooms" nextRoom = 1 From c51d2105ae690882e2e2258fb741d7cb4ebe0094 Mon Sep 17 00:00:00 2001 From: Wilfried Klaebe Date: Sat, 30 Jun 2018 15:35:36 +0200 Subject: [PATCH 07/17] handle "all rooms" not being a Room() anymore --- redpill.py | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/redpill.py b/redpill.py index c0e6dd2..8a41c83 100644 --- a/redpill.py +++ b/redpill.py @@ -115,36 +115,39 @@ def start(stdscr): stdscr.clear() + line = "redpill v0.7" + line += " · screen size: " + str(size) + if isinstance(rooms[room], Room): + line += " · chat size: " + str(len(rooms[room].events)) + line += " · room: " + # we want NAME aka ALIAS[0] (ROOM_ID) # or 2nd choice: ALIAS[0] (ROOM_ID) # or fallback: ROOM_ID - line = str(room) - if line == all_rooms: - pass - elif rooms[room].name is None: - if len(rooms[room].aliases) > 0 and rooms[room].aliases[0] != room: - line = rooms[room].aliases[0] + " (" + line + ")" - else: + if room == all_rooms: + line += str(room) + elif rooms[room].name: if len(rooms[room].aliases) > 0 and rooms[room].aliases[0] != room: - line = rooms[room].name + " aka " + getFirstRoomAlias(rooms[room]) + " (" + line + ")" + line += rooms[room].name + " aka " + getFirstRoomAlias(rooms[room]) + " (" + str(room) + ")" + elif rooms[room].name != room: + line += rooms[room].name + " (" + str(room) + ")" else: - if rooms[room].name != room: - line = rooms[room].name + " (" + line + ")" + line += str(room) + elif len(rooms[room].aliases) > 0 and rooms[room].aliases[0] != room: + line += rooms[room].aliases[0] + " (" + str(line) + ")" + else: + line += str(room) #line.encode("utf-8") - if rooms[room].topic is not None: + if isinstance(rooms[room], Room) and rooms[room].topic is not None: line += " · topic: " + rooms[room].topic - stdscr.addstr( - 0, 0, ( - "redpill v0.7 · screen size: " + str(size) + " · chat size: " - + str(len(rooms[room].events)) + " · room: " + str(line) + " the variables: room: " + room + " last: " - + lastEventRoom - ), curses.A_UNDERLINE - ) + line += " · variables: room: " + room + ", last: " + lastEventRoom + ", nextRoom: " + str(nextRoom) + + stdscr.addstr(0, 0, line, curses.A_UNDERLINE) - current = len(rooms[room].events) - 1 + current = len(rooms[room].events) - 1 if isinstance(rooms[room], Room) else -1 if True: y = 1 From 0fa268295ee691af55b002d08f64f3450b525d37 Mon Sep 17 00:00:00 2001 From: Wilfried Klaebe Date: Sat, 30 Jun 2018 15:38:18 +0200 Subject: [PATCH 08/17] there is no "user_id" in events, only "sender". --- redpill.py | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/redpill.py b/redpill.py index 8a41c83..5aba8fc 100644 --- a/redpill.py +++ b/redpill.py @@ -212,11 +212,7 @@ def start(stdscr): ).strftime('%Y-%m-%d %H:%M:%S') # assumption: body == normal message - length = 0 - if "user_id" in event: - length = len( - event["user_id"] - ) + length = len(event["sender"]) if "sender" in event else 0 if "body" in event["content"]: rawText = event["content"]["body"].encode('utf-8') @@ -358,7 +354,7 @@ def start(stdscr): curses.A_BOLD ) - usern = event["user_id"] + usern = event["sender"] if length > maxDisplayName: usern = usern[:maxDisplayName - 3] + "..." @@ -427,7 +423,7 @@ def start(stdscr): stdscr.addstr( currentLine, displayNamestartingPos + 1, - str(event["user_id"]), + str(event["sender"]), curses.A_DIM + curses.A_UNDERLINE ) stdscr.addstr( @@ -440,7 +436,7 @@ def start(stdscr): stdscr.addstr( currentLine, displayNamestartingPos + 1, - str(event["user_id"]), + str(event["sender"]), curses.A_DIM ) stdscr.addstr( @@ -456,7 +452,7 @@ def start(stdscr): currentLine, displayNamestartingPos + 1 + maxDisplayName - length, - str(event["user_id"]), + str(event["sender"]), curses.A_DIM + curses.A_UNDERLINE ) stdscr.addstr( @@ -470,7 +466,7 @@ def start(stdscr): currentLine, displayNamestartingPos + 1 + maxDisplayName - length, - str(event["user_id"]), + str(event["sender"]), curses.A_DIM ) stdscr.addstr( From 450a34d6e8225280f5d8ce6c3daec941ba9b2f52 Mon Sep 17 00:00:00 2001 From: Wilfried Klaebe Date: Sat, 30 Jun 2018 15:39:49 +0200 Subject: [PATCH 09/17] only decrease currentLine if something is output --- redpill.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/redpill.py b/redpill.py index 5aba8fc..ba1ed82 100644 --- a/redpill.py +++ b/redpill.py @@ -198,7 +198,7 @@ def start(stdscr): else: #currentLine = size[0] - y - currentLine -= 1 + #currentLine -= 1 if currentLine < 3: # how many lines we want to reserve break @@ -295,7 +295,6 @@ def start(stdscr): linesNeeded += (displayNamestartingPos + maxDisplayName + 3 + len(buf)) / size[1] buf = "" - currentLine -= linesNeeded if currentLine - linesNeeded < 2: # how many lines we want to reserve break @@ -313,6 +312,7 @@ def start(stdscr): #if linesNeeded == 0: linesNeeded += 1 + currentLine -= linesNeeded for i in range(linesNeeded): buf = rawText[:size[1] - pad] @@ -341,6 +341,8 @@ def start(stdscr): else: # TODO: need to split this out to get proper underline + + currentLine -= linesNeeded if currentLine == size[0] - 2: stdscr.addstr( currentLine, displayNamestartingPos + @@ -418,6 +420,7 @@ def start(stdscr): elif event["content"]["membership"] == "leave": buf = " has left" + currentLine -= 1 if length > maxDisplayName: if currentLine == size[0] - 2: stdscr.addstr( From ed677c652668c0890c53a0038c621bd593b2ba1a Mon Sep 17 00:00:00 2001 From: Wilfried Klaebe Date: Sat, 30 Jun 2018 15:42:12 +0200 Subject: [PATCH 10/17] don't encode() rawText to bytearray to have following comparisons work --- redpill.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redpill.py b/redpill.py index ba1ed82..9870762 100644 --- a/redpill.py +++ b/redpill.py @@ -215,7 +215,7 @@ def start(stdscr): length = len(event["sender"]) if "sender" in event else 0 if "body" in event["content"]: - rawText = event["content"]["body"].encode('utf-8') + rawText = event["content"]["body"] # .encode('utf-8') if event["content"]["msgtype"] == "m.emote": if len(rawText) > 0 and rawText[0] == " ": From f4e6990923fefa9207e272b758222ecc258a9ac6 Mon Sep 17 00:00:00 2001 From: Wilfried Klaebe Date: Sat, 30 Jun 2018 15:43:02 +0200 Subject: [PATCH 11/17] keep linesNeeded int --- redpill.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/redpill.py b/redpill.py index 9870762..ca14693 100644 --- a/redpill.py +++ b/redpill.py @@ -247,9 +247,9 @@ def start(stdscr): buf += bufSinceLastWord if PAD_COMMENTS or first: - linesNeeded += (displayNamestartingPos + maxDisplayName + 3 + len(buf)) / size[1] + linesNeeded += int((displayNamestartingPos + maxDisplayName + 3 + len(buf)) / size[1]) else: - linesNeeded += len(buf) / size[1] + linesNeeded += int(len(buf) / size[1]) first = False lineByLineText.append(buf) @@ -292,7 +292,7 @@ def start(stdscr): # self.X += 1 buf += bufSinceLastWord lineByLineText.append(buf) - linesNeeded += (displayNamestartingPos + maxDisplayName + 3 + len(buf)) / size[1] + linesNeeded += int((displayNamestartingPos + maxDisplayName + 3 + len(buf)) / size[1]) buf = "" if currentLine - linesNeeded < 2: # how many lines we want to reserve From c375cb57d7a4892ccb0460e660b39d16d81eb827 Mon Sep 17 00:00:00 2001 From: Wilfried Klaebe Date: Sat, 30 Jun 2018 15:43:58 +0200 Subject: [PATCH 12/17] more logging --- redpill.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/redpill.py b/redpill.py index ca14693..a7f2426 100644 --- a/redpill.py +++ b/redpill.py @@ -165,6 +165,9 @@ def start(stdscr): stdscr.addstr(currentLine - 1, 0, space, curses.A_UNDERLINE) for event in reversed(rooms[room].events): + log(event) + log("maxDisplayName: {}, size: {}, currentLine: {}".format(maxDisplayName, size, currentLine)) + if event["type"] == "m.typing": #if True: continue # do something clever @@ -213,6 +216,8 @@ def start(stdscr): # assumption: body == normal message length = len(event["sender"]) if "sender" in event else 0 + log("length: {}, currentLine: {}".format(length, currentLine)) + if "body" in event["content"]: rawText = event["content"]["body"] # .encode('utf-8') @@ -529,6 +534,7 @@ def start(stdscr): if c == 9: #stdscr.addstr(1, 0, "%s was pressed\n" % c) + log("key pressed: 0x{:X}".format(c)) room = room_keys[nextRoom] nextRoom = (nextRoom + 1) % len(rooms) the_room_to_post_to = None From ebf271f64a5f6aa59b75ebc78183978d954b3980 Mon Sep 17 00:00:00 2001 From: Wilfried Klaebe Date: Sat, 30 Jun 2018 15:47:06 +0200 Subject: [PATCH 13/17] remove some dead code and commented-out sections --- redpill.py | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/redpill.py b/redpill.py index a7f2426..719cee8 100644 --- a/redpill.py +++ b/redpill.py @@ -91,7 +91,7 @@ def start(stdscr): rooms[all_rooms] = all_rooms room_keys = list(rooms.keys()) - room = all_rooms #room_keys[1] # "all_rooms" + room = all_rooms nextRoom = 1 curses.halfdelay(10) @@ -139,7 +139,6 @@ def start(stdscr): else: line += str(room) - #line.encode("utf-8") if isinstance(rooms[room], Room) and rooms[room].topic is not None: line += " · topic: " + rooms[room].topic @@ -226,16 +225,6 @@ def start(stdscr): if len(rawText) > 0 and rawText[0] == " ": rawText = rawText[1:] - linesNeeded = (displayNamestartingPos + maxDisplayName + 3 + len(rawText)) / size[1] - lin = (displayNamestartingPos + maxDisplayName + 3 + len(rawText)) - - #if currentLine == size[0] - 2: - # stdscr.addstr(currentLine, 0, str(lin) + " " + str(size[1]) + " " + str(linesNeeded) + " ", curses.A_UNDERLINE) - #else: - # stdscr.addstr(currentLine, 0, str(lin) + " " + str(size[1]) + " " + str(linesNeeded) + " ") - - - linesNeeded = 0 buf = "" @@ -303,19 +292,9 @@ def start(stdscr): if currentLine - linesNeeded < 2: # how many lines we want to reserve break - if currentLine == size[0] - 2: - stdscr.addstr(currentLine, 0, str(lin) + " " + str(size[1]) + " " + str(linesNeeded) + " ", curses.A_UNDERLINE) - else: - stdscr.addstr(currentLine, 0, str(lin) + " " + str(size[1]) + " " + str(linesNeeded) + " ") - - #for i in range(linesNeeded): - - if PAD_COMMENTS: pad = displayNamestartingPos + maxDisplayName + 3 - - #if linesNeeded == 0: linesNeeded += 1 currentLine -= linesNeeded From 1432fc8501d0c4e265b230957274b4ee2523efd8 Mon Sep 17 00:00:00 2001 From: Wilfried Klaebe Date: Sat, 30 Jun 2018 15:53:49 +0200 Subject: [PATCH 14/17] next_room = 1 makes the first round of tabbing around the room list stumble --- redpill.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/redpill.py b/redpill.py index 719cee8..a7f6f76 100644 --- a/redpill.py +++ b/redpill.py @@ -91,8 +91,8 @@ def start(stdscr): rooms[all_rooms] = all_rooms room_keys = list(rooms.keys()) - room = all_rooms - nextRoom = 1 + nextRoom = room_keys.index(all_rooms) + room = room_keys[nextRoom] curses.halfdelay(10) maxDisplayName = 24 From f620a4ffbbbb74f6822b2e87d9dbf1b9ea2258ba Mon Sep 17 00:00:00 2001 From: Wilfried Klaebe Date: Sat, 30 Jun 2018 15:54:19 +0200 Subject: [PATCH 15/17] re-break lines for readability --- redpill.py | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/redpill.py b/redpill.py index a7f6f76..5157c11 100644 --- a/redpill.py +++ b/redpill.py @@ -305,15 +305,17 @@ def start(stdscr): if currentLine + i == size[0] - 2: stdscr.addstr( - currentLine + i, displayNamestartingPos + - maxDisplayName + 3, lineByLineText[i], + currentLine + i, + displayNamestartingPos + maxDisplayName + 3, + lineByLineText[i], curses.A_BOLD + curses.A_UNDERLINE ) else: try: stdscr.addstr( - currentLine + i, displayNamestartingPos + - maxDisplayName + 3, lineByLineText[i], + currentLine + i, + displayNamestartingPos + maxDisplayName + 3, + lineByLineText[i], curses.A_BOLD ) except: @@ -329,14 +331,16 @@ def start(stdscr): currentLine -= linesNeeded if currentLine == size[0] - 2: stdscr.addstr( - currentLine, displayNamestartingPos + - maxDisplayName + 3, rawText, + currentLine, + displayNamestartingPos + maxDisplayName + 3, + rawText, curses.A_BOLD + curses.A_UNDERLINE ) else: stdscr.addstr( - currentLine, displayNamestartingPos + - maxDisplayName + 3, rawText, + currentLine, + displayNamestartingPos + maxDisplayName + 3, + rawText, curses.A_BOLD ) @@ -346,17 +350,18 @@ def start(stdscr): usern = usern[:maxDisplayName - 3] + "..." if event["content"]["msgtype"] == "m.emote": - usern = "* " + usern if currentLine == size[0] - 2: stdscr.addstr( - currentLine, displayNamestartingPos + max(0, maxDisplayName - length), + currentLine, + displayNamestartingPos + max(0, maxDisplayName - length), str(usern), curses.A_UNDERLINE + curses.A_BOLD ) else: stdscr.addstr( - currentLine, displayNamestartingPos + max(0, maxDisplayName - length), + currentLine, + displayNamestartingPos + max(0, maxDisplayName - length), str(usern), curses.A_BOLD ) @@ -364,13 +369,15 @@ def start(stdscr): usern = "<" + usern + ">" if currentLine == size[0] - 2: stdscr.addstr( - currentLine, displayNamestartingPos + max(0, maxDisplayName - length), + currentLine, + displayNamestartingPos + max(0, maxDisplayName - length), str(usern), curses.A_UNDERLINE ) else: stdscr.addstr( - currentLine, displayNamestartingPos + max(0, maxDisplayName - length), + currentLine, + displayNamestartingPos + max(0, maxDisplayName - length), str(usern) ) From b6cb4cfe88fd5f8f3292fb407999d6f65200c583 Mon Sep 17 00:00:00 2001 From: Wilfried Klaebe Date: Sat, 30 Jun 2018 16:03:12 +0200 Subject: [PATCH 16/17] fix up thinko around nextRoom --- redpill.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/redpill.py b/redpill.py index 5157c11..a5b1ea1 100644 --- a/redpill.py +++ b/redpill.py @@ -91,8 +91,8 @@ def start(stdscr): rooms[all_rooms] = all_rooms room_keys = list(rooms.keys()) - nextRoom = room_keys.index(all_rooms) - room = room_keys[nextRoom] + room = all_rooms + nextRoom = (room_keys.index(room) + 1) % len(room_keys) curses.halfdelay(10) maxDisplayName = 24 From 7352c8b6d6a5f807bc6d89ce2c924b97bc10b4c1 Mon Sep 17 00:00:00 2001 From: Wilfried Klaebe Date: Sat, 30 Jun 2018 16:06:24 +0200 Subject: [PATCH 17/17] remove nextRoom --- redpill.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/redpill.py b/redpill.py index a5b1ea1..42251f0 100644 --- a/redpill.py +++ b/redpill.py @@ -92,7 +92,6 @@ def start(stdscr): room_keys = list(rooms.keys()) room = all_rooms - nextRoom = (room_keys.index(room) + 1) % len(room_keys) curses.halfdelay(10) maxDisplayName = 24 @@ -142,7 +141,7 @@ def start(stdscr): if isinstance(rooms[room], Room) and rooms[room].topic is not None: line += " · topic: " + rooms[room].topic - line += " · variables: room: " + room + ", last: " + lastEventRoom + ", nextRoom: " + str(nextRoom) + line += " · variables: room: " + room + ", last: " + lastEventRoom stdscr.addstr(0, 0, line, curses.A_UNDERLINE) @@ -521,8 +520,7 @@ def start(stdscr): if c == 9: #stdscr.addstr(1, 0, "%s was pressed\n" % c) log("key pressed: 0x{:X}".format(c)) - room = room_keys[nextRoom] - nextRoom = (nextRoom + 1) % len(rooms) + room = room_keys[(room_keys.index(room)+1) % len(rooms)] the_room_to_post_to = None elif c == 10: # enter with open('redpill-sends.log', 'a') as the_file: