X-Git-Url: http://cgit.babelmonkeys.de/?a=blobdiff_plain;f=src%2Fmpdbot.m;h=84f864deb653e58f4fa2ef7929dc792d0120cfa8;hb=4119a69a36303a285f2c2472c53f3a0906889fc7;hp=d5273a8655c30547d6938924778d820e728b0763;hpb=24d30f68a87e502770a56745ca22e6c4b8af9787;p=mpdbot.git diff --git a/src/mpdbot.m b/src/mpdbot.m index d5273a8..84f864d 100644 --- a/src/mpdbot.m +++ b/src/mpdbot.m @@ -28,13 +28,11 @@ #define NS_DISCO_INFO @"http://jabber.org/protocol/disco#info" -@interface AppDelegate: OFObject -#ifdef OF_HAVE_OPTIONAL_PROTOCOLS - -#endif - +@interface AppDelegate: OFObject +{ OFString *discoID; PEPThread *pepper; +} @end OF_APPLICATION_DELEGATE(AppDelegate) @@ -46,17 +44,18 @@ OF_APPLICATION_DELEGATE(AppDelegate) OFArray *arguments = [OFApplication arguments]; conn = [[XMPPConnection alloc] init]; - [conn setDelegate: self]; + conn.delegate = self; - if ([arguments count] != 3) { - of_log(@"Invalid count of command line arguments!"); + if (arguments.count != 3) { + [of_stdout writeFormat: @"Usage: %@ \n", + [OFApplication programName]]; [OFApplication terminateWithStatus: 1]; } - [conn setDomain: [arguments objectAtIndex: 0]]; - [conn setUsername: [arguments objectAtIndex: 1]]; - [conn setPassword: [arguments objectAtIndex: 2]]; - [conn setResource: @"ObjXMPP"]; + conn.domain = [arguments objectAtIndex: 0]; + conn.username = [arguments objectAtIndex: 1]; + conn.password = [arguments objectAtIndex: 2]; + conn.resource = @"ObjXMPP"; @try { [conn connect]; @@ -68,7 +67,7 @@ OF_APPLICATION_DELEGATE(AppDelegate) - (void)connectionWasAuthenticated: (XMPPConnection*)conn { - of_log(@"Auth successful"); + [of_stdout writeLine: @"Auth successful"]; } - (void)connection: (XMPPConnection*)conn @@ -77,7 +76,7 @@ OF_APPLICATION_DELEGATE(AppDelegate) XMPPPresence *pres; XMPPIQ *disco; - of_log(@"Bound to JID: %@", [jid fullJID]); + [of_stdout writeFormat: @"Bound to JID: %@\n", [jid fullJID]]; pres = [XMPPPresence presence]; [pres addPriority: 0]; @@ -89,8 +88,8 @@ OF_APPLICATION_DELEGATE(AppDelegate) ID: discoID]; disco.to = [XMPPJID JIDWithString: [[conn JID] bareJID]]; [disco addChild: [OFXMLElement - elementWithName: @"query" - namespace: NS_DISCO_INFO]]; + elementWithName: @"query" + namespace: NS_DISCO_INFO]]; [conn sendStanza: disco]; } @@ -100,7 +99,7 @@ OF_APPLICATION_DELEGATE(AppDelegate) { OFXMLElement *query = [iq elementForName: @"query" namespace: NS_DISCO_INFO]; - if ([[iq ID] isEqual: discoID]) { + if ([iq.ID isEqual: discoID]) { for (OFXMLElement *identity in [query elementsForName: @"identity" namespace: NS_DISCO_INFO]) { @@ -111,6 +110,7 @@ OF_APPLICATION_DELEGATE(AppDelegate) pepper = [[PEPThread alloc] initWithObject: conn]; [pepper start]; + return YES; } } @@ -128,11 +128,17 @@ OF_APPLICATION_DELEGATE(AppDelegate) - (void)connection: (XMPPConnection*)conn didReceivePresence: (XMPPPresence*)pres { - of_log(@"Presence: %@", pres); + if ([pres.type isEqual: @"subscribe"]) { + XMPPPresence *answer; + answer = [XMPPPresence presenceWithType: @"subscribed" + ID: pres.ID]; + answer.to = [XMPPJID JIDWithString: [pres.from bareJID]]; + [conn sendStanza: answer]; + } } - (void)connectionWasClosed: (XMPPConnection*)conn { - of_log(@"Connection was closed!"); + [of_stdout writeLine: @"Connection was closed!"]; } @end