| Paste number 37299: | something |
| Pasted by: | akempgen |
| 1 year, 10 months ago | |
| #colloquy | |
| Paste contents: |
| #import "AKAvatarPlugin.h" #import "JVChatController.h" #import "JVChatEvent.h" #import "JVChatMessage.h" #import "JVChatRoomMember.h" #import "JVChatRoomPanel.h" #import "JVChatTranscript.h" #import "JVChatTranscriptPanel.h" #import "JVChatWindowController.h" #import "JVNotificationController.h" #import "JVToolbarItem.h" #import "JVSpeechController.h" #import "MVBuddyListController.h" #import "MVChatConnection.h" #import "MVChatRoom.h" #import "MVChatUser.h" #import "MVIRCChatUser.h" #import "MVConnectionsController.h" #import "MVFileTransferController.h" #import "NSAttributedStringAdditions.h" #import "NSStringAdditions.h" #import "MVFileTransfer.h" @implementation AKAvatarPlugin - (id) initWithManager:(MVChatPluginManager *)manager { self = [super init]; return self; } - (void) dealloc { [super dealloc]; } #pragma mark - #pragma mark - #pragma mark Hooks for the MVChatPlugin protocol: - (NSArray *) contextualMenuItemsForObject:(id)object inView:(id <JVChatViewController>)view { NSMutableArray *avatarContextMenuItems = [NSMutableArray array]; if ([object isKindOfClass:NSClassFromString(@"JVChatRoomMember")] && ! [object isLocalUser]) { [avatarContextMenuItems addObject: [[[NSMenuItem alloc] initWithTitle: @"Request Avatar" action:@selector( requestAvatar ) keyEquivalent:@""] autorelease]]; [avatarContextMenuItems addObject: [[[NSMenuItem alloc] initWithTitle: @"Send Avatar" action:@selector( sendAvatar ) keyEquivalent:@""] autorelease]]; } return avatarContextMenuItems; } - (BOOL) processSubcodeRequest:(NSString *)command withArguments:(NSData *)arguments fromUser:(MVChatUser *)user { #pragma mark TODO: remove NSLog NSLog([@"AVATAR: Subcode Request: " stringByAppendingString:command]); if ([command isCaseInsensitiveEqualToString:@"AVATAR"]) { if (arguments) { NSLog(@"das war ein angebot"); NSArray *argumentArray = [[[[NSString alloc] initWithData:arguments encoding:[[user connection] encoding]] autorelease] componentsSeparatedByString:@" "]; // NSArray *argumentArray = [[[[NSString alloc] initWithData:arguments encoding:[[JVChatController defaultController] chatViewControllerForUser:user ifExists:einserstellenheißtNO]] autorelease] componentsSeparatedByString:@" "]; NSLog(@"Arguments: %@",[argumentArray description]); // if (weWantToReceiveAvatarFromUser:user) // { NSLog(@"wir wollen annehmen"); if ([[NSArray arrayWithObjects:@"http",@"ftp",nil] containsObject:[[NSURL URLWithString:[argumentArray objectAtIndex:0]] scheme]]) { // NSURLDownload *avatarDownload = [[NSURLDownload alloc] initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[argumentArray objectAtIndex:0]]] delegate:self]; // [avatarDownload setDestination:[@"~/dev/Colloquy\\ Plugins/Downloads" stringByExpandingTildeInPath] allowOverwrite:NO]; // create the request NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:[argumentArray objectAtIndex:0]] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; NSLog([theRequest description]); // create the connection with the request // and start loading the data NSURLDownload *theDownload=[[NSURLDownload alloc] initWithRequest:theRequest delegate:self]; if (!theDownload) { NSLog(@"download failed"); } NSLog([theDownload description]); } else //if (supportedfile) { // if (filesizeisokay) // { NSLog(@"DCC Filetransfer is angesagt"); // [18:39] <xenon> there is, just dont add it to the MVFileTransferManager // MVFileTransferController // MVFileTransfer // filetransfer <- requestAvatarFromUser:user // } } // } } else { NSLog(@"das war eine anfrage"); // if (weWantToSendAvatarToUser:user) // { NSLog(@"wir schicken unseren avatar los!"); return YES; // } } } return NO; } #pragma mark - #pragma mark - #pragma mark Programming logic for AKAvatarPlugin: - (void) requestAvatarForMember:(MVIRCChatUser *)theMember { //[theMember ]; } #pragma mark - #pragma mark Storing images: #pragma mark - #pragma mark Connection to JVChatRoomMember: #pragma mark - #pragma mark Download Delegate Stuff: - (void)download:(NSURLDownload *)download decideDestinationWithSuggestedFilename:(NSString *)filename { NSLog(@"Destination for %@, filename: %@", [download description], filename); NSString *destinationFilename; NSString *homeDirectory=NSHomeDirectory(); destinationFilename=[[homeDirectory stringByAppendingPathComponent:@"Desktop"] stringByAppendingPathComponent:filename]; [download setDestination:destinationFilename allowOverwrite:NO]; } - (void)download:(NSURLDownload *)download didFailWithError:(NSError *)error { // release the connection [download release]; // inform the user NSLog(@"Download failed! Error - %@ %@", [error localizedDescription], [[error userInfo] objectForKey:NSErrorFailingURLStringKey]); } - (void)downloadDidFinish:(NSURLDownload *)download { // release the connection [download release]; // do something with the data NSLog(@"%@",@"downloadDidFinish"); } -(void)download:(NSURLDownload *)download didCreateDestination:(NSString *)path { // path now contains the destination path // of the download, taking into account any // unique naming caused by -setDestination:allowOverwrite: NSLog(@"Final file destination: %@",path); } @end |
This paste has no annotations.