Browse Source

dirty

master
schmicma 4 years ago
parent
commit
f848db85c6
  1. 9
      kplayer/core/NetworkManager.swift
  2. 2
      kplayer/detail/BrowserController.swift
  3. 2
      kplayer/master/ServerDownloadDelegate.swift
  4. 8
      kplayer/server/kplayer.js
  5. 35
      kplayer/web/KBrowserView.swift

9
kplayer/core/NetworkManager.swift

@ -483,7 +483,7 @@ class NetworkManager {
} }
} }
func downloadToServer(path: String, url: URL, result: @escaping (String) -> ()) {
func downloadToServer(path: String, url: URL, cookies: String?, result: @escaping (String) -> ()) {
let date = Date() let date = Date()
let format = DateFormatter() let format = DateFormatter()
format.dateFormat = "yyyyMMdd_HHmmss" format.dateFormat = "yyyyMMdd_HHmmss"
@ -500,7 +500,12 @@ class NetworkManager {
name = path + "/" + url.lastPathComponent name = path + "/" + url.lastPathComponent
} }
let queryItems = [URLQueryItem(name: "url", value: url.absoluteString), URLQueryItem(name: "name", value: name)]
var queryItems = [URLQueryItem(name: "url", value: url.absoluteString),
URLQueryItem(name: "name", value: name)]
if let c = cookies {
queryItems.append(URLQueryItem(name: "cookies", value: c))
}
var urlComps = URLComponents(string: nodeurl + cmd)! var urlComps = URLComponents(string: nodeurl + cmd)!
urlComps.queryItems = queryItems urlComps.queryItems = queryItems

2
kplayer/detail/BrowserController.swift

@ -219,7 +219,7 @@ class BrowserController : UIViewController, ItemController, WebBrowserDelegate,
let site = String(hostcomp[hostcomp.count-2]) let site = String(hostcomp[hostcomp.count-2])
if ((url2.pathExtension == "mp4" || url2.pathExtension == "m3u8") && dl) { if ((url2.pathExtension == "mp4" || url2.pathExtension == "m3u8") && dl) {
NetworkManager.sharedInstance.downloadToServer(path: site, url: url2, result: {
NetworkManager.sharedInstance.downloadToServer(path: site, url: url2, cookies: nil, result: {
(r) in (r) in
print(r) print(r)
self.showAlert(title: "download ready", message: r) self.showAlert(title: "download ready", message: r)

2
kplayer/master/ServerDownloadDelegate.swift

@ -20,7 +20,7 @@ class ServerDownloadDelegate : DownloadDelegate {
} }
func downloadToServer(path: String, url: URL, result: @escaping (String) -> ()) { func downloadToServer(path: String, url: URL, result: @escaping (String) -> ()) {
NetworkManager.sharedInstance.downloadToServer(path: path, url: url, result: result)
NetworkManager.sharedInstance.downloadToServer(path: path, url: url, cookies: nil, result: result)
} }
func inProgress() -> Int { func inProgress() -> Int {

8
kplayer/server/kplayer.js

@ -248,7 +248,13 @@ app.get('/webdl', function (req, res) {
return return
} }
var cmd = 'wget -b -O "'+n+'" "'+p+'"'
var cmd = 'wget -b -O "'+n+'" '
if (req.query.cookies) {
cmd = cmd + '--header="Cookie: ' + req.query.cookies + '" '
}
cmd = cmd + '"'+p+'"'
console.log(cmd) console.log(cmd)
exec(cmd, (err, stdout, stderr) => { exec(cmd, (err, stdout, stderr) => {
if (err) { if (err) {

35
kplayer/web/KBrowserView.swift

@ -89,9 +89,13 @@ struct KBrowserView: View {
ForEach(0..<dlcount) { index in ForEach(0..<dlcount) { index in
let name = makeLabel(url: dlUrls[index]) let name = makeLabel(url: dlUrls[index])
Button(name) {
self.preview(url: dlUrls[index])
HStack {
Button(name) {
self.preview(url: dlUrls[index], dl: false)
}
Button("download") {
self.preview(url: dlUrls[index], dl: true)
}
} }
} }
@ -158,7 +162,7 @@ struct KBrowserView: View {
return name return name
} }
func preview(url: String) {
func preview(url: String, dl: Bool) {
let url2 = URL(string: url)! let url2 = URL(string: url)!
if (url2.pathExtension == "zip") { if (url2.pathExtension == "zip") {
@ -176,18 +180,6 @@ struct KBrowserView: View {
let hostcomp = host.split(separator: ".") let hostcomp = host.split(separator: ".")
let site = String(hostcomp[hostcomp.count-2]) let site = String(hostcomp[hostcomp.count-2])
// if ((url2.pathExtension == "mp4" || url2.pathExtension == "m3u8") && dl) {
// NetworkManager.sharedInstance.downloadToServer(path: site, url: url2, result: {
// (r) in
// print(r)
// self.showAlert(title: "download ready", message: r)
// if (r == "exists") {
//
// }
// })
// return
// }
let item = MediaItem(name: name, path: name, root: site, type: ItemType.VIDEO) let item = MediaItem(name: name, path: name, root: site, type: ItemType.VIDEO)
if url.starts(with: "/") { if url.starts(with: "/") {
@ -207,6 +199,17 @@ struct KBrowserView: View {
self.showVideo(selectedItem: item) self.showVideo(selectedItem: item)
} }
} }
if ((url2.pathExtension == "mp4" || url2.pathExtension == "m3u8") && dl) {
NetworkManager.sharedInstance.downloadToServer(path: site, url: url2, cookies: item.cookies, result: {
(r) in
print(r)
// self.showAlert(title: "download ready", message: r)
if (r == "exists") {
}
})
}
else { else {
showVideo(selectedItem: item) showVideo(selectedItem: item)
} }

Loading…
Cancel
Save