forked from Dogo6647/r2chat
multichannel and status improvements
This commit is contained in:
parent
48d936b140
commit
dbd4dbf19c
1 changed files with 18 additions and 13 deletions
31
r2chat.py
31
r2chat.py
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue