Create command to publish tune. Only publish artist for now.
authorThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Mon, 18 May 2009 00:08:39 +0000 (21:08 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Mon, 18 May 2009 00:08:39 +0000 (21:08 -0300)
status.c

index f4c0d5f..ada4d0a 100644 (file)
--- a/status.c
+++ b/status.c
@@ -134,6 +134,37 @@ pushmood (iksparser *parser, char *node, char *line)
   iks_delete (iq);
 }
 
+iks *
+createtune (char *line)
+{
+  iks *tune;
+  tune = iks_new ("tune");
+  iks_insert_attrib (tune, "xmlns", "http://jabber.org/protocol/tune");
+  iks_insert_cdata (iks_insert (tune, "artist"), line, 0);
+  return tune;
+}
+
+void
+pushtune (iksparser *parser, char *node, char *line)
+{
+  iks *iq;
+  iks *query;
+  iks *publish;
+  iks *item;
+  iks *tune;
+  iq = createiq ("set", pbservice, "pubsub",
+                 "http://jabber.org/protocol/pubsub", &query);
+  publish = iks_insert (query, "publish");
+  iks_insert_attrib (publish, "node", node);
+  item = iks_insert (publish, "item");
+  tune = createtune (line);
+  iks_insert_node (item, tune);
+  printf ("debug: %s\n", iks_string (iks_stack (iq), iq));
+  iks_send (parser, iq);
+  iks_delete (iq);
+}
+
+
 void
 process_mood (iksparser *parser, char *cmdline)
 {
@@ -157,6 +188,12 @@ process_mood (iksparser *parser, char *cmdline)
       node = "http://jabber.org/protocol/mood";
       pushmood (parser, node, cmdline);
     }
+  else if (!strcmp (cmd, "tune"))
+    {
+      char *node;
+      node = "http://jabber.org/protocol/tune";
+      pushtune (parser, node, cmdline);
+    }
   free (orig_cmdline);
 }