鏡像自
https://github.com/Gh0stByte/Movie-Box-Updater
已同步 2025-07-01 20:46:46 +00:00
First Commit
Movie Box Updater 3.6.4 ( New button design (HQ) )
此提交包含在:
129
Hack.xm
一般檔案
129
Hack.xm
一般檔案
@ -0,0 +1,129 @@
|
|||||||
|
/* Imports */
|
||||||
|
#import <CoreData/CoreData.h>
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#include <substrate.h>
|
||||||
|
|
||||||
|
|
||||||
|
/* Definitions (Macros) */
|
||||||
|
#define Bundle_Path @"/Library/MobileSubstrate/DynamicLibraries/MovieBoxBundle.bundle"
|
||||||
|
#define Queued_Update @"Update has been queued and will commence soon."
|
||||||
|
#define AlertTitle @"Movie Box Updater"
|
||||||
|
#define AlertDownload @"Download Working"
|
||||||
|
#define AlertDismiss @"Dismiss"
|
||||||
|
#define AlertOK @"OK"
|
||||||
|
|
||||||
|
#define UpdateCheck_URL @"http://gh0stbyte.ga/iOS/moviebox.json"
|
||||||
|
#define UpdateCheck_Local @"3.6.4"
|
||||||
|
#define UpdateCheck_Alert @"There is an update available for this tweak."
|
||||||
|
|
||||||
|
|
||||||
|
/* Fake interface to allow calling of the update function, along with new sharedInstance */
|
||||||
|
@interface UpdatesManager : NSObject
|
||||||
|
/* Fool the compiler into thinking that we have the method */
|
||||||
|
- (void)requestUpdatedDataBaseWithFileURL:(NSString*)url;
|
||||||
|
/* Create sharedInstance method */
|
||||||
|
+ (id)sharedInstance;
|
||||||
|
@end
|
||||||
|
|
||||||
|
/* Variables */
|
||||||
|
static UIView *header;
|
||||||
|
static UpdatesManager *sharedInstance = nil;
|
||||||
|
NSString *updateURL;
|
||||||
|
|
||||||
|
|
||||||
|
%hook MenuViewController
|
||||||
|
|
||||||
|
/* When it sets up the headerView */
|
||||||
|
-(UIView*)headerView {
|
||||||
|
/* set the headerview to itself */
|
||||||
|
header = %orig;
|
||||||
|
/* Give it a second to create the header before adding to it */
|
||||||
|
[NSTimer scheduledTimerWithTimeInterval:1.0
|
||||||
|
target:self
|
||||||
|
selector:@selector(setupButton)
|
||||||
|
userInfo:nil
|
||||||
|
repeats:NO];
|
||||||
|
/* return the header variable which is itself */
|
||||||
|
return header;
|
||||||
|
}
|
||||||
|
|
||||||
|
%new
|
||||||
|
/* New function called 1 second after headerView called allowing time for it to be created */
|
||||||
|
-(void)setupButton {
|
||||||
|
|
||||||
|
// Update Available Check
|
||||||
|
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:UpdateCheck_URL]];
|
||||||
|
[NSURLConnection sendAsynchronousRequest:request
|
||||||
|
queue:[NSOperationQueue mainQueue]
|
||||||
|
completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
|
||||||
|
NSDictionary *myjson = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
|
||||||
|
updateURL = @"http://sbfunapi.cc/data/data_en.zip";
|
||||||
|
NSString *current_version = [myjson objectForKey:@"current_version"];
|
||||||
|
|
||||||
|
if(![current_version isEqualToString:UpdateCheck_Local]) {
|
||||||
|
UIAlertView *a = [[UIAlertView alloc] initWithTitle:AlertTitle message:UpdateCheck_Alert delegate:self cancelButtonTitle:AlertOK otherButtonTitles:@"Update", nil];
|
||||||
|
[a show];
|
||||||
|
[a release];
|
||||||
|
}
|
||||||
|
|
||||||
|
}];
|
||||||
|
|
||||||
|
|
||||||
|
CGFloat height = CGRectGetHeight(header.bounds);
|
||||||
|
CGFloat width = CGRectGetWidth(header.bounds);
|
||||||
|
|
||||||
|
// Create a new button that will trigger database updates.
|
||||||
|
UIButton *updateButton = [[UIButton alloc] initWithFrame:CGRectMake((width - 63), ((height/2) +3.333333), 20.0, 20.0)];
|
||||||
|
// When button pressed, updateDB function will be called
|
||||||
|
[updateButton addTarget:self
|
||||||
|
action:@selector(updateDB)
|
||||||
|
forControlEvents:UIControlEventTouchUpInside];
|
||||||
|
// Set the image of the button
|
||||||
|
[updateButton setImage:[UIImage imageWithContentsOfFile:[[[NSBundle alloc] initWithPath:Bundle_Path] pathForResource:@"refresh" ofType:@"png"]] forState:UIControlStateNormal];
|
||||||
|
// Add button to the header UIView (header)
|
||||||
|
[header addSubview:updateButton];
|
||||||
|
}
|
||||||
|
|
||||||
|
%new
|
||||||
|
/* Function to update the Database */
|
||||||
|
-(void)updateDB {
|
||||||
|
/* Let the user know that the update has been queued. Good for older phones that take a while to actually show the update process, and prevent the user
|
||||||
|
from spamming the update button. */
|
||||||
|
UIAlertView *a = [[UIAlertView alloc] initWithTitle:AlertTitle message:Queued_Update delegate:nil cancelButtonTitle:AlertOK otherButtonTitles:nil];
|
||||||
|
[a show];
|
||||||
|
[a release];
|
||||||
|
/* Use the sharedInstance function (returns the current instance) to call the requestUpdateBlah function with our updateURL grabbed from the server */
|
||||||
|
[[%c(UpdatesManager) sharedInstance] requestUpdatedDataBaseWithFileURL:updateURL];
|
||||||
|
}
|
||||||
|
|
||||||
|
%new
|
||||||
|
// When the user presses a button
|
||||||
|
- (void)alertView :(UIAlertView*)alertView clickedButtonAtIndex: (NSInteger)buttonIndex {
|
||||||
|
|
||||||
|
if([[alertView buttonTitleAtIndex:buttonIndex] isEqualToString: @"Update"]) {
|
||||||
|
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://cydia.dtathemes.com/"]];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook UpdatesManager
|
||||||
|
/* When an UpdatesManager instance is created */
|
||||||
|
- (id)init
|
||||||
|
{
|
||||||
|
/* we set our sharedInstance to be the current instance of the UpdatesManager */
|
||||||
|
sharedInstance = %orig;
|
||||||
|
/* Then we return the sharedInstance which is itself */
|
||||||
|
return sharedInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Create new sharedInstance */
|
||||||
|
%new
|
||||||
|
+ (id)sharedInstance
|
||||||
|
{
|
||||||
|
/* It returns the current instance of the UpdatesManger */
|
||||||
|
return sharedInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
%end
|
23
Layout/DEBIAN/control
一般檔案
23
Layout/DEBIAN/control
一般檔案
@ -0,0 +1,23 @@
|
|||||||
|
Package: com.gh0stbyte.movieboxupdater
|
||||||
|
Name: Movie Box Updater
|
||||||
|
Depends: mobilesubstrate
|
||||||
|
Architecture: iphoneos-arm
|
||||||
|
Description: Update your Movie Box database whenever you wish with this nifty tweak made by Gh0stByte, of iOSCheaters.com
|
||||||
|
With this tweak, you can update your Movie Box database whenever you want, no need to wait 24 hours.
|
||||||
|
Complete re-work of the tweak! You can now update via a button in the menu's header.
|
||||||
|
Changelog:
|
||||||
|
v.3.6.4
|
||||||
|
- Fully compatible with latest Movie Box (3.6.4)
|
||||||
|
- Tweaked code for optimum speed
|
||||||
|
- Minor UI changes
|
||||||
|
- Version check on startup
|
||||||
|
v.3.6.2
|
||||||
|
- Updated to work for the latest Movie Box (3.6.2)
|
||||||
|
- Changed the way you preform updates.
|
||||||
|
- Added custom button to update the Database.
|
||||||
|
v.1.0.0
|
||||||
|
- Initial Release
|
||||||
|
Maintainer: Gh0stByte <gh0stbyte01@gmail.com>
|
||||||
|
Author: Gh0stByte <gh0stbyte01@gmail.com>
|
||||||
|
Section: Tweaks
|
||||||
|
Version: 3.6.4
|
10
Layout/DEBIAN/postinst
一般檔案
10
Layout/DEBIAN/postinst
一般檔案
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
echo
|
||||||
|
echo '#####################################################'
|
||||||
|
echo ' Movie Box 3 Updater --- Version 3.6.4 '
|
||||||
|
echo '#####################################################'
|
||||||
|
echo 'Made by Gh0stByte! Enjoy! See more at iOSCheaters.com'
|
||||||
|
echo '#####################################################'
|
||||||
|
echo
|
||||||
|
echo
|
||||||
|
exit 0
|
18
Makefile
一般檔案
18
Makefile
一般檔案
@ -0,0 +1,18 @@
|
|||||||
|
ARCHS = arm64 armv7 armv7s
|
||||||
|
include $(THEOS)/makefiles/common.mk
|
||||||
|
|
||||||
|
TWEAK_NAME = MovieBoxUpdate
|
||||||
|
MovieBoxUpdate_FILES = Hack.xm
|
||||||
|
MovieBoxUpdate_FRAMEWORKS = UIKit CoreGraphics
|
||||||
|
MovieBoxUpdate_LDFLAGS += -Wl,-segalign,4000
|
||||||
|
TARGET_IPHONEOS_DEPLOYMENT_VERSION = 6.0
|
||||||
|
|
||||||
|
BUNDLE_NAME = MovieBoxBundle
|
||||||
|
MovieBoxBundle_INSTALL_PATH = /Library/MobileSubstrate/DynamicLibraries/
|
||||||
|
include $(THEOS)/makefiles/bundle.mk
|
||||||
|
|
||||||
|
include $(THEOS_MAKE_PATH)/tweak.mk
|
||||||
|
|
||||||
|
after-install::
|
||||||
|
install.exec "killall -9 MovieBox3; killall -9 Preferences"
|
||||||
|
include $(THEOS_MAKE_PATH)/aggregate.mk
|
17
MovieBoxUpdate.plist
一般檔案
17
MovieBoxUpdate.plist
一般檔案
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>Filter</key>
|
||||||
|
<dict>
|
||||||
|
<key>Executables</key>
|
||||||
|
<array>
|
||||||
|
<string>MovieBox3</string>
|
||||||
|
</array>
|
||||||
|
<key>Bundles</key>
|
||||||
|
<array>
|
||||||
|
<string>com.trendico.moviebox3</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
二進制
Resources/refresh.png
一般檔案
二進制
Resources/refresh.png
一般檔案
未顯示二進位檔案。
之後 寬度: | 高度: | 大小: 3.0 KiB |
新增問題並參考
封鎖使用者