From 8060e29213f9d9c1b96e5ed8ce377137d4ab0d54 Mon Sep 17 00:00:00 2001
From: Sibidharan Nandhakumar <hello@sibidharan.me>
Date: Sun, 25 Apr 2021 21:36:36 +0530
Subject: [PATCH] mqt code

---
 log.txt          |  0
 mqtt-chat-npy.py | 64 ++++++++++++++++++++++++++++++++++++++++++++++++
 mqtt_basics.py   |  4 +--
 3 files changed, 66 insertions(+), 2 deletions(-)
 create mode 100755 log.txt
 create mode 100755 mqtt-chat-npy.py

diff --git a/log.txt b/log.txt
new file mode 100755
index 0000000..e69de29
diff --git a/mqtt-chat-npy.py b/mqtt-chat-npy.py
new file mode 100755
index 0000000..9e3c2bf
--- /dev/null
+++ b/mqtt-chat-npy.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python3
+
+import paho.mqtt.client as mqtt
+from threading import Thread
+import npyscreen
+
+HOST = 'broker.hivemq.com'
+PORT = 1883
+TIMEOUT = 60
+f = None
+TOPIC = 'lahtp-sockets-group'
+
+class SubThread(Thread):
+	def __init__(self):
+		Thread.__init__(self)
+		
+class ChatForm(npyscreen.SplitForm, npyscreen.ActionForm):
+	def create(self):
+		client.connect(HOST, PORT, TIMEOUT)
+		self.draw_line_at = 18
+		self.MOVE_LINE_ON_RESIZE = True
+		self.chat_screen = self.add(npyscreen.MultiLine, name="MultiLineChatScreen", height=18)
+		self.chat_screen.display()
+		self.message_field = self.add(npyscreen.TitleText, name="Send: ", editable=True)
+		
+	def on_ok(self):
+		#npyscreen.notify_confirm(self.message_field.value)
+		client.publish(TOPIC, self.message_field.value)
+		self.message_field.value = ""
+		
+		
+		
+	def on_cancel(self):
+		exit(0)
+		
+	def add_msg(message):
+		if(self.chat_screen.value is None):
+			self.chat_screen.value = message
+		else:
+			self.chat_screen.value = self.chat_screen.value + "\n" + message
+		self.chat_screen.display()
+
+def on_connect(client, userdata, flags, rc):
+	npyscreen.notify("Connection Established", title="Info")
+
+def on_message(client, userdata, message):
+	f = open("log.txt", "a")
+	f.write(message.payload)
+	#npyscreen.notify(message, title="New Message")
+	if f is not None:
+		f.add_msg(message.payload)
+	
+class App(npyscreen.NPSAppManaged):
+	def onStart(self):
+		f = self.addForm("MAIN", ChatForm)
+
+		
+if __name__=="__main__":
+	client = mqtt.Client()
+	client.on_connect = on_connect
+	client.on_message = on_message
+	#f.chat_screen.value = "Welcome.\n"
+	app = App()
+	app.run()
\ No newline at end of file
diff --git a/mqtt_basics.py b/mqtt_basics.py
index b52e533..eb8b87a 100644
--- a/mqtt_basics.py
+++ b/mqtt_basics.py
@@ -11,11 +11,11 @@ def on_message(client, userdata, message):
 	
 def on_connect(client, userdata, flags, rc):
 	print("Connected.")
-	client.subscribe('lahtp')
+	client.subscribe('lahtp-sockets-group')
 
 client = mqtt.Client()
 client.on_message = on_message
 client.on_connect = on_connect
 
 client.connect(HOST, PORT, TIMEOUT)
-client.loop_forever()
\ No newline at end of file
+client.loop_forever()
-- 
GitLab