@@ -71,40 +71,29 @@ class PlanetDownloadsWebView: WKWebView {
7171 return true
7272 }
7373 }
74- return DownloadsScriptMessageHandler . instance. href == nil && DownloadsScriptMessageHandler . instance . src == nil
74+ return ! DownloadsScriptMessageHandler. instance. hasSelectedURL
7575 }
7676
7777 @objc private func openLinkAction( _ sender: NSMenuItem ) {
78- guard let urlString = DownloadsScriptMessageHandler . instance. href else { return }
79- if urlString. hasPrefix ( " file:/// " ) {
80- let targetURL = URL ( fileURLWithPath: urlString)
81- ArticleWebViewModel . shared. processInternalFileLink ( targetURL)
78+ guard let url = DownloadsScriptMessageHandler . instance. hrefURL else { return }
79+ if url. isFileURL {
80+ ArticleWebViewModel . shared. processInternalFileLink ( url)
8281 }
83- if let url = URL ( string: urlString) {
84- ArticleWebViewModel . shared. processPossibleInternalLink ( url)
85- if !ArticleWebViewModel. shared. checkInternalLink ( url) {
86- NSWorkspace . shared. open ( url)
87- }
82+ ArticleWebViewModel . shared. processPossibleInternalLink ( url)
83+ if !ArticleWebViewModel. shared. checkInternalLink ( url) {
84+ NSWorkspace . shared. open ( url)
8885 }
8986 }
9087
9188 @objc private func downloadFileAction( _ sender: NSMenuItem ) {
92- if let _ = DownloadsScriptMessageHandler . instance. href, let srcString = DownloadsScriptMessageHandler . instance. src {
93- self . load ( URLRequest ( url: URL ( string: srcString) !) )
94- } else if let urlString = DownloadsScriptMessageHandler . instance. href {
95- self . load ( URLRequest ( url: URL ( string: urlString) !) )
96- } else if let srcString = DownloadsScriptMessageHandler . instance. src {
97- self . load ( URLRequest ( url: URL ( string: srcString) !) )
89+ if let url = DownloadsScriptMessageHandler . instance. selectedSourceURL {
90+ self . load ( URLRequest ( url: url) )
9891 }
9992 }
10093
10194 @objc private func openImageAction( _ sender: NSMenuItem ) {
102- if let _ = DownloadsScriptMessageHandler . instance. href, let srcString = DownloadsScriptMessageHandler . instance. src {
103- NSWorkspace . shared. open ( URL ( string: srcString) !)
104- } else if let urlString = DownloadsScriptMessageHandler . instance. href {
105- NSWorkspace . shared. open ( URL ( string: urlString) !)
106- } else if let srcString = DownloadsScriptMessageHandler . instance. src {
107- NSWorkspace . shared. open ( URL ( string: srcString) !)
95+ if let url = DownloadsScriptMessageHandler . instance. selectedSourceURL {
96+ NSWorkspace . shared. open ( url)
10897 }
10998 }
11099
0 commit comments