// // PicDumpViewController.m // acidcow // // Created by Matthew Handler on 4/16/11. // Copyright 2011 Earl Industries. All rights reserved. // #import "PicDumpViewController.h" #import "PhotoViewController.h" @implementation PicDumpViewController @synthesize topic, dateFormatter; - (NSDateFormatter *)dateFormatter { if (dateFormatter == nil) { dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateStyle:NSDateFormatterMediumStyle]; [dateFormatter setTimeStyle:NSDateFormatterNoStyle]; } return dateFormatter; } //- (Topic *)topic { // NSLog(@"%@", topic.guid); // return topic; //} -(void)setTopic:(Topic *)t { topic = t; [self loadImages]; NSLog(@"%@", topic.guid); } #pragma mark - #pragma mark View lifecycle - (void)viewDidLoad { // UIBarButtonItem *doneItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissModalViewControllerAnimated:)] autorelease]; // self.navigationItem.rightBarButtonItem = doneItem; [super viewDidLoad]; _acidcowPage = [[NSMutableData data] retain]; [self loadImages]; // Uncomment the following line to display an Edit button in the navigation bar for this view controller. // self.navigationItem.rightBarButtonItem = self.editButtonItem; } - (void)viewWillAppear:(BOOL)animated { self.title = topic.title; self.navigationController.navigationBar.barStyle = UIBarStyleDefault; //[self.tableView reloadData]; [super viewWillAppear:animated]; } - (void)viewDidAppear:(BOOL)animated { //[self becomeFirstResponder]; [super viewDidAppear:animated]; } /* - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; } */ /* - (void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; } */ /* // Override to allow orientations other than the default portrait orientation. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations. return (interfaceOrientation == UIInterfaceOrientationPortrait); } */ #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]; photoView.photoList = strings; [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]; } #pragma mark - #pragma mark Table view data source //- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { // // Return the number of sections. // return <#number of sections#>; //} // // //- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { // // Return the number of rows in the section. // return <#number of rows in section#>; //} // Customize the appearance of table view cells. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; } // Configure the cell... return cell; } /* // Override to support conditional editing of the table view. - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { // Return NO if you do not want the specified item to be editable. return YES; } */ /* // Override to support editing the table view. - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { // Delete the row from the data source. [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; } else if (editingStyle == UITableViewCellEditingStyleInsert) { // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view. } } */ /* // Override to support rearranging the table view. - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath { } */ /* // Override to support conditional rearranging of the table view. - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { // Return NO if you do not want the item to be re-orderable. return YES; } */ #pragma mark - #pragma mark Table view delegate - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { // Navigation logic may go here. Create and push another view controller. /* <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil]; // ... // Pass the selected object to the new view controller. [self.navigationController pushViewController:detailViewController animated:YES]; [detailViewController release]; */ } #pragma mark - #pragma mark Memory management - (void)didReceiveMemoryWarning { // Releases the view if it doesn't have a superview. [super didReceiveMemoryWarning]; // Relinquish ownership any cached data, images, etc. that aren't in use. } - (void)viewDidUnload { // Relinquish ownership of anything that can be recreated in viewDidLoad or on demand. // For example: self.myOutlet = nil; } - (void)dealloc { [_acidcowPage release]; [topic release]; [dateFormatter release]; [super dealloc]; } @end