Changeset 4724

Show
Ignore:
Timestamp:
04/26/07 09:33:46 (1 year ago)
Author:
morris
Message:

Add FHFutabaHandler

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • Footagehead/trunk/FHHTMLHandler.m

    r4723 r4724  
    2929#import "NSImage-FHAdditions.h" 
    3030#import "FHFile.h" 
     31#import "FHFutabaHandler.h" 
    3132#import "FHHTMLHandler.h" 
    3233#import "FHHTMLParser.h" 
    3334 
    3435@implementation FHHTMLHandler 
     36 
     37+ (Class)handlerForURL:(WIURL *)url { 
     38        NSString        *host; 
     39         
     40        host = [url host]; 
     41         
     42        if([host hasSuffix:@"4chan.org"]) 
     43                return [FHFutabaHandler class]; 
     44         
     45        return self; 
     46} 
     47 
     48 
     49 
     50#pragma mark - 
    3551 
    3652- (id)initHandlerWithURL:(WIURL *)url HTML:(NSString *)html { 
     
    5672- (NSArray *)files { 
    5773        NSArray                 *links; 
    58         NSArray                 *types; 
    5974        FHFile                  *file; 
    6075        NSUInteger              i, index, count; 
    6176         
    6277        if(!_files) { 
    63                 types = [NSImage FHImageFileTypes]; 
    6478                links = [FHHTMLParser imageLinksInHTML:_html baseURL:[self URL]]; 
    6579                count = [links count]; 
  • Footagehead/trunk/FHHTMLParser.h

    r4706 r4724  
    3030 
    3131+ (NSArray *)imageLinksInHTML:(NSString *)html baseURL:(WIURL *)baseURL; 
     32+ (NSArray *)imageLinksInHTML:(NSString *)html baseURL:(WIURL *)baseURL type:(int)type; 
    3233 
    3334@end 
  • Footagehead/trunk/FHHTMLParser.m

    r4723 r4724  
    3131#import "FHSettings.h" 
    3232 
    33 @implementation FHHTMLParser : WIObject 
     33@implementation FHHTMLParser 
    3434 
    3535+ (NSArray *)imageLinksInHTML:(NSString *)html baseURL:(WIURL *)baseURL { 
     36        return [self imageLinksInHTML:html baseURL:baseURL type:[FHSettings intForKey:FHHTMLImageType]]; 
     37} 
     38 
     39 
     40 
     41+ (NSArray *)imageLinksInHTML:(NSString *)html baseURL:(WIURL *)baseURL type:(int)type { 
    3642        NSScanner               *scanner; 
    3743        NSMutableArray  *links, *urls; 
     
    4955        skipSet = [NSCharacterSet characterSetWithCharactersInString:@" =\r\n\t\"\'<>"]; 
    5056         
    51         switch([FHSettings intForKey:FHHTMLImageType]) { 
     57        switch(type) { 
    5258                case FHHTMLImageOnlyInline: 
    5359                        tokens = [NSArray arrayWithObject:@"SRC"]; 
  • Footagehead/trunk/FHURLHandler.m

    r4706 r4724  
    9797                NSStringEncoding        nsEncoding; 
    9898                CFStringEncoding        cfEncoding; 
     99                Class                           class; 
    99100                 
    100101                nsEncoding = NSISOLatin1StringEncoding; 
     
    109110                 
    110111                text = [NSString stringWithData:data encoding:nsEncoding]; 
     112 
     113                class = [FHHTMLHandler handlerForURL:url]; 
    111114                 
    112                 return [[FHHTMLHandler allocWithZone:zone] initHandlerWithURL:url HTML:text]; 
     115                return [[class allocWithZone:zone] initHandlerWithURL:url HTML:text]; 
    113116        } 
    114117        else if([mime containsSubstring:@"xml"]) { 
  • Footagehead/trunk/Footagehead.xcodeproj/project.pbxproj

    r4716 r4724  
    103103                A58BE56A09BA054F00C3C20D /* White.tiff in Resources */ = {isa = PBXBuildFile; fileRef = A58BE56709BA054F00C3C20D /* White.tiff */; }; 
    104104                A58BE56B09BA054F00C3C20D /* Gray.tiff in Resources */ = {isa = PBXBuildFile; fileRef = A58BE56809BA054F00C3C20D /* Gray.tiff */; }; 
     105                A597A4960BE0889A00C3E4DE /* FHFutabaHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = A597A4940BE0889A00C3E4DE /* FHFutabaHandler.m */; }; 
    105106                A599A110075F94F400A03BA5 /* FHFileCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A599A10E075F94F400A03BA5 /* FHFileCell.m */; }; 
    106107                A5A183F00BDD5231004788EF /* FHWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A183EE0BDD5231004788EF /* FHWindowController.m */; }; 
     
    316317                A58BE56809BA054F00C3C20D /* Gray.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Gray.tiff; sourceTree = "<group>"; }; 
    317318                A591E22C056686CB00215980 /* prefix.pch */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = prefix.pch; sourceTree = "<group>"; }; 
     319                A597A4940BE0889A00C3E4DE /* FHFutabaHandler.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = FHFutabaHandler.m; sourceTree = "<group>"; }; 
     320                A597A4950BE0889A00C3E4DE /* FHFutabaHandler.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = FHFutabaHandler.h; sourceTree = "<group>"; }; 
    318321                A599A10D075F94F400A03BA5 /* FHFileCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FHFileCell.h; sourceTree = "<group>"; }; 
    319322                A599A10E075F94F400A03BA5 /* FHFileCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FHFileCell.m; sourceTree = "<group>"; }; 
     
    703706                                A5B1F9AA067BCF0100111D0A /* FHHTMLHandler.m */, 
    704707                                A5B1F9A9067BCF0100111D0A /* FHHTMLHandler.h */, 
     708                                A597A4740BE0888600C3E4DE /* HTML Handlers */, 
    705709                                A5B1FBC4067D01C200111D0A /* FHImageHandler.m */, 
    706710                                A5B1FBC5067D01C200111D0A /* FHImageHandler.h */, 
     
    716720                        ); 
    717721                        name = "Feed Handlers"; 
     722                        sourceTree = "<group>"; 
     723                }; 
     724                A597A4740BE0888600C3E4DE /* HTML Handlers */ = { 
     725                        isa = PBXGroup; 
     726                        children = ( 
     727                                A597A4940BE0889A00C3E4DE /* FHFutabaHandler.m */, 
     728                                A597A4950BE0889A00C3E4DE /* FHFutabaHandler.h */, 
     729                        ); 
     730                        name = "HTML Handlers"; 
    718731                        sourceTree = "<group>"; 
    719732                }; 
     
    11281141                                A5B1F617067B3B7900111D0A /* FHFileHandler.m in Sources */, 
    11291142                                77EAC0D5084C6D1F006C9F69 /* FHFlickrHandler.m in Sources */, 
     1143                                A597A4960BE0889A00C3E4DE /* FHFutabaHandler.m in Sources */, 
    11301144                                A5B1F611067B3AA100111D0A /* FHHandler.m in Sources */, 
    11311145                                A5B1F9AC067BCF0200111D0A /* FHHTMLHandler.m in Sources */,