multichannel and status improvements

This commit is contained in:
Diego 2026-04-11 11:36:59 -07:00
commit dbd4dbf19c

View file

@ -75,15 +75,15 @@ class r2chat:
self.last_size = 0
# configs
# configs
font = (self.cfg["font_family"], self.cfg["font_size"])
bg_color = self.cfg["bg_color"]
fg_color = self.cfg["fg_color"]
# menubar
self.menubar = tk.Menu(root)
self.root.config(menu=self.menubar)
## chat menu
self.chatmenu = tk.Menu(self.menubar, tearoff=0)
self.menubar.add_cascade(label="Chat", menu=self.chatmenu)
@ -122,10 +122,10 @@ class r2chat:
open(CHAT_FILE, "a").close()
self.update_chat()
self.write_system_message(self.cfg["status_join"])
self.write_system_message(f'{self.cfg["status_join"]}')
def on_close(self):
self.write_system_message(self.cfg["status_leave"])
self.write_system_message(f'{self.cfg["status_leave"]}')
self.root.destroy()
def write_system_message(self, msg):
@ -136,7 +136,12 @@ class r2chat:
def send_message(self, event=None):
msg = self.entry.get().strip()
if msg and msg.startswith("/join #"):
subprocess.Popen(f'pythonw "{os.path.abspath(__file__)}" "{msg[7:len(msg)]}"', shell=True)
channel = msg[7:len(msg)]
self.write_system_message(f"{username} is chatting in {channel}.")
if sys.platform == "win32":
subprocess.Popen(f'pythonw "{os.path.abspath(__file__)}" "{channel}"', shell=True)
else:
subprocess.Popen(f'python "{os.path.abspath(__file__)}" "{channel}"', shell=True)
msg = ''
self.entry.delete(0, tk.END)
if msg:
@ -149,23 +154,23 @@ class r2chat:
print("oh noes! ", e)
self.entry.delete(0, tk.END)
def setstatus(self, new_status):
global status
if status == new_status:
return
status = new_status
if status == "online":
self.write_system_message(msg=self.cfg["status_join"])
self.write_system_message(msg=f'{self.cfg["status_join"]}')
elif status == "offline":
self.write_system_message(msg=self.cfg["status_leave"])
self.write_system_message(msg=f'{self.cfg["status_leave"]}')
elif status == "inactive":
self.write_system_message(msg=self.cfg["status_inactive"])
self.write_system_message(msg=f'{self.cfg["status_inactive"]}')
elif status == "busy":
self.write_system_message(msg=self.cfg["status_busy"])
self.write_system_message(msg=f'{self.cfg["status_busy"]}')
def openprefs(self):
PreferencesWindow(self.root, self.cfg, self.save_prefs)
@ -337,6 +342,6 @@ if __name__ == "__main__":
app = r2chat(root)
root.geometry("500x520")
root.minsize(360, 360)
root.attributes('-topmost', True)
#root.attributes('-topmost', True)
root.protocol("WM_DELETE_WINDOW", app.on_close)
root.mainloop()