diff options
Diffstat (limited to 'Classes/PicDumpViewController.m')
-rw-r--r-- | Classes/PicDumpViewController.m | 273 |
1 files changed, 273 insertions, 0 deletions
diff --git a/Classes/PicDumpViewController.m b/Classes/PicDumpViewController.m new file mode 100644 index 0000000..436534e --- /dev/null +++ b/Classes/PicDumpViewController.m @@ -0,0 +1,273 @@ +// +// 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 + |