Преглед на файлове

Some more code cleanup

master
achmizs преди 4 години
родител
ревизия
88b7ef1582
променени са 2 файла, в които са добавени 71 реда и са изтрити 67 реда
  1. 70
    66
      IRCClient/IRCClientSession.m
  2. 1
    1
      README.md

+ 70
- 66
IRCClient/IRCClientSession.m Целия файл

return [self new]; return [self new];
} }


/*************************************/
#pragma mark - Useful helper functions
/*************************************/

+(NSData *) nickFromNickUserHost:(NSData *)nickUserHost {
if (nickUserHost == nil)
return nil;

NSRange rangeOfNickUserSeparator = [nickUserHost rangeOfData:[NSData dataFromCString:"!"]
options:(NSDataSearchOptions) 0
range:NSRangeMake(0, nickUserHost.length)];

return (rangeOfNickUserSeparator.location == NSNotFound
? nickUserHost
: [nickUserHost subdataWithRange:NSRangeMake(0, rangeOfNickUserSeparator.location)]);
}

+(NSData *) userFromNickUserHost:(NSData *)nickUserHost {
if (nickUserHost == nil)
return nil;

NSRange rangeOfNickUserSeparator = [nickUserHost rangeOfData:[NSData dataFromCString:"!"]
options:(NSDataSearchOptions) 0
range:NSRangeMake(0, nickUserHost.length)];

NSRange rangeOfUserHostSeparator = [nickUserHost rangeOfData:[NSData dataFromCString:"@"]
options:(NSDataSearchOptions) 0
range:NSRangeMake(0, nickUserHost.length)];

return (( rangeOfNickUserSeparator.location == NSNotFound
|| rangeOfUserHostSeparator.location == NSNotFound)
? [NSData data]
: [nickUserHost subdataWithRange:NSRangeMake(rangeOfNickUserSeparator.location + 1,
rangeOfUserHostSeparator.location - (rangeOfNickUserSeparator.location + 1))]);
}

+(NSData *) hostFromNickUserHost:(NSData *)nickUserHost {
if (nickUserHost == nil)
return nil;

NSRange rangeOfUserHostSeparator = [nickUserHost rangeOfData:[NSData dataFromCString:"@"]
options:(NSDataSearchOptions) 0
range:NSRangeMake(0, nickUserHost.length)];

return (rangeOfUserHostSeparator.location == NSNotFound
? [NSData data]
: [nickUserHost subdataWithRange:NSRangeMake(rangeOfUserHostSeparator.location + 1,
nickUserHost.length - (rangeOfUserHostSeparator.location + 1))]);
}

/***************************/
#pragma mark - Class methods
/***************************/

-(instancetype) init { -(instancetype) init {
if (!(self = [super init])) if (!(self = [super init]))
return nil; return nil;
_callbacks.event_numeric = onNumericEvent; _callbacks.event_numeric = onNumericEvent;
_callbacks.event_dcc_chat_req = onDCCChatRequest; _callbacks.event_dcc_chat_req = onDCCChatRequest;
_callbacks.event_dcc_send_req = onDCCSendRequest; _callbacks.event_dcc_send_req = onDCCSendRequest;
_irc_session = irc_create_session(&_callbacks); _irc_session = irc_create_session(&_callbacks);
if (!_irc_session) { if (!_irc_session) {
NSLog(@"Could not create irc_session."); NSLog(@"Could not create irc_session.");
return nil; return nil;
} }
// Strip server info from nicks. // Strip server info from nicks.
// irc_option_set(_irc_session, LIBIRC_OPTION_STRIPNICKS);
// irc_option_set(_irc_session, LIBIRC_OPTION_STRIPNICKS);
// Set debug mode. // Set debug mode.
// irc_option_set(_irc_session, LIBIRC_OPTION_DEBUG);
// irc_option_set(_irc_session, LIBIRC_OPTION_DEBUG);
irc_set_ctx(_irc_session, (__bridge void *)(self)); irc_set_ctx(_irc_session, (__bridge void *)(self));
unsigned int high, low; unsigned int high, low;
irc_get_version (&high, &low); irc_get_version (&high, &low);
_version = [[NSString stringWithFormat:@"IRCClient Framework v%s (Said Achmiz) - libirc v%d.%d (Georgy Yunaev)", _version = [[NSString stringWithFormat:@"IRCClient Framework v%s (Said Achmiz) - libirc v%d.%d (Georgy Yunaev)",
IRCCLIENTVERSION, IRCCLIENTVERSION,
high, high,
low] dataAsUTF8]; low] dataAsUTF8];
_channels = [NSMutableDictionary dictionary]; _channels = [NSMutableDictionary dictionary];
_encoding = NSUTF8StringEncoding; _encoding = NSUTF8StringEncoding;


if (irc_is_connected(_irc_session)) { if (irc_is_connected(_irc_session)) {
NSLog(@"Warning: IRC Session is not disconnected on dealloc"); NSLog(@"Warning: IRC Session is not disconnected on dealloc");
} }
irc_destroy_session(_irc_session); irc_destroy_session(_irc_session);
} }


/***************************/
#pragma mark - Class methods
/***************************/

+(NSData *) nickFromNickUserHost:(NSData *)nickUserHost {
if (nickUserHost == nil)
return nil;

NSRange rangeOfNickUserSeparator = [nickUserHost rangeOfData:[NSData dataFromCString:"!"]
options:(NSDataSearchOptions) 0
range:NSRangeMake(0, nickUserHost.length)];

return (rangeOfNickUserSeparator.location == NSNotFound
? nickUserHost
: [nickUserHost subdataWithRange:NSRangeMake(0, rangeOfNickUserSeparator.location)]);
}

+(NSData *) userFromNickUserHost:(NSData *)nickUserHost {
if (nickUserHost == nil)
return nil;

NSRange rangeOfNickUserSeparator = [nickUserHost rangeOfData:[NSData dataFromCString:"!"]
options:(NSDataSearchOptions) 0
range:NSRangeMake(0, nickUserHost.length)];

NSRange rangeOfUserHostSeparator = [nickUserHost rangeOfData:[NSData dataFromCString:"@"]
options:(NSDataSearchOptions) 0
range:NSRangeMake(0, nickUserHost.length)];

return (( rangeOfNickUserSeparator.location == NSNotFound
|| rangeOfUserHostSeparator.location == NSNotFound)
? [NSData data]
: [nickUserHost subdataWithRange:NSRangeMake(rangeOfNickUserSeparator.location + 1,
rangeOfUserHostSeparator.location - (rangeOfNickUserSeparator.location + 1))]);
}

+(NSData *) hostFromNickUserHost:(NSData *)nickUserHost {
if (nickUserHost == nil)
return nil;

NSRange rangeOfUserHostSeparator = [nickUserHost rangeOfData:[NSData dataFromCString:"@"]
options:(NSDataSearchOptions) 0
range:NSRangeMake(0, nickUserHost.length)];

return (rangeOfUserHostSeparator.location == NSNotFound
? [NSData data]
: [nickUserHost subdataWithRange:NSRangeMake(rangeOfUserHostSeparator.location + 1,
nickUserHost.length - (rangeOfUserHostSeparator.location + 1))]);
}

/*************************************/
#pragma mark - Class methods (private)
/*************************************/

+(void) loadNumericCodes { +(void) loadNumericCodes {
NSString* numericCodeListPath = [[NSBundle bundleForClass:[self class]] pathForResource:@"IRC_Numerics" NSString* numericCodeListPath = [[NSBundle bundleForClass:[self class]] pathForResource:@"IRC_Numerics"
ofType:@"plist"]; ofType:@"plist"];
} }
} }


/******************************/
#pragma mark - Instance methods
/******************************/

-(int) connect { -(int) connect {
return irc_connect(_irc_session, return irc_connect(_irc_session,
_server.terminatedCString, _server.terminatedCString,
message.terminatedCString); message.terminatedCString);
} }


- (int) quit:(NSData *)reason {
-(int) quit:(NSData *)reason {
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"QUIT :%s", "QUIT :%s",
(reason (reason

+ 1
- 1
README.md Целия файл

the connection on a new event queue and start receiving events. For example: the connection on a new event queue and start receiving events. For example:


``` ```
IRCClientSession *session = [IRCClientSession new];
IRCClientSession *session = [IRCClientSession session];
MyIRCClientSessionDelegate *controller = [[MyIRCClientSessionDelegate alloc] init]; MyIRCClientSessionDelegate *controller = [[MyIRCClientSessionDelegate alloc] init];


session.delegate = controller; session.delegate = controller;

Loading…
Отказ
Запис