Skip to content

Commit f901f98

Browse files
committed
MyTube 2.0
1 parent bb27d76 commit f901f98

27 files changed

+4665
-9031
lines changed

1.png

100755100644
-1.52 KB
Loading

2.png

100755100644
-20.6 KB
Loading

3.png

-61 KB
Binary file not shown.

Classes/MyTubeAppDelegate.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,15 @@
1919
// along with MyTube. If not, see <http://www.gnu.org/licenses/>.
2020
//
2121

22-
#import <UIKit/UIKit.h>
23-
2422
@class MyTubeViewController;
2523

2624
@interface MyTubeAppDelegate : NSObject <UIApplicationDelegate> {
27-
UIWindow *window;
2825
MyTubeViewController *viewController;
26+
UIWindow *window;
2927
}
3028

31-
@property (nonatomic, retain) IBOutlet UIWindow *window;
3229
@property (nonatomic, retain) IBOutlet MyTubeViewController *viewController;
30+
@property (nonatomic, retain) IBOutlet UIWindow *window;
3331

3432
@end
3533

Classes/MyTubeAppDelegate.m

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@
2424

2525
@implementation MyTubeAppDelegate
2626

27-
@synthesize window;
28-
@synthesize viewController;
27+
@synthesize viewController, window;
2928

3029

3130
#pragma mark -

Classes/MyTubeViewController.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,12 @@
1919
// along with MyTube. If not, see <http://www.gnu.org/licenses/>.
2020
//
2121

22-
#import <UIKit/UIKit.h>
2322
#import "UIDownloadBar.h"
24-
#import "DownloadsViewController.h"
2523

26-
@interface MyTubeViewController : UIViewController <UIAlertViewDelegate, UIApplicationDelegate, UIDownloadBarDelegate, UIWebViewDelegate> {
27-
IBOutlet UIWebView *webView;
24+
@interface MyTubeViewController : UIViewController <UIDownloadBarDelegate, UIWebViewDelegate> {
25+
IBOutlet UIBarButtonItem *downloadButton;
2826
IBOutlet UIToolbar *toolbar;
29-
IBOutlet UIBarButtonItem *downloadButton;
27+
IBOutlet UIWebView *webView;
3028

3129
NSString *videoTitle;
3230

Classes/MyTubeViewController.m

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
// along with MyTube. If not, see <http://www.gnu.org/licenses/>.
2020
//
2121

22+
#import "DownloadsViewController.h"
2223
#import "MyTubeViewController.h"
2324

2425
@implementation MyTubeViewController
@@ -29,8 +30,11 @@ @implementation MyTubeViewController
2930
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
3031
- (void)viewDidLoad {
3132
[super viewDidLoad];
32-
33-
[[UIApplication sharedApplication] setDelegate:self];
33+
34+
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidEnterBackground:) name:UIApplicationDidEnterBackgroundNotification object:nil];
35+
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillEnterForeground:) name:UIApplicationWillEnterForegroundNotification object:nil];
36+
37+
[webView setBackgroundColor:[UIColor clearColor]];
3438
}
3539

3640
- (void)viewDidAppear:(BOOL)animated {
@@ -46,7 +50,6 @@ - (void)applicationDidEnterBackground:(UIApplication *)application {
4650
[bar removeFromSuperview];
4751

4852
[videoTitle release];
49-
videoTitle = nil;
5053

5154
[downloadButton setEnabled:YES];
5255
}
@@ -62,20 +65,31 @@ - (IBAction)download {
6265
[downloadButton setEnabled:NO];
6366

6467
[webView setUserInteractionEnabled:NO];
65-
66-
NSString *getURL = [webView stringByEvaluatingJavaScriptFromString:@"function getURL() {var player = document.getElementById('player'); var video = player.getElementsByTagName('video')[0]; return video.getAttribute('src');} getURL();"];
67-
NSString *getTitle = [webView stringByEvaluatingJavaScriptFromString:@"function getTitle() {var kp = document.getElementsByClassName('kp')[0]; return kp.childNodes[0].innerHTML;} getTitle();"];
68+
69+
UIUserInterfaceIdiom userInterfaceIdiom = [UIDevice currentDevice].userInterfaceIdiom;
70+
71+
NSString *getURL = @"";
72+
73+
if (userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
74+
getURL = [webView stringByEvaluatingJavaScriptFromString:@"function getURL() {var player = document.getElementById('player'); var video = player.getElementsByTagName('video')[0]; return video.getAttribute('src');} getURL();"];
75+
} else {
76+
getURL = [webView stringByEvaluatingJavaScriptFromString:@"function getURL() {var bh = document.getElementsByClassName('bh')[0]; return bh.getAttribute('src');} getURL();"];
77+
}
78+
79+
NSString *getTitle = [webView stringByEvaluatingJavaScriptFromString:@"function getTitle() {var lp = document.getElementsByClassName('lp')[0]; return lp.childNodes[0].innerHTML;} getTitle();"];
80+
6881
NSString *getTitleFromChannel = [webView stringByEvaluatingJavaScriptFromString:@"function getTitleFromChannel() {var video_title = document.getElementById('video_title'); return video_title.childNodes[0].innerHTML;} getTitleFromChannel();"];
69-
82+
83+
//NSLog(@"%@, %@, %@", getURL, getTitle, getTitleFromChannel);
84+
7085
[webView setUserInteractionEnabled:YES];
7186

7287
NSArray *components = [getTitle componentsSeparatedByCharactersInSet:[[NSCharacterSet alphanumericCharacterSet] invertedSet]];
7388
getTitle = [components componentsJoinedByString:@" "];
7489

7590
if ([getURL length] > 0) {
7691
if ([getTitle length] > 0) {
77-
videoTitle = getTitle;
78-
[videoTitle retain];
92+
videoTitle = [getTitle retain];
7993

8094
bar = [[UIDownloadBar alloc] initWithURL:[NSURL URLWithString:getURL]
8195
progressBarFrame:CGRectMake(85.0, 17.0, 150.0, 11.0)
@@ -92,8 +106,7 @@ - (IBAction)download {
92106
getTitleFromChannel = [components componentsJoinedByString:@" "];
93107

94108
if ([getTitleFromChannel length] > 0) {
95-
videoTitle = getTitleFromChannel;
96-
[videoTitle retain];
109+
videoTitle = [getTitleFromChannel retain];
97110

98111
bar = [[UIDownloadBar alloc] initWithURL:[NSURL URLWithString:getURL]
99112
progressBarFrame:CGRectMake(85.0, 17.0, 150.0, 11.0)
@@ -106,15 +119,21 @@ - (IBAction)download {
106119

107120
[bar release];
108121
} else {
122+
//NSLog(@"%@", [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML;"]);
123+
109124
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"MyTube" message:@"Couldn't get video title." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
125+
110126
[alertView show];
111127
[alertView release];
112128

113129
[downloadButton setEnabled:YES];
114130
}
115131
}
116132
} else {
133+
//NSLog(@"%@", [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML;"]);
134+
117135
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"MyTube" message:@"Couldn't get MP4 URL." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
136+
118137
[alertView show];
119138
[alertView release];
120139

@@ -156,7 +175,7 @@ - (void)downloadBar:(UIDownloadBar *)downloadBar didFinishWithData:(NSData *)fil
156175

157176
AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
158177

159-
Float64 durationSeconds = CMTimeGetSeconds([asset duration]);
178+
Float64 durationSeconds = CMTimeGetSeconds(asset.duration);
160179

161180
CMTime midpoint = CMTimeMakeWithSeconds(durationSeconds / 2.0, 600);
162181
CMTime actualTime;
@@ -184,20 +203,18 @@ - (void)downloadBar:(UIDownloadBar *)downloadBar didFinishWithData:(NSData *)fil
184203
[asset release];
185204

186205
[videoTitle release];
187-
videoTitle = nil;
188206

189207
[downloadBar removeFromSuperview];
190208

191-
[downloadButton setEnabled:TRUE];
209+
[downloadButton setEnabled:YES];
192210
}
193211

194212
- (void)downloadBar:(UIDownloadBar *)downloadBar didFailWithError:(NSError *)error {
195213
[videoTitle release];
196-
videoTitle = nil;
197214

198215
[downloadBar removeFromSuperview];
199216

200-
[downloadButton setEnabled:TRUE];
217+
[downloadButton setEnabled:YES];
201218
}
202219

203220
- (void)downloadBarUpdated:(UIDownloadBar *)downloadBar {}
@@ -221,12 +238,14 @@ - (void)didReceiveMemoryWarning {
221238
}
222239

223240
- (void)viewDidUnload {
241+
[super viewDidUnload];
242+
224243
// Release any retained subviews of the main view.
225244
// e.g. self.myOutlet = nil;
226245
}
227246

228247
- (void)dealloc {
229-
[bar release];
248+
[[NSNotificationCenter defaultCenter] removeObserver:self];
230249

231250
[super dealloc];
232251
}

Classes/UIDownloadBar.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@
66
// Copyright 2010 __MyCompanyName__. All rights reserved.
77
//
88

9-
#import <Foundation/Foundation.h>
10-
#import <UIKit/UIKit.h>
11-
129
@class UIProgressView;
1310
@protocol UIDownloadBarDelegate;
1411

Classes/UIDownloadBar.m

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,9 @@ - (void)connectionDidFinishLoading:(NSURLConnection *)connection {
131131
//[connection release];
132132
}
133133

134-
- (void)drawRect:(CGRect)rect {
135-
[super drawRect:rect];
136-
}
134+
//- (void)drawRect:(CGRect)rect {
135+
// [super drawRect:rect];
136+
//}
137137

138138
- (void)dealloc {
139139
[possibleFilename release];

Default-Portrait.png

8.66 KB
Loading

0 commit comments

Comments
 (0)