]> cgit.babelmonkeys.de Git - mpdbot.git/blobdiff - PEPThread.m
Add Makefile
[mpdbot.git] / PEPThread.m
diff --git a/PEPThread.m b/PEPThread.m
deleted file mode 100644 (file)
index 496ebe6..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-#import <ObjFW/ObjFW.h>
-#import <ObjXMPP/ObjXMPP.h>
-
-#import "PEPThread.h"
-
-#define NS_PUBSUB @"http://jabber.org/protocol/pubsub"
-#define NS_TUNE @"http://jabber.org/protocol/tune"
-
-@implementation PEPThread: OFThread
-- (void)dealloc
-{
-       [sock release];
-
-       [super dealloc];
-}
-
-- (void)MPD_connect
-{
-       int64_t pause = 1;
-       while(1) {
-               @try {
-                       [sock release];
-                       sock = [[OFTCPSocket alloc] init];
-                       [sock connectToHost: @"localhost"
-                                      port: 6600];
-                       return;
-               } @catch (id e) {
-                       of_log(@"Connection failed, retrying in %" PRIi64
-                                       " seconds", pause);
-                       [OFThread sleepForTimeInterval: pause];
-                       if (pause < 120)
-                               pause *= 2;
-                       [e release];
-               }
-       }
-}
-
-- (OFMutableDictionary*)MPD_responseFromSocket: (OFTCPSocket*)sock
-{
-       OFString *answer;
-       OFMutableDictionary *response = [OFMutableDictionary dictionary];
-       while ((answer = [sock readLine]) && ![answer hasPrefix: @"OK"]) {
-               size_t index;
-               index = [answer indexOfFirstOccurrenceOfString: @":"];
-               if (index == OF_INVALID_INDEX)
-                       continue;
-               [response setObject: [answer substringFromIndex: index + 2
-                                                       toIndex: answer.length]
-                            forKey: [answer substringFromIndex: 0
-                                                       toIndex: index]];
-       }
-
-       return response;
-}
-
-- (id)main
-{
-       [self MPD_connect];
-       [self MPD_responseFromSocket: sock];
-       while (1) {
-               OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
-               @try {
-                       OFMutableDictionary *response;
-                       OFString *answer;
-                       XMPPIQ *tuneIQ;
-                       OFXMLElement *pubsub, *publish, *item, *tune;
-
-                       tuneIQ = [XMPPIQ IQWithType: @"set"
-                                                ID: [object generateStanzaID]];
-                       pubsub = [OFXMLElement elementWithName: @"pubsub"
-                                                    namespace: NS_PUBSUB];
-                       [tuneIQ addChild: pubsub];
-                       publish = [OFXMLElement elementWithName: @"publish"
-                                                     namespace: NS_PUBSUB];
-                       [publish addAttributeWithName: @"node"
-                                         stringValue: NS_TUNE];
-                       [pubsub addChild: publish];
-                       item = [OFXMLElement elementWithName: @"item"
-                                                  namespace: NS_PUBSUB];
-                       [publish addChild: item];
-                       tune = [OFXMLElement elementWithName: @"tune"
-                                                  namespace: NS_TUNE];
-                       [item addChild: tune];
-                       [sock writeLine: @"status"];
-                       response = [self MPD_responseFromSocket: sock];
-                       if ([[response objectForKey: @"state"]
-                           isEqual: @"play"]) {
-                               [sock writeLine: @"currentsong"];
-                               response = [self MPD_responseFromSocket: sock];
-                               if ((answer =
-                                   [response objectForKey: @"Artist"]))
-                                       [tune addChild: [OFXMLElement
-                                           elementWithName: @"artist"
-                                                 namespace: NS_TUNE
-                                               stringValue: answer]];
-                               if ((answer = [response objectForKey: @"Time"]))
-                                       [tune addChild: [OFXMLElement
-                                           elementWithName: @"length"
-                                                 namespace: NS_TUNE
-                                               stringValue: answer]];
-                               if ((answer =
-                                   [response objectForKey: @"Album"]))
-                                       [tune addChild: [OFXMLElement
-                                           elementWithName: @"source"
-                                                 namespace: NS_TUNE
-                                               stringValue: answer]];
-                               if ((answer =
-                                   [response objectForKey: @"Title"]))
-                                       [tune addChild: [OFXMLElement
-                                           elementWithName: @"title"
-                                                 namespace: NS_TUNE
-                                               stringValue: answer]];
-                               if ((answer =
-                                   [response objectForKey: @"Track"]))
-                                       [tune addChild: [OFXMLElement
-                                           elementWithName: @"track"
-                                                 namespace: NS_TUNE
-                                               stringValue: answer]];
-                       }
-                       [object sendStanza: tuneIQ];
-                       [sock writeLine: @"idle player"];
-                       [self MPD_responseFromSocket: sock];
-               } @catch (id e) {
-                       [self MPD_connect];
-                       [self MPD_responseFromSocket: sock];
-                       [e release];
-               }
-               [pool release];
-       }
-
-       return nil;
-}
-@end