Browse Source

Download to server

master
marcoschmickler 5 years ago
parent
commit
1bb75c92d4
  1. 17
      kplayer/core/NetworkManager.swift
  2. 4
      kplayer/detail/BrowserController.swift
  3. 21
      kplayer/detail/VideoController.swift
  4. 24
      kplayer/server/kplayer.js

17
kplayer/core/NetworkManager.swift

@ -13,7 +13,7 @@ class NetworkManager {
let baseurl = "http://linkstation:8080/tomcat/media" let baseurl = "http://linkstation:8080/tomcat/media"
let vidurl = "http://linkstation:8089" let vidurl = "http://linkstation:8089"
var authenticated = true
var authenticated = false
var favorites = MediaItem(name: "fav", path:"", root: "", type: ItemType.FAVROOT) var favorites = MediaItem(name: "fav", path:"", root: "", type: ItemType.FAVROOT)
@ -506,10 +506,19 @@ class NetworkManager {
} }
} }
func downloadFFMPEG(path: String, url: URL) {
let name = path + "/" + url.lastPathComponent + ".mp4"
func downloadToServer(path: String, url: URL) {
let name = path + "/" + url.lastPathComponent
let queryItems = [URLQueryItem(name: "url", value: url.absoluteString), URLQueryItem(name: "name", value: name)] let queryItems = [URLQueryItem(name: "url", value: url.absoluteString), URLQueryItem(name: "name", value: name)]
var urlComps = URLComponents(string: nodeurl + "ffmpeg")!
let cmd: String
if url.pathExtension == "m3u8" {
cmd = "ffmpeg"
}
else {
cmd = "webdl"
}
var urlComps = URLComponents(string: nodeurl + cmd)!
urlComps.queryItems = queryItems urlComps.queryItems = queryItems
let p = urlComps.url! let p = urlComps.url!
print("ffmpeg \(url.lastPathComponent)") print("ffmpeg \(url.lastPathComponent)")

4
kplayer/detail/BrowserController.swift

@ -47,7 +47,9 @@ class BrowserController : UIViewController, ItemController, WebBrowserDelegate,
config.userContentController.add(self, name: "jsError") config.userContentController.add(self, name: "jsError")
config.setValue(true, forKey: "_allowUniversalAccessFromFileURLs") config.setValue(true, forKey: "_allowUniversalAccessFromFileURLs")
config.websiteDataStore = WKWebsiteDataStore.nonPersistent()
if (currentItem!.name.contains(".x")) {
config.websiteDataStore = WKWebsiteDataStore.nonPersistent()
}
config.websiteDataStore.httpCookieStore.add(self) config.websiteDataStore.httpCookieStore.add(self)
let cookiesStore = config.websiteDataStore.httpCookieStore let cookiesStore = config.websiteDataStore.httpCookieStore

21
kplayer/detail/VideoController.swift

@ -159,16 +159,21 @@ class VideoController: UIViewController, ItemController, BMPlayerDelegate {
} }
} }
let downloadAction = UIAlertAction(title: "Download", style: .default) { (action) in
let downloadAction = UIAlertAction(title: "Download to fav", style: .default) { (action) in
let url = self.currentItem!.playerURL let url = self.currentItem!.playerURL
if url!.pathExtension == "m3u8" {
NetworkManager.sharedInstance.downloadFFMPEG(path: self.currentItem!.root, url: url!)
}
else {
NetworkManager.sharedInstance.download(url: url!)
}
NetworkManager.sharedInstance.download(url: url!)
}
let url = self.currentItem!.playerURL
if url!.pathExtension != "m3u8" {
alertController.addAction(downloadAction)
}
let serverAction = UIAlertAction(title: "Download to server", style: .default) { (action) in
let url = self.currentItem!.playerURL
NetworkManager.sharedInstance.downloadToServer(path: self.currentItem!.root, url: url!)
} }
alertController.addAction(downloadAction)
alertController.addAction(serverAction)
let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) { (action) in let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) { (action) in
} }

24
kplayer/server/kplayer.js

@ -93,13 +93,13 @@ app.get('/alive', function (req, res) {
let date = new Date() let date = new Date()
var d = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds() + "\n" var d = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds() + "\n"
console.log(d) console.log(d)
var p = '/mnt/archive/ren/alive.txt'
var p = '/mnt/archive/ren/kink_archiv/alive.txt'
fs.writeFileSync(p, d, { mode: 0o755 }); fs.writeFileSync(p, d, { mode: 0o755 });
// fs.unlinkSync(p); // fs.unlinkSync(p);
p = '/mnt/backup/ren/alive.txt' p = '/mnt/backup/ren/alive.txt'
fs.writeFileSync(p, d, { mode: 0o755 }); fs.writeFileSync(p, d, { mode: 0o755 });
// fs.unlinkSync(p); // fs.unlinkSync(p);
p = '/mnt/work/ren/alive.txt'
p = '/mnt/work/ren/exotic/alive.txt'
fs.writeFileSync(p, d, { mode: 0o755 }); fs.writeFileSync(p, d, { mode: 0o755 });
// fs.unlinkSync(p); // fs.unlinkSync(p);
res.send("ok") res.send("ok")
@ -125,6 +125,26 @@ app.get('/ffmpeg', function (req, res) {
res.send(p) res.send(p)
}) })
app.get('/webdl', function (req, res) {
var p = req.query.url
var n = "/srv/samba/ren/webdl/" + req.query.name
var cmd = 'wget -b -O "'+n+'" "'+p+'"'
console.log(cmd)
exec(cmd, (err, stdout, stderr) => {
if (err) {
console.log(err)
// node couldn't execute the command
return;
}
// the *entire* stdout and stderr (buffered)
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);
});
res.send(p)
})
app.get('/deleteThumb/*', function (req, res) { app.get('/deleteThumb/*', function (req, res) {
if (req.path.startsWith("/deleteThumb/srv/samba/ren/thumb/")) { if (req.path.startsWith("/deleteThumb/srv/samba/ren/thumb/")) {
var p = req.path.substr(12) var p = req.path.substr(12)

Loading…
Cancel
Save