Commit 9397f0c

mo <mo.khan@gmail.com>
2018-05-19 17:33:01
add cli command to change status.
1 parent 4fd1f5e
Changed files (3)
lib/del/cli.rb
@@ -39,6 +39,15 @@ module Del
       ).run(jid, message)
     end
 
+    desc 'status <status> <message>', 'status to online, offline, away, or busy'
+    def status(status, message = nil)
+      socket = SocketMessage.new(self, socket_file: options[:socket_file])
+      socket.deliver(command: :change_status, status: status, message: message)
+      say(socket.listen, :green)
+    ensure
+      socket.close
+    end
+
     desc 'whoami', 'send a whoami message to the local del server'
     def whoami
       socket = SocketMessage.new(self, socket_file: options[:socket_file])
lib/del/robot.rb
@@ -39,7 +39,7 @@ module Del
 
     {
       away!: :away,
-      do_not_disturb!: :dnd,
+      busy!: :dnd,
       offline!: :xa,
       online!: :chat
     }.each do |name, value|
lib/del/tron.rb
@@ -11,6 +11,7 @@ module Del
 
     def execute(request)
       {
+        change_status: -> { change_status(request) },
         send_message: -> { send_message(request) },
         users: -> { users(request) },
         whoami: -> { whoami(request) },
@@ -36,5 +37,10 @@ module Del
     def whoami(_request)
       JSON.generate(whois(robot.jid))
     end
+
+    def change_status(request)
+      robot.public_send("#{request['status'].downcase}!", request['message'])
+      'Done!'
+    end
   end
 end