summaryrefslogtreecommitdiffstats
path: root/Classes/PicDumpViewController.m
diff options
context:
space:
mode:
Diffstat (limited to 'Classes/PicDumpViewController.m')
-rw-r--r--Classes/PicDumpViewController.m273
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
+