From 07c18122caa61e2136202d563a82fc1dd321e22c Mon Sep 17 00:00:00 2001 From: sususweet Date: Mon, 8 Dec 2025 14:07:07 +0800 Subject: [PATCH] Update baidunetdisk --- extensions/chrome/coplay.js | 73 +++++++++++++++++++++++++++++---- extensions/chrome/main.js | 2 +- extensions/chrome/manifest.json | 1 + package-lock.json | 2 +- src/coplay.js | 72 ++++++++++++++++++++++++++++---- src/main.js | 2 +- 6 files changed, 133 insertions(+), 19 deletions(-) diff --git a/extensions/chrome/coplay.js b/extensions/chrome/coplay.js index 5031902..753eee8 100644 --- a/extensions/chrome/coplay.js +++ b/extensions/chrome/coplay.js @@ -26,11 +26,12 @@ // Supported websites: Youku, SohuTV, Tudou, TencentVideo, iQiyi, YouTube, ACFun, bilibili, MGTV, Vimeo let host = location.host.match( - /(?:^|\.)(youku\.com|sohu\.com|tudou\.com|qq\.com|iqiyi\.com|youtube\.com|acfun\.cn|bilibili\.com|mgtv\.com|vimeo\.com)(?:\/|$)/i + /(?:^|\.)(youku\.com|sohu\.com|tudou\.com|qq\.com|iqiyi\.com|youtube\.com|acfun\.cn|bilibili\.com|mgtv\.com|vimeo\.com|pan\.baidu\.com)(?:\/|$)/i ); if (!host) { return; } + host = host[1].split('.')[0]; /** @@ -148,6 +149,49 @@ * Player adaptor layer */ let playerAdaptor = {}; + playerAdaptor.pan = { + prepare() { + let component = undefined; + let that = this + function WaitForReady() { + if (typeof(videojs) == "undefined") { + return setTimeout(WaitForReady, 1000); + } + component = videojs.getPlayers("video-player").html5player; + console.log(component) + + if (typeof(component) == "undefined") { + console.log("undefined") + return setTimeout(WaitForReady, 1000); + } + component = videojs.getPlayers("video-player").html5player; + that._player = component.tech_ + } + WaitForReady(); + }, + play() { + this._player.play(); + }, + pause() { + this._player.pause(); + }, + seek(sec) { + this._player.setCurrentTime(sec); + }, + isReady() { + return this._player.readyState() !== -1; + }, + getTime() { + return this._player.currentTime(); + }, + toggleFullscreen() { + if (fullscreen()) { + this._player.exitFullScreen(); + } else { + this._player.enterFullScreen(); + } + } + }; playerAdaptor.youku = { prepare() { this._player = window.videoPlayer; @@ -512,6 +556,14 @@ }); on(local, 'click', () => {}); + let refresh = create('button', main, { + id: getId('refresh'), + innerHTML: `${icons['sync']}` + }); + on(refresh, 'click', function() { + initPeer() + }); + let remote = create('input', main, { id: getId('remote'), type: 'text', @@ -594,6 +646,7 @@ coplay.ui = { main, local, + refresh, remote, connect, disconnect, @@ -834,10 +887,10 @@ c.send(pack('PATH', getPath())); break; case 'PATH': - if (p.data !== getPath()) { - console.error('Not on the same page.'); - c.close(); - } + // if (p.data !== getPath()) { + // console.error('Not on the same page.'); + // c.close(); + // } break; case 'MSG': console.log('Remote: ' + p.data); @@ -905,9 +958,13 @@ reliable: false }); - c.on('open', function() { - connect(c); - }); + try{ + c.on('open', function() { + connect(c); + }); + } catch (err) { + alert("peerId 已过期,请重新获取") + } }; coplay.disconnect = function() { diff --git a/extensions/chrome/main.js b/extensions/chrome/main.js index 2f53477..1bc2a05 100644 --- a/extensions/chrome/main.js +++ b/extensions/chrome/main.js @@ -21,7 +21,7 @@ function checkAutoInject() { url: [ { urlMatches: - '(?:^|.)(youku.com|sohu.com|tudou.com|qq.com|iqiyi.com|youtube.com|acfun.cn|bilibili.com|mgtv.com|vimeo.com)(?:/|$)' + '(?:^|.)(youku.com|sohu.com|tudou.com|qq.com|iqiyi.com|youtube.com|acfun.cn|bilibili.com|mgtv.com|vimeo.com|pan.baidu.com)(?:/|$)' } ] }); diff --git a/extensions/chrome/manifest.json b/extensions/chrome/manifest.json index 93b4501..490778d 100644 --- a/extensions/chrome/manifest.json +++ b/extensions/chrome/manifest.json @@ -27,6 +27,7 @@ "https://*.mgtv.com/*", "http://*.vimeo.com/*", "https://*.vimeo.com/*", + "https://pan.baidu.com/*", "activeTab", "webNavigation", "storage", diff --git a/package-lock.json b/package-lock.json index f4c82c0..e2e1185 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "coplay", - "version": "0.5.0", + "version": "0.6.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/coplay.js b/src/coplay.js index 16d1fd0..be68544 100644 --- a/src/coplay.js +++ b/src/coplay.js @@ -26,7 +26,7 @@ // Supported websites: Youku, SohuTV, Tudou, TencentVideo, iQiyi, YouTube, ACFun, bilibili, MGTV, Vimeo let host = location.host.match( - /(?:^|\.)(youku\.com|sohu\.com|tudou\.com|qq\.com|iqiyi\.com|youtube\.com|acfun\.cn|bilibili\.com|mgtv\.com|vimeo\.com)(?:\/|$)/i + /(?:^|\.)(youku\.com|sohu\.com|tudou\.com|qq\.com|iqiyi\.com|youtube\.com|acfun\.cn|bilibili\.com|mgtv\.com|vimeo\.com|pan\.baidu\.com)(?:\/|$)/i ); if (!host) { return; @@ -148,6 +148,49 @@ * Player adaptor layer */ let playerAdaptor = {}; + playerAdaptor.pan = { + prepare() { + let component = undefined; + let that = this + function WaitForReady() { + if (typeof(videojs) == "undefined") { + return setTimeout(WaitForReady, 1000); + } + component = videojs.getPlayers("video-player").html5player; + console.log(component) + + if (typeof(component) == "undefined") { + console.log("undefined") + return setTimeout(WaitForReady, 1000); + } + component = videojs.getPlayers("video-player").html5player; + that._player = component.tech_ + } + WaitForReady(); + }, + play() { + this._player.play(); + }, + pause() { + this._player.pause(); + }, + seek(sec) { + this._player.setCurrentTime(sec); + }, + isReady() { + return this._player.readyState() !== -1; + }, + getTime() { + return this._player.currentTime(); + }, + toggleFullscreen() { + if (fullscreen()) { + this._player.exitFullScreen(); + } else { + this._player.enterFullScreen(); + } + } + }; playerAdaptor.youku = { prepare() { this._player = window.videoPlayer; @@ -512,6 +555,14 @@ }); on(local, 'click', () => {}); + let refresh = create('button', main, { + id: getId('refresh'), + innerHTML: `${icons['sync']}` + }); + on(refresh, 'click', function() { + initPeer() + }); + let remote = create('input', main, { id: getId('remote'), type: 'text', @@ -594,6 +645,7 @@ coplay.ui = { main, local, + refresh, remote, connect, disconnect, @@ -834,10 +886,10 @@ c.send(pack('PATH', getPath())); break; case 'PATH': - if (p.data !== getPath()) { - console.error('Not on the same page.'); - c.close(); - } + // if (p.data !== getPath()) { + // console.error('Not on the same page.'); + // c.close(); + // } break; case 'MSG': console.log('Remote: ' + p.data); @@ -905,9 +957,13 @@ reliable: false }); - c.on('open', function() { - connect(c); - }); + try{ + c.on('open', function() { + connect(c); + }); + } catch (err) { + alert("peerId 已过期,请重新获取") + } }; coplay.disconnect = function() { diff --git a/src/main.js b/src/main.js index 2f53477..1bc2a05 100644 --- a/src/main.js +++ b/src/main.js @@ -21,7 +21,7 @@ function checkAutoInject() { url: [ { urlMatches: - '(?:^|.)(youku.com|sohu.com|tudou.com|qq.com|iqiyi.com|youtube.com|acfun.cn|bilibili.com|mgtv.com|vimeo.com)(?:/|$)' + '(?:^|.)(youku.com|sohu.com|tudou.com|qq.com|iqiyi.com|youtube.com|acfun.cn|bilibili.com|mgtv.com|vimeo.com|pan.baidu.com)(?:/|$)' } ] });