From 96c2712380d45c2d0c1405e94aa9e94c8f8adcb4 Mon Sep 17 00:00:00 2001 From: Brian Olsen Date: Mon, 21 Dec 2009 04:16:07 +0100 Subject: [PATCH] - Redirected output from programs to log - Changed create new preset shortcut to cmd+N - Reinstated Apply Result as a global search table popup menu - Added skeleton for IMDB scraper --- App/English.lproj/MainMenu.xib | 74 ++++++-- App/src/PresetsWindowController.m | 7 +- MetaZ.xcodeproj/project.pbxproj | 186 +++++++++++++++++++++ Plugins/Amazon/Info.plist | 2 +- Plugins/AtomicParsley/src/APDataProvider.h | 2 + Plugins/AtomicParsley/src/APDataProvider.m | 38 +++++ Plugins/AtomicParsley/src/APWriteManager.h | 1 + Plugins/AtomicParsley/src/APWriteManager.m | 26 +-- Plugins/IMDB/Info.plist | 26 +++ Plugins/IMDB/src/IMDBPlugin.h | 16 ++ Plugins/IMDB/src/IMDBPlugin.m | 14 ++ 11 files changed, 369 insertions(+), 23 deletions(-) create mode 100644 Plugins/IMDB/Info.plist create mode 100644 Plugins/IMDB/src/IMDBPlugin.h create mode 100644 Plugins/IMDB/src/IMDBPlugin.m diff --git a/App/English.lproj/MainMenu.xib b/App/English.lproj/MainMenu.xib index da471315..de57dc3f 100644 --- a/App/English.lproj/MainMenu.xib +++ b/App/English.lproj/MainMenu.xib @@ -13,8 +13,9 @@ YES - + + YES @@ -413,7 +414,7 @@ - Apply Search + Apply Result A 1048576 2147483647 @@ -5356,6 +5357,20 @@ + + Search Menu + + YES + + + Apply Result + + 2147483647 + + + + + MZPresets @@ -8526,6 +8541,22 @@ 1796 + + + applySearchEntry: + + + + 1802 + + + + menu + + + + 1803 + @@ -11965,6 +11996,21 @@ + + 1798 + + + YES + + + + Search Menu + + + 1799 + + + @@ -12142,6 +12188,9 @@ 1788.IBPluginDependency 1789.IBPluginDependency 1793.IBPluginDependency + 1798.IBEditorWindowLastContentRect + 1798.IBPluginDependency + 1799.IBPluginDependency 19.IBPluginDependency 19.ImportedFromIB2 195.IBPluginDependency @@ -12709,12 +12758,15 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{655, 716}, {218, 73}} + {{656, 716}, {218, 73}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{62, 822}, {137, 23}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -12740,7 +12792,7 @@ com.apple.InterfaceBuilder.CocoaPlugin - {{561, 526}, {247, 263}} + {{562, 526}, {247, 263}} com.apple.InterfaceBuilder.CocoaPlugin {{187, 434}, {243, 243}} @@ -12771,7 +12823,7 @@ com.apple.InterfaceBuilder.CocoaPlugin - {{808, 526}, {194, 83}} + {{809, 526}, {194, 83}} com.apple.InterfaceBuilder.CocoaPlugin {{608, 612}, {241, 103}} @@ -12781,11 +12833,11 @@ com.apple.InterfaceBuilder.CocoaPlugin - {{711, 646}, {194, 143}} + {{712, 646}, {194, 143}} com.apple.InterfaceBuilder.CocoaPlugin {{525, 802}, {197, 73}} - {{375, 789}, {468, 20}} + {{376, 789}, {468, 20}} com.apple.InterfaceBuilder.CocoaPlugin {74, 862} @@ -13120,7 +13172,7 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{519, 686}, {175, 103}} + {{520, 686}, {175, 103}} com.apple.InterfaceBuilder.CocoaPlugin {{145, 474}, {199, 203}} @@ -13149,7 +13201,7 @@ - 1797 + 1803 @@ -13517,14 +13569,14 @@ NSView - + IBProjectSource Externals/google-toolbox-for-mac/AppKit/GTMTheme.h NSWindow - + PictureEditor diff --git a/App/src/PresetsWindowController.m b/App/src/PresetsWindowController.m index 17990a45..3b38dbd9 100644 --- a/App/src/PresetsWindowController.m +++ b/App/src/PresetsWindowController.m @@ -73,16 +73,21 @@ - (void)dealloc - (void)awakeFromNib { - [segmentedControl setKeyEquivalent:@"+" forSegment:0]; + // cmd + N + [segmentedControl setKeyEquivalent:@"N" forSegment:0]; + [segmentedControl setKeyEquivalentModifierMask:NSCommandKeyMask forSegment:0]; + // cmd + backspace const unichar back = NSDeleteCharacter; NSString* back2 = [NSString stringWithCharacters:&back length:1]; [segmentedControl setKeyEquivalent:back2 forSegment:1]; [segmentedControl setKeyEquivalentModifierMask:NSCommandKeyMask forSegment:1]; + // shift + cmd + A [segmentedControl setKeyEquivalent:@"A" forSegment:2]; [segmentedControl setKeyEquivalentModifierMask:NSShiftKeyMask|NSCommandKeyMask forSegment:2]; + NSArray* sorters = [presetsController sortDescriptors]; if(sorters == nil || [sorters count] == 0) { diff --git a/MetaZ.xcodeproj/project.pbxproj b/MetaZ.xcodeproj/project.pbxproj index 65338ec7..e7dc5c81 100644 --- a/MetaZ.xcodeproj/project.pbxproj +++ b/MetaZ.xcodeproj/project.pbxproj @@ -73,6 +73,9 @@ 1B20209B10B36EC200EE548A /* VideoType.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1B20209910B36EC200EE548A /* VideoType.strings */; }; 1B42F21C10DD5D5D00AFEBF6 /* UKDockProgressIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B42F21B10DD5D5D00AFEBF6 /* UKDockProgressIndicator.m */; }; 1B42F21F10DD5D6D00AFEBF6 /* MiniProgressGradient.png in Resources */ = {isa = PBXBuildFile; fileRef = 1B42F21D10DD5D6D00AFEBF6 /* MiniProgressGradient.png */; }; + 1B42F26D10DEB11E00AFEBF6 /* MetaZKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1BA325C410545ACA00276F57 /* MetaZKit.framework */; }; + 1B42F27210DEB14B00AFEBF6 /* RubyCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B11A00610457B0D004C93D3 /* RubyCocoa.framework */; }; + 1B42F2B710DEB4A200AFEBF6 /* IMDBPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B42F2B610DEB4A200AFEBF6 /* IMDBPlugin.m */; }; 1B44949910D57D6900B9C751 /* AtomicParsley in Resources */ = {isa = PBXBuildFile; fileRef = 1B44949810D57D6900B9C751 /* AtomicParsley */; }; 1B44956D10D6118F00B9C751 /* Growl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B44956C10D6118F00B9C751 /* Growl.framework */; }; 1B44957A10D611AA00B9C751 /* Growl.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 1B44956C10D6118F00B9C751 /* Growl.framework */; }; @@ -255,6 +258,20 @@ remoteGlobalIDString = 1B2022F810B393CA00EE548A; remoteInfo = "Plist Marcos"; }; + 1B42F25F10DEB0DC00AFEBF6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1BA325C310545ACA00276F57 /* MetaZKit */; + remoteInfo = MetaZKit; + }; + 1B42F26110DEB0E900AFEBF6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1B2022F810B393CA00EE548A /* Plist Marcos */; + remoteInfo = "Plist Marcos"; + }; 1BA325CB10545BAE00276F57 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; @@ -394,6 +411,10 @@ 1B42F21A10DD5D5D00AFEBF6 /* UKDockProgressIndicator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UKDockProgressIndicator.h; path = Externals/UKDockProgressIndicator/UKDockProgressIndicator.h; sourceTree = ""; }; 1B42F21B10DD5D5D00AFEBF6 /* UKDockProgressIndicator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UKDockProgressIndicator.m; path = Externals/UKDockProgressIndicator/UKDockProgressIndicator.m; sourceTree = ""; }; 1B42F21E10DD5D6D00AFEBF6 /* English */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = English; path = Externals/UKDockProgressIndicator/English.lproj/MiniProgressGradient.png; sourceTree = ""; }; + 1B42F25810DEB0D300AFEBF6 /* IMDBPlugin.mzplugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = IMDBPlugin.mzplugin; sourceTree = BUILT_PRODUCTS_DIR; }; + 1B42F25910DEB0D300AFEBF6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Plugins/IMDB/Info.plist; sourceTree = ""; }; + 1B42F2B510DEB4A200AFEBF6 /* IMDBPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IMDBPlugin.h; sourceTree = ""; }; + 1B42F2B610DEB4A200AFEBF6 /* IMDBPlugin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IMDBPlugin.m; sourceTree = ""; }; 1B44949810D57D6900B9C751 /* AtomicParsley */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = AtomicParsley; path = Plugins/AtomicParsley/resources/AtomicParsley; sourceTree = ""; }; 1B4494BC10D584E000B9C751 /* next_release.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = next_release.txt; path = Release/next_release.txt; sourceTree = ""; }; 1B44956C10D6118F00B9C751 /* Growl.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Growl.framework; path = Externals/Growl.framework; sourceTree = ""; }; @@ -825,6 +846,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 1B42F25610DEB0D300AFEBF6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1B42F26D10DEB11E00AFEBF6 /* MetaZKit.framework in Frameworks */, + 1B42F27210DEB14B00AFEBF6 /* RubyCocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 1BA325C210545ACA00276F57 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -948,6 +978,7 @@ 1B040EBE1081B3C00027FA0D /* TagChimp.mzplugin */, 1B032F6710B0C12100B28E3A /* AmazonPlugin.mzplugin */, 1B03304310B0CD3C00B28E3A /* MetaZKitTest.octest */, + 1B42F25810DEB0D300AFEBF6 /* IMDBPlugin.mzplugin */, ); name = Products; sourceTree = ""; @@ -1037,6 +1068,33 @@ name = UKDockProgressIndicator; sourceTree = ""; }; + 1B42F23B10DEB05000AFEBF6 /* IMDB */ = { + isa = PBXGroup; + children = ( + 1B42F23C10DEB07B00AFEBF6 /* Classes */, + 1B42F23D10DEB08300AFEBF6 /* Resources */, + ); + name = IMDB; + sourceTree = ""; + }; + 1B42F23C10DEB07B00AFEBF6 /* Classes */ = { + isa = PBXGroup; + children = ( + 1B42F2B510DEB4A200AFEBF6 /* IMDBPlugin.h */, + 1B42F2B610DEB4A200AFEBF6 /* IMDBPlugin.m */, + ); + name = Classes; + path = Plugins/IMDB/src; + sourceTree = ""; + }; + 1B42F23D10DEB08300AFEBF6 /* Resources */ = { + isa = PBXGroup; + children = ( + 1B42F25910DEB0D300AFEBF6 /* Info.plist */, + ); + name = Resources; + sourceTree = ""; + }; 1B449CEE10DCCAD500B9C751 /* External Sources */ = { isa = PBXGroup; children = ( @@ -1504,6 +1562,7 @@ 1BEA6E68106EF248004B1A7F /* Plugins */ = { isa = PBXGroup; children = ( + 1B42F23B10DEB05000AFEBF6 /* IMDB */, 1B032F5410B0BDAC00B28E3A /* Amazon */, 1B040EA81081B3860027FA0D /* TagChimp */, 1BEA6E69106EF251004B1A7F /* AtomicParsley */, @@ -1719,6 +1778,25 @@ productReference = 1B040EBE1081B3C00027FA0D /* TagChimp.mzplugin */; productType = "com.apple.product-type.bundle"; }; + 1B42F25710DEB0D300AFEBF6 /* IMDB */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1B42F25E10DEB0D400AFEBF6 /* Build configuration list for PBXNativeTarget "IMDB" */; + buildPhases = ( + 1B42F25410DEB0D300AFEBF6 /* Resources */, + 1B42F25510DEB0D300AFEBF6 /* Sources */, + 1B42F25610DEB0D300AFEBF6 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 1B42F26010DEB0DC00AFEBF6 /* PBXTargetDependency */, + 1B42F26210DEB0E900AFEBF6 /* PBXTargetDependency */, + ); + name = IMDB; + productName = IMDBPlugin; + productReference = 1B42F25810DEB0D300AFEBF6 /* IMDBPlugin.mzplugin */; + productType = "com.apple.product-type.bundle"; + }; 1BA325C310545ACA00276F57 /* MetaZKit */ = { isa = PBXNativeTarget; buildConfigurationList = 1BA325C810545ACB00276F57 /* Build configuration list for PBXNativeTarget "MetaZKit" */; @@ -1828,6 +1906,7 @@ 1B032F6610B0C12100B28E3A /* Amazon */, 1B03304210B0CD3C00B28E3A /* MetaZKitTest */, 1B2022F810B393CA00EE548A /* Plist Marcos */, + 1B42F25710DEB0D300AFEBF6 /* IMDB */, ); }; /* End PBXProject section */ @@ -1855,6 +1934,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 1B42F25410DEB0D300AFEBF6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 1BA325C010545ACA00276F57 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -2050,6 +2136,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 1B42F25510DEB0D300AFEBF6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1B42F2B710DEB4A200AFEBF6 /* IMDBPlugin.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 1BA325C110545ACA00276F57 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -2187,6 +2281,16 @@ target = 1B2022F810B393CA00EE548A /* Plist Marcos */; targetProxy = 1B2023A610B3960A00EE548A /* PBXContainerItemProxy */; }; + 1B42F26010DEB0DC00AFEBF6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 1BA325C310545ACA00276F57 /* MetaZKit */; + targetProxy = 1B42F25F10DEB0DC00AFEBF6 /* PBXContainerItemProxy */; + }; + 1B42F26210DEB0E900AFEBF6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 1B2022F810B393CA00EE548A /* Plist Marcos */; + targetProxy = 1B42F26110DEB0E900AFEBF6 /* PBXContainerItemProxy */; + }; 1BA325CC10545BAE00276F57 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 1BA325C310545ACA00276F57 /* MetaZKit */; @@ -2508,6 +2612,78 @@ }; name = Release; }; + 1B42F25B10DEB0D400AFEBF6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; + INFOPLIST_FILE = Plugins/IMDB/Info.plist; + INSTALL_PATH = "$(HOME)/Library/Bundles"; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + ); + PREBINDING = NO; + PRODUCT_NAME = IMDBPlugin; + WRAPPER_EXTENSION = mzplugin; + }; + name = Debug; + }; + 1B42F25C10DEB0D400AFEBF6 /* Remote Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; + INFOPLIST_FILE = Plugins/IMDB/Info.plist; + INSTALL_PATH = "$(HOME)/Library/Bundles"; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + ); + PREBINDING = NO; + PRODUCT_NAME = IMDBPlugin; + WRAPPER_EXTENSION = mzplugin; + }; + name = "Remote Debug"; + }; + 1B42F25D10DEB0D400AFEBF6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; + INFOPLIST_FILE = Plugins/IMDB/Info.plist; + INSTALL_PATH = "$(HOME)/Library/Bundles"; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + ); + PREBINDING = NO; + PRODUCT_NAME = IMDBPlugin; + WRAPPER_EXTENSION = mzplugin; + ZERO_LINK = NO; + }; + name = Release; + }; 1B44937E10C95B0A00B9C751 /* Remote Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2953,6 +3129,16 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 1B42F25E10DEB0D400AFEBF6 /* Build configuration list for PBXNativeTarget "IMDB" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1B42F25B10DEB0D400AFEBF6 /* Debug */, + 1B42F25C10DEB0D400AFEBF6 /* Remote Debug */, + 1B42F25D10DEB0D400AFEBF6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 1BA325C810545ACB00276F57 /* Build configuration list for PBXNativeTarget "MetaZKit" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Plugins/Amazon/Info.plist b/Plugins/Amazon/Info.plist index 77d0ded6..cb039cff 100644 --- a/Plugins/Amazon/Info.plist +++ b/Plugins/Amazon/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - org.maven-group.metaz.${PRODUCT_NAME:identifier} + org.maven-group.metaz.${PRODUCT_NAME:rfc1034identifier} CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType diff --git a/Plugins/AtomicParsley/src/APDataProvider.h b/Plugins/AtomicParsley/src/APDataProvider.h index 28b2a960..6a0448ff 100644 --- a/Plugins/AtomicParsley/src/APDataProvider.h +++ b/Plugins/AtomicParsley/src/APDataProvider.h @@ -19,6 +19,8 @@ NSMutableArray* writes; } ++ (void)logFromPipe:(NSPipe *)pipe; ++ (int)testReadFile:(NSString *)filePath; + (int)removeChaptersFromFile:(NSString *)filePath; + (int)importChaptersFromFile:(NSString *)chaptersFile toFile:(NSString *)filePath; diff --git a/Plugins/AtomicParsley/src/APDataProvider.m b/Plugins/AtomicParsley/src/APDataProvider.m index 90899300..11c64cce 100644 --- a/Plugins/AtomicParsley/src/APDataProvider.m +++ b/Plugins/AtomicParsley/src/APDataProvider.m @@ -20,13 +20,40 @@ - (NSString *)launchChapsPath; @implementation APDataProvider ++ (void)logFromPipe:(NSPipe *)pipe +{ + NSData* data = [[pipe fileHandleForReading] readDataToEndOfFile]; + NSString* str = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease]; + MZLoggerDebug(@"Read from program: %@", str); +} + ++ (int)testReadFile:(NSString *)filePath +{ + NSTask* task = [[NSTask alloc] init]; + [task setLaunchPath:[self launchChapsPath]]; + [task setArguments:[NSArray arrayWithObjects:@"-l", filePath, nil]]; + NSPipe* err = [NSPipe pipe]; + [task setStandardError:err]; + [task setStandardOutput:err]; + [task launch]; + [task waitUntilExit]; + [self logFromPipe:err]; + int ret = [task terminationStatus]; + [task release]; + return ret; +} + + (int)removeChaptersFromFile:(NSString *)filePath { NSTask* task = [[NSTask alloc] init]; [task setLaunchPath:[self launchChapsPath]]; [task setArguments:[NSArray arrayWithObjects:@"-r", filePath, nil]]; + NSPipe* err = [NSPipe pipe]; + [task setStandardError:err]; + [task setStandardOutput:err]; [task launch]; [task waitUntilExit]; + [self logFromPipe:err]; int ret = [task terminationStatus]; [task release]; return ret; @@ -38,8 +65,12 @@ + (int)importChaptersFromFile:(NSString *)chaptersFile toFile:(NSString *)filePa NSTask* task = [[NSTask alloc] init]; [task setLaunchPath:[self launchChapsPath]]; [task setArguments:[NSArray arrayWithObjects:@"--import", chaptersFile, filePath, nil]]; + NSPipe* err = [NSPipe pipe]; + [task setStandardError:err]; + [task setStandardOutput:err]; [task launch]; [task waitUntilExit]; + [self logFromPipe:err]; int ret = [task terminationStatus]; [task release]; return ret; @@ -388,10 +419,14 @@ - (MetaLoaded *)loadFromFile:(NSString *)fileName [task setArguments:[NSArray arrayWithObjects:fileName, @"-t", nil]]; NSPipe* out = [NSPipe pipe]; [task setStandardOutput:out]; + NSPipe* err = [NSPipe pipe]; + [task setStandardError:err]; [task launch]; NSData* data = [[out fileHandleForReading] readDataToEndOfFile]; [task waitUntilExit]; + [APDataProvider logFromPipe:err]; + int status = [task terminationStatus]; [task release]; if (status != 0) @@ -581,10 +616,13 @@ - (MetaLoaded *)loadFromFile:(NSString *)fileName [task setArguments:[NSArray arrayWithObjects:@"-l", fileName, nil]]; NSPipe* out = [NSPipe pipe]; [task setStandardOutput:out]; + NSPipe* err = [NSPipe pipe]; + [task setStandardError:err]; [task launch]; NSData* data = [[out fileHandleForReading] readDataToEndOfFile]; [task waitUntilExit]; + [APDataProvider logFromPipe:err]; int chapStatus = [task terminationStatus]; [task release]; diff --git a/Plugins/AtomicParsley/src/APWriteManager.h b/Plugins/AtomicParsley/src/APWriteManager.h index 2bf1920e..4696fac1 100644 --- a/Plugins/AtomicParsley/src/APWriteManager.h +++ b/Plugins/AtomicParsley/src/APWriteManager.h @@ -18,6 +18,7 @@ MetaEdits* edits; id delegate; APDataProvider* provider; + NSPipe* err; } @property(readonly) NSTask* task; @property(readonly) id delegate; diff --git a/Plugins/AtomicParsley/src/APWriteManager.m b/Plugins/AtomicParsley/src/APWriteManager.m index 53282569..a9980593 100644 --- a/Plugins/AtomicParsley/src/APWriteManager.m +++ b/Plugins/AtomicParsley/src/APWriteManager.m @@ -62,6 +62,7 @@ - (void)dealloc [delegate release]; [edits release]; [pictureFile release]; + [err release]; [super dealloc]; } @@ -80,6 +81,8 @@ - (void)start name:NSTaskDidTerminateNotification object:task]; MZLoggerDebug(@"Starting write %@", [[task arguments] componentsJoinedByString:@" "]); + err = [[NSPipe alloc] init]; + [task setStandardError:err]; [[[task standardOutput] fileHandleForReading] readInBackgroundAndNotify]; [task launch]; if([delegate respondsToSelector:@selector(dataProvider:controller:writeStartedForEdits:)]) @@ -112,6 +115,7 @@ - (void)cancel - (void)taskTerminated:(NSNotification *)note { + [APDataProvider logFromPipe:err]; NSError* error = nil; NSError* tempError = nil; @@ -163,7 +167,9 @@ - (void)taskTerminated:(NSNotification *)note else fileName = [edits loadedFileName]; - if(chaptersFile) + status = [APDataProvider testReadFile:fileName]; + + if(chaptersFile && status == 0) { if([chaptersFile isEqualToString:@""]) status = [APDataProvider removeChaptersFromFile:fileName]; @@ -176,15 +182,15 @@ - (void)taskTerminated:(NSNotification *)note tempError = nil; } } - if(status != 0) - { - NSDictionary* dict = [NSDictionary dictionaryWithObject: - [NSString stringWithFormat: - NSLocalizedString(@"mp4chaps failed with exit code %d", @"Write failed error"), - status] - forKey:NSLocalizedDescriptionKey]; - error = [NSError errorWithDomain:@"AtomicParsleyPlugin" code:status userInfo:dict]; - } + } + if(status != 0) + { + NSDictionary* dict = [NSDictionary dictionaryWithObject: + [NSString stringWithFormat: + NSLocalizedString(@"mp4chaps failed with exit code %d", @"Write failed error"), + status] + forKey:NSLocalizedDescriptionKey]; + error = [NSError errorWithDomain:@"AtomicParsleyPlugin" code:status userInfo:dict]; } if(error) diff --git a/Plugins/IMDB/Info.plist b/Plugins/IMDB/Info.plist new file mode 100644 index 00000000..b32e4c2a --- /dev/null +++ b/Plugins/IMDB/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + org.maven-group.metaz.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleShortVersionString + RELEASE + CFBundleSignature + ???? + CFBundleVersion + BUILDDATE + NSPrincipalClass + IMDBPlugin + BuildId + BUILDID + + diff --git a/Plugins/IMDB/src/IMDBPlugin.h b/Plugins/IMDB/src/IMDBPlugin.h new file mode 100644 index 00000000..252d4742 --- /dev/null +++ b/Plugins/IMDB/src/IMDBPlugin.h @@ -0,0 +1,16 @@ +// +// IMDBPlugin.h +// MetaZ +// +// Created by Brian Olsen on 20/12/09. +// Copyright 2009 Maven-Group. All rights reserved. +// + +#import +#import + +@interface IMDBPlugin : MZPlugin +{ +} + +@end diff --git a/Plugins/IMDB/src/IMDBPlugin.m b/Plugins/IMDB/src/IMDBPlugin.m new file mode 100644 index 00000000..aebae202 --- /dev/null +++ b/Plugins/IMDB/src/IMDBPlugin.m @@ -0,0 +1,14 @@ +// +// IMDBPlugin.m +// MetaZ +// +// Created by Brian Olsen on 20/12/09. +// Copyright 2009 Maven-Group. All rights reserved. +// + +#import "IMDBPlugin.h" + + +@implementation IMDBPlugin + +@end