From e86c897b3c62e58562d0306c005c564be2e33721 Mon Sep 17 00:00:00 2001 From: finn <214644496@qq.com> Date: Wed, 15 Jul 2020 16:02:47 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=8E=BB=E6=8E=89=E6=97=A0=E6=95=88=E8=A7=84?= =?UTF-8?q?=E5=88=99=202.=E4=BF=AE=E5=A4=8D=E5=8F=B3=E9=94=AE=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E4=B8=8D=E8=83=BD=E4=BD=BF=E7=94=A8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- magnetX.xcodeproj/project.pbxproj | 16 +++++----- magnetX/Base.lproj/Main.storyboard | 17 ++++------- magnetX/NSTableView+ContextMenu.h | 19 ------------ magnetX/NSTableView+ContextMenu.m | 49 ------------------------------ magnetX/ViewController.m | 7 +++-- magnetX/XTTableView.h | 21 +++++++++++++ magnetX/XTTableView.m | 38 +++++++++++++++++++++++ rule.json | 20 +----------- 8 files changed, 78 insertions(+), 109 deletions(-) delete mode 100644 magnetX/NSTableView+ContextMenu.h delete mode 100644 magnetX/NSTableView+ContextMenu.m create mode 100644 magnetX/XTTableView.h create mode 100644 magnetX/XTTableView.m diff --git a/magnetX.xcodeproj/project.pbxproj b/magnetX.xcodeproj/project.pbxproj index 9ea4e62..56b2e1c 100644 --- a/magnetX.xcodeproj/project.pbxproj +++ b/magnetX.xcodeproj/project.pbxproj @@ -41,7 +41,7 @@ AAC820DF1DB9ED9700D12963 /* MovieModel.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC820DE1DB9ED9700D12963 /* MovieModel.m */; }; AAC820E11DB9F27500D12963 /* SourceList.plist in Resources */ = {isa = PBXBuildFile; fileRef = AAC820E01DB9F27500D12963 /* SourceList.plist */; }; AAC820E41DB9FF3B00D12963 /* breakDownHtml.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC820E31DB9FF3B00D12963 /* breakDownHtml.m */; }; - AAE4C0181DC07E710000D0B9 /* NSTableView+ContextMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = AAE4C0171DC07E710000D0B9 /* NSTableView+ContextMenu.m */; }; + B6E4C0CB24BEEDB700EEF50E /* XTTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E4C0CA24BEEDB700EEF50E /* XTTableView.m */; }; B6FFDD432322079A0075317C /* NSString+XTNSString.m in Sources */ = {isa = PBXBuildFile; fileRef = B6FFDD422322079A0075317C /* NSString+XTNSString.m */; }; /* End PBXBuildFile section */ @@ -107,8 +107,8 @@ AAC820E01DB9F27500D12963 /* SourceList.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = SourceList.plist; sourceTree = ""; }; AAC820E21DB9FF3B00D12963 /* breakDownHtml.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = breakDownHtml.h; sourceTree = ""; }; AAC820E31DB9FF3B00D12963 /* breakDownHtml.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = breakDownHtml.m; sourceTree = ""; }; - AAE4C0161DC07E710000D0B9 /* NSTableView+ContextMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSTableView+ContextMenu.h"; sourceTree = ""; }; - AAE4C0171DC07E710000D0B9 /* NSTableView+ContextMenu.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSTableView+ContextMenu.m"; sourceTree = ""; }; + B6E4C0C924BEEDB700EEF50E /* XTTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XTTableView.h; sourceTree = ""; }; + B6E4C0CA24BEEDB700EEF50E /* XTTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XTTableView.m; sourceTree = ""; }; B6FFDD412322079A0075317C /* NSString+XTNSString.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSString+XTNSString.h"; sourceTree = ""; }; B6FFDD422322079A0075317C /* NSString+XTNSString.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSString+XTNSString.m"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -258,8 +258,8 @@ AAC820D41DB8CAD300D12963 /* View */ = { isa = PBXGroup; children = ( - AAE4C0161DC07E710000D0B9 /* NSTableView+ContextMenu.h */, - AAE4C0171DC07E710000D0B9 /* NSTableView+ContextMenu.m */, + B6E4C0C924BEEDB700EEF50E /* XTTableView.h */, + B6E4C0CA24BEEDB700EEF50E /* XTTableView.m */, AAC820C71DB8C8C700D12963 /* Main.storyboard */, ); name = View; @@ -444,10 +444,10 @@ AAC820DB1DB9C27F00D12963 /* NavigationView.m in Sources */, AAC820D71DB8CE4100D12963 /* WindowController.m in Sources */, 612BA6261FE2AEDD005EDC47 /* NSError+GitHubUpdates.m in Sources */, - AAE4C0181DC07E710000D0B9 /* NSTableView+ContextMenu.m in Sources */, 612BA62C1FE2AEDD005EDC47 /* GitHubProgressWindowController.m in Sources */, 61B0E2101E7CFC6300C2C6C3 /* UserEditorStatus.m in Sources */, 1F161DE91DBA457D0037BDBF /* sideModel.m in Sources */, + B6E4C0CB24BEEDB700EEF50E /* XTTableView.m in Sources */, B6FFDD432322079A0075317C /* NSString+XTNSString.m in Sources */, AAC820E41DB9FF3B00D12963 /* breakDownHtml.m in Sources */, 612BA62B1FE2AEDD005EDC47 /* NSString+GitHubUpdates.m in Sources */, @@ -591,7 +591,7 @@ INFOPLIST_FILE = magnetX/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.10; - MARKETING_VERSION = 1.3.2; + MARKETING_VERSION = 1.3.3; PRODUCT_BUNDLE_IDENTIFIER = com.214644496.magnetX; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -612,7 +612,7 @@ INFOPLIST_FILE = magnetX/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.10; - MARKETING_VERSION = 1.3.2; + MARKETING_VERSION = 1.3.3; PRODUCT_BUNDLE_IDENTIFIER = com.214644496.magnetX; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/magnetX/Base.lproj/Main.storyboard b/magnetX/Base.lproj/Main.storyboard index 2262678..fdcf65b 100644 --- a/magnetX/Base.lproj/Main.storyboard +++ b/magnetX/Base.lproj/Main.storyboard @@ -1,8 +1,8 @@ - + - + @@ -625,7 +625,6 @@ - @@ -756,7 +755,7 @@ - + @@ -765,7 +764,6 @@ - @@ -805,7 +803,6 @@ - @@ -838,7 +835,6 @@ - @@ -871,7 +867,6 @@ - @@ -1009,12 +1004,12 @@ + + + - - - diff --git a/magnetX/NSTableView+ContextMenu.h b/magnetX/NSTableView+ContextMenu.h deleted file mode 100644 index 35fea4b..0000000 --- a/magnetX/NSTableView+ContextMenu.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// NSTableView+ContextMenu.h -// magnetX -// -// Created by phlx-mac1 on 16/10/20. -// Copyright © 2016年 214644496@qq.com. All rights reserved. -// - -#import - -@protocol ContextMenuDelegate -- (NSMenu*)tableView:(NSTableView*)aTableView menuForRows:(NSIndexSet*)rows; -- (void)tableView:(NSTableView*)aTableView clickForRow:(NSInteger)row; - -@end - -@interface NSTableView (ContextMenu) - -@end diff --git a/magnetX/NSTableView+ContextMenu.m b/magnetX/NSTableView+ContextMenu.m deleted file mode 100644 index a46dc5b..0000000 --- a/magnetX/NSTableView+ContextMenu.m +++ /dev/null @@ -1,49 +0,0 @@ -// -// NSTableView+ContextMenu.m -// magnetX -// -// Created by phlx-mac1 on 16/10/20. -// Copyright © 2016年 214644496@qq.com. All rights reserved. -// - -#import "NSTableView+ContextMenu.h" - -@implementation NSTableView (ContextMenu) - -- (NSMenu*)menuForEvent:(NSEvent*)event -{ - NSPoint location = [self convertPoint:[event locationInWindow] fromView:nil]; - NSInteger row = [self rowAtPoint:location]; - if (!(row >= 0) || ([event type] != NSRightMouseDown)) { - return [super menuForEvent:event]; - } - NSIndexSet *selected = [self selectedRowIndexes]; - if (![selected containsIndex:row]) { - selected = [NSIndexSet indexSetWithIndex:row]; - [self selectRowIndexes:selected byExtendingSelection:NO]; - } - if ([[self delegate] respondsToSelector:@selector(tableView:menuForRows:)]) { - return [(id)[self delegate] tableView:self menuForRows:selected]; - } - return [super menuForEvent:event]; -} - -- (void)mouseDown:(NSEvent *)event{ - NSPoint location = [self convertPoint:[event locationInWindow] fromView:nil]; - NSInteger row = [self rowAtPoint:location]; - if (!(row >= 0) || ([event type] != NSRightMouseDown)) { - - } - NSIndexSet *selected = [self selectedRowIndexes]; - if (![selected containsIndex:row]) { - selected = [NSIndexSet indexSetWithIndex:row]; - [self selectRowIndexes:selected byExtendingSelection:NO]; - } - if ([[self delegate] respondsToSelector:@selector(tableView:clickForRow:)]) { - [(id)[self delegate] tableView:self clickForRow:row]; - } - [super mouseDown:event]; - -} - -@end diff --git a/magnetX/ViewController.m b/magnetX/ViewController.m index b713fed..c549aa4 100644 --- a/magnetX/ViewController.m +++ b/magnetX/ViewController.m @@ -10,19 +10,19 @@ #import "MovieModel.h" #import "breakDownHtml.h" -#import "NSTableView+ContextMenu.h" +#import "XTTableView.h" #import #import #import "MLHudAlert.h" #import "AppDelegate.h" #import "NSString+XTNSString.h" -@interface ViewController() +@interface ViewController() @property (weak) IBOutlet NSTextField *searchTextField; @property (weak) IBOutlet NSProgressIndicator *indicator; @property (weak) IBOutlet NSTextField *info; -@property (weak) IBOutlet NSTableView *tableView; +@property (weak) IBOutlet XTTableView *tableView; @property (nonatomic, strong) NSMutableArray *magnets; @property (nonatomic, strong) NSString *searchURLString; @property (nonatomic, strong) WKWebView*web; @@ -59,6 +59,7 @@ - (void)config{ self.web =[[WKWebView alloc]initWithFrame:CGRectZero]; self.web.UIDelegate = self; self.web.navigationDelegate = self; + self.tableView.delegate = self; [self.view addSubview:self.web]; } diff --git a/magnetX/XTTableView.h b/magnetX/XTTableView.h new file mode 100644 index 0000000..f82b7e9 --- /dev/null +++ b/magnetX/XTTableView.h @@ -0,0 +1,21 @@ +// +// XTTableView.h +// +// +// Created by finn on 2020/6/30. +// Copyright © 2020 finn. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@protocol XTMenuDelegate +- (NSMenu*)tableView:(NSTableView*)aTableView menuForRows:(NSIndexSet*)rows; +- (NSMenu*)emptySelectionTableView:(NSTableView*)aTableView; + +@end +@interface XTTableView : NSTableView + +@end + +NS_ASSUME_NONNULL_END diff --git a/magnetX/XTTableView.m b/magnetX/XTTableView.m new file mode 100644 index 0000000..b960430 --- /dev/null +++ b/magnetX/XTTableView.m @@ -0,0 +1,38 @@ +// +// XTTableView.m +// +// +// Created by finn on 2020/6/30. +// Copyright © 2020 finn. All rights reserved. +// + +#import "XTTableView.h" + +@implementation XTTableView + +- (void)drawRect:(NSRect)dirtyRect { + [super drawRect:dirtyRect]; + + // Drawing code here. +} +- (NSMenu*)menuForEvent:(NSEvent*)event +{ + NSPoint location = [self convertPoint:[event locationInWindow] fromView:nil]; + NSInteger row = [self rowAtPoint:location]; + if (!(row >= 0) || ([event type] != NSRightMouseDown)) { + if ([[self delegate] respondsToSelector:@selector(emptySelectionTableView:)]) { + return [(id)[self delegate] emptySelectionTableView:self]; + } + return [super menuForEvent:event]; + } + NSIndexSet *selected = [self selectedRowIndexes]; + if (![selected containsIndex:row]) { + selected = [NSIndexSet indexSetWithIndex:row]; + [self selectRowIndexes:selected byExtendingSelection:NO]; + } + if ([[self delegate] respondsToSelector:@selector(tableView:menuForRows:)]) { + return [(id)[self delegate] tableView:self menuForRows:selected]; + } + return [super menuForEvent:event]; +} +@end diff --git a/rule.json b/rule.json index 4b47f68..0264f4a 100644 --- a/rule.json +++ b/rule.json @@ -70,16 +70,7 @@ "name": ".//div[1]/h3/a", "size": ".//div[3]/span[1]/b", "count": ".//div[3]/span[2]/b", - "source": "https://bthub.xyz/main-search-kw-XXX-PPP.html" - }, - { - "site": "btdb.io", - "group": "//div[@class='media']", - "magnet": ".//ul/li/h2/a/@href", - "name": ".//ul/li/h2/a", - "size": ".//ul/li/div/small[1]/strong", - "count": ".//ul/li/div/small[2]/strong", - "source": "https://btdb.io/search/XXX/?page=PPP" + "source": "https://bthub.site/cn/search/kw-XXX-PPP.html" }, { "site": " Btdad.info", @@ -99,15 +90,6 @@ "count": "./li/span[2]/span[2]", "source": "http://f.cili001.com/index/index/k/XXX/p/PPP" }, - { - "site": "Zooqle", - "group": "//*[@class='table table-condensed table-torrents vmiddle']/tr", - "magnet": "./td[3]/ul/li/a/@href", - "name": "./td[2]/a", - "size": ".//td[4]/div/div", - "count": "./td[5]", - "source": "https://zooqle.com/search?pg=PPP&q=XXX&v=t" - }, { "site": "octopgo", "group": "//div[@class='listitem']",