// // PhotoViewController.m // acidcow // // Created by Matthew Handler on 4/18/11. // Copyright 2011 Earl Industries. All rights reserved. // #import "PhotoViewController.h" #import "PhotoSource.h" @implementation PhotoViewController @synthesize photoList, topic; - (void)viewDidLoad { // [self convertArray]; [super viewDidLoad]; _acidcowPage = [[NSMutableData data] retain]; [self loadImages]; } - (void)viewWillDisappear:(BOOL)animated { self.navigationController.navigationBar.barStyle = UIBarStyleDefault; self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:24/255.0 green:45/255.0 blue:64/255.0 alpha:1.0]; } - (void)setPhotoList:(NSArray *)list { photoList = list; [self convertArray]; } -(void)setTopic:(Topic *)t { topic = t; self.navigationItem.title = topic.title; [self loadImages]; //NSLog(@"%@", topic.guid); } - (void)convertArray { NSMutableArray *converted = [[NSMutableArray alloc] initWithCapacity:[photoList count]]; for (NSString *url in photoList) { [converted addObject:[[[Photo alloc] initWithURL:url smallURL:url size:CGSizeMake(0, 0)] autorelease]]; } self.photoSource = [[PhotoSource alloc] initWithType:PhotoSourceNormal title:topic.title photos:converted photos2:nil]; } #pragma mark - #pragma mark URL Connection Stuff - (void)loadImages { NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:topic.guid] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:3600.0]; if ([NSURLConnection connectionWithRequest:theRequest delegate:self]) { [_acidcowPage setLength:0]; } else { //[MBProgressHUD hideHUDForView:self.view animated:YES]; //[WerdMergeAppDelegate prompt:@"Error" withMessage:@"No internet connection" andButtonTitle:@"shucks" withDelegate:self]; } } - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { [_acidcowPage setLength:0]; } - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [_acidcowPage appendData:data]; } - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { //[_receivedData release]; //[MBProgressHUD hideHUDForView:self.view animated:YES]; //[WerdMergeAppDelegate prompt:@"Error" withMessage:[error localizedDescription] andButtonTitle:@"Aww man..." withDelegate:self]; //[[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]); } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { NSString *html = [[[NSString alloc] initWithData:_acidcowPage encoding:NSUTF8StringEncoding] autorelease]; NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:@"http://acidcow\\.com/pics[^ \"]+\\.(jpg|png|jpeg|gif)" options:NSRegularExpressionCaseInsensitive error:nil]; NSArray *results = [regex matchesInString:html options:0 range:NSMakeRange(0, [html length])]; NSMutableArray *strings = [[NSMutableArray alloc] initWithCapacity:[results count]]; for (NSTextCheckingResult *obj in results) { [strings addObject:[html substringWithRange:[obj range]]]; //NSLog(@"found: %@", [html substringWithRange:[obj range]]); } //PhotoViewController *photoView = [[[PhotoViewController alloc] init] autorelease]; self.photoList = strings; [self convertArray]; //[self.navigationController pushViewController:photoView animated:YES]; // [self.view addSubview:(UIView *)photoView]; // if ([results count] > 0) { // NSString *title = [currentString substringWithRange:[[results objectAtIndex:0] range]]; // currentTopic.title = title; // } //[_tableData removeAllObjects]; //[_tableData addObjectsFromArray:[[json JSONValue] objectForKey:@"results"]]; //[json release]; // if ([_tableData count] > 0) { // [tableView reloadData]; // [tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:NO]; // self.tableView.allowsSelection = YES; // self.tableView.scrollEnabled = YES; // } // else { // [WerdMergeAppDelegate prompt:@"No Results" withMessage:@"Sorry, that word isn't in our dictionary" andButtonTitle:@"Alright" withDelegate:self]; // } // // [MBProgressHUD hideHUDForView:self.view animated:YES]; //[_receivedData release]; } /* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code. } */ - (void)dealloc { [photoList release]; [super dealloc]; } @end