瀏覽代碼

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 查看文件

@@ -71,60 +71,6 @@ static NSDictionary* ircNumericCodeList;
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 {
if (!(self = [super init]))
return nil;
@@ -154,30 +100,30 @@ static NSDictionary* ircNumericCodeList;
_callbacks.event_numeric = onNumericEvent;
_callbacks.event_dcc_chat_req = onDCCChatRequest;
_callbacks.event_dcc_send_req = onDCCSendRequest;
_irc_session = irc_create_session(&_callbacks);
if (!_irc_session) {
NSLog(@"Could not create irc_session.");
return nil;
}
// Strip server info from nicks.
// irc_option_set(_irc_session, LIBIRC_OPTION_STRIPNICKS);
// irc_option_set(_irc_session, LIBIRC_OPTION_STRIPNICKS);
// 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));
unsigned int high, low;
irc_get_version (&high, &low);
_version = [[NSString stringWithFormat:@"IRCClient Framework v%s (Said Achmiz) - libirc v%d.%d (Georgy Yunaev)",
IRCCLIENTVERSION,
high,
low] dataAsUTF8];
_channels = [NSMutableDictionary dictionary];
_encoding = NSUTF8StringEncoding;

@@ -190,10 +136,64 @@ static NSDictionary* ircNumericCodeList;
if (irc_is_connected(_irc_session)) {
NSLog(@"Warning: IRC Session is not disconnected on dealloc");
}
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 {
NSString* numericCodeListPath = [[NSBundle bundleForClass:[self class]] pathForResource:@"IRC_Numerics"
ofType:@"plist"];
@@ -205,6 +205,10 @@ static NSDictionary* ircNumericCodeList;
}
}

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

-(int) connect {
return irc_connect(_irc_session,
_server.terminatedCString,
@@ -251,7 +255,7 @@ static NSDictionary* ircNumericCodeList;
message.terminatedCString);
}

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

+ 1
- 1
README.md 查看文件

@@ -61,7 +61,7 @@ properties, and call `-[connect:]` to connect to the server and `-[run:]` to pla
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];

session.delegate = controller;

Loading…
取消
儲存