Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Achou.Wang
115
提交
817f5966
1
115
项目概览
Achou.Wang
/
115
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
1
115
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
817f5966
编写于
6月 04, 2018
作者:
雪
雪月秋水
提交者:
GitHub
6月 04, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #127 from Naituw/feature_single_file_fast_export
Added "export to rpc section" to each file's more menu
上级
d2e4b754
9ad2fc9f
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
99 addition
and
21 deletion
+99
-21
src/js/115.js
src/js/115.js
+14
-4
src/js/home.js
src/js/home.js
+43
-17
src/js/lib/ui.js
src/js/lib/ui.js
+42
-0
未找到文件。
src/js/115.js
浏览文件 @
817f5966
...
...
@@ -16,18 +16,20 @@ class Disk {
if
(
event
.
data
.
type
&&
event
.
data
.
type
===
'
getSelected
'
)
{
window
.
postMessage
({
type
:
'
selected
'
,
data
:
this
.
getSelected
()
},
location
.
origin
)
}
if
(
event
.
data
.
type
&&
event
.
data
.
type
===
'
getHovered
'
)
{
window
.
postMessage
({
type
:
'
hovered
'
,
data
:
this
.
getHovered
()
},
location
.
origin
)
}
if
(
event
.
data
.
type
&&
event
.
data
.
type
===
'
showToast
'
)
{
this
.
showToast
(
event
.
data
.
data
)
}
})
}
get
Selected
(
)
{
get
FileInfoFromElements
(
list
)
{
const
selected
=
[]
const
list
=
this
.
context
.
querySelectorAll
(
'
li[rel="item"]
'
)
Array
.
from
(
list
).
forEach
((
item
)
=>
{
const
type
=
item
.
getAttribute
(
'
file_type
'
)
// file
if
(
type
===
'
1
'
&&
item
.
classList
.
contains
(
'
selected
'
)
)
{
if
(
type
===
'
1
'
)
{
selected
.
push
({
isdir
:
false
,
sha1
:
item
.
getAttribute
(
'
sha1
'
),
...
...
@@ -36,7 +38,7 @@ class Disk {
})
}
// fold
if
(
type
===
'
0
'
&&
item
.
classList
.
contains
(
'
selected
'
)
)
{
if
(
type
===
'
0
'
)
{
selected
.
push
({
isdir
:
true
,
cate_id
:
item
.
getAttribute
(
'
cate_id
'
),
...
...
@@ -46,6 +48,14 @@ class Disk {
})
return
selected
}
getSelected
()
{
const
list
=
this
.
context
.
querySelectorAll
(
'
li[rel="item"].selected
'
)
return
this
.
getFileInfoFromElements
(
list
)
}
getHovered
()
{
const
list
=
this
.
context
.
querySelectorAll
(
'
li[rel="item"].hover
'
)
return
this
.
getFileInfoFromElements
(
list
)
}
}
const
disk
=
new
Disk
()
...
...
src/js/home.js
浏览文件 @
817f5966
...
...
@@ -22,6 +22,9 @@ class Home extends Downloader {
this
.
context
=
document
.
querySelector
(
'
iframe[rel="wangpan"]
'
).
contentDocument
UI
.
init
()
UI
.
addMenu
(
this
.
context
.
querySelector
(
'
#js_upload_btn
'
),
'
beforebegin
'
)
UI
.
addContextMenuRPCSectionWithCallback
(()
=>
{
this
.
addContextMenuEventListener
()
})
Core
.
requestCookies
([{
url
:
'
http://115.com/
'
,
name
:
'
UID
'
},
{
url
:
'
http://115.com/
'
,
name
:
'
CID
'
},
{
url
:
'
http://115.com/
'
,
name
:
'
SEID
'
}])
Core
.
showToast
(
'
初始化成功!
'
,
'
inf
'
)
this
.
mode
=
'
RPC
'
...
...
@@ -29,30 +32,38 @@ class Home extends Downloader {
}
startListen
()
{
const
exportFiles
=
(
files
)
=>
{
files
.
forEach
((
item
)
=>
{
if
(
item
.
isdir
)
{
this
.
addFolder
(
item
)
}
else
{
this
.
addFile
(
item
)
}
})
this
.
start
(
Core
.
getConfigData
(
'
interval
'
),
(
fileDownloadInfo
)
=>
{
if
(
this
.
mode
===
'
RPC
'
)
{
Core
.
aria2RPCMode
(
this
.
rpcURL
,
fileDownloadInfo
)
}
if
(
this
.
mode
===
'
TXT
'
)
{
Core
.
aria2TXTMode
(
fileDownloadInfo
)
document
.
querySelector
(
'
#textMenu
'
).
classList
.
add
(
'
open-o
'
)
}
})
}
window
.
addEventListener
(
'
message
'
,
(
event
)
=>
{
if
(
event
.
data
.
type
&&
event
.
data
.
type
===
'
selected
'
)
{
const
type
=
event
.
data
.
type
if
(
!
type
)
{
return
}
if
(
type
===
'
selected
'
||
type
===
'
hovered
'
)
{
this
.
reset
()
const
selectedFile
=
event
.
data
.
data
if
(
selectedFile
.
length
===
0
)
{
Core
.
showToast
(
'
请选择一下你要保存的文件哦
'
,
'
war
'
)
return
}
selectedFile
.
forEach
((
item
)
=>
{
if
(
item
.
isdir
)
{
this
.
addFolder
(
item
)
}
else
{
this
.
addFile
(
item
)
}
})
this
.
start
(
Core
.
getConfigData
(
'
interval
'
),
(
fileDownloadInfo
)
=>
{
if
(
this
.
mode
===
'
RPC
'
)
{
Core
.
aria2RPCMode
(
this
.
rpcURL
,
fileDownloadInfo
)
}
if
(
this
.
mode
===
'
TXT
'
)
{
Core
.
aria2TXTMode
(
fileDownloadInfo
)
document
.
querySelector
(
'
#textMenu
'
).
classList
.
add
(
'
open-o
'
)
}
})
exportFiles
(
selectedFile
)
}
})
const
menuButton
=
this
.
context
.
querySelector
(
'
#aria2List
'
)
...
...
@@ -70,9 +81,24 @@ class Home extends Downloader {
})
}
addContextMenuEventListener
()
{
const
section
=
this
.
context
.
querySelector
(
'
#more-menu-rpc-section
'
)
section
.
addEventListener
(
'
click
'
,
(
event
)
=>
{
const
rpcURL
=
event
.
target
.
dataset
.
url
if
(
rpcURL
)
{
this
.
rpcURL
=
rpcURL
this
.
getHovered
()
this
.
mode
=
'
RPC
'
}
})
}
getSelected
()
{
window
.
postMessage
({
type
:
'
getSelected
'
},
location
.
origin
)
}
getHovered
()
{
window
.
postMessage
({
type
:
'
getHovered
'
},
location
.
origin
)
}
getFile
(
file
)
{
const
options
=
{
credentials
:
'
include
'
,
...
...
src/js/lib/ui.js
浏览文件 @
817f5966
...
...
@@ -48,7 +48,40 @@ class UI {
event
.
stopPropagation
()
})
}
addContextMenuRPCSectionWithCallback
(
callback
)
{
const
addContextMenuRPCSection
=
(
node
)
=>
{
const
dom
=
`<div class="cell" id="more-menu-rpc-section"><ul></ul></div>`
node
.
insertAdjacentHTML
(
'
beforebegin
'
,
dom
)
if
(
this
.
mostRecentConfigData
)
{
this
.
updateMenu
(
this
.
mostRecentConfigData
)
}
if
(
callback
)
{
callback
()
}
}
const
contextMenuNode
=
this
.
context
.
querySelector
(
'
body > .context-menu .cell
'
)
if
(
contextMenuNode
)
{
addContextMenuRPCSection
(
contextMenuNode
)
}
else
if
(
'
MutationObserver
'
in
window
)
{
const
body
=
this
.
context
.
querySelector
(
'
body
'
)
let
observer
observer
=
new
MutationObserver
((
mutationsList
)
=>
{
let
contextMenuNode
=
this
.
context
.
querySelector
(
'
body > .context-menu .cell
'
)
if
(
contextMenuNode
)
{
observer
.
disconnect
()
addContextMenuRPCSection
(
contextMenuNode
)
}
})
observer
.
observe
(
body
,
{
childList
:
true
})
}
}
resetMenu
()
{
this
.
context
.
querySelectorAll
(
'
#more-menu-rpc-section li
'
).
forEach
((
item
)
=>
{
item
.
remove
()
})
this
.
context
.
querySelectorAll
(
'
.rpc-button
'
).
forEach
((
rpc
)
=>
{
rpc
.
remove
()
})
...
...
@@ -57,11 +90,18 @@ class UI {
this
.
resetMenu
()
const
{
rpcList
}
=
configData
let
rpcDOMList
=
''
let
contextMenuDOMList
=
''
rpcList
.
forEach
((
rpc
)
=>
{
const
rpcDOM
=
`<a class="export-menu-item rpc-button" href="javascript:void(0);" data-url=
${
rpc
.
url
}
>
${
rpc
.
name
}
</a>`
rpcDOMList
+=
rpcDOM
contextMenuDOMList
+=
`<li><a href="javascript:void(0);" data-url=
${
rpc
.
url
}
>
${
rpc
.
name
}
</a></li>`
})
this
.
context
.
querySelector
(
'
#aria2List
'
).
insertAdjacentHTML
(
'
afterbegin
'
,
rpcDOMList
)
const
contextMenuSection
=
this
.
context
.
querySelector
(
'
#more-menu-rpc-section ul
'
)
if
(
contextMenuSection
)
{
contextMenuSection
.
insertAdjacentHTML
(
'
afterbegin
'
,
contextMenuDOMList
)
}
}
addTextExport
()
{
const
text
=
`
...
...
@@ -280,6 +320,8 @@ class UI {
document
.
querySelector
(
'
.userAgent-s
'
).
value
=
userAgent
document
.
querySelector
(
'
.referer-s
'
).
value
=
referer
document
.
querySelector
(
'
.headers-s
'
).
value
=
headers
this
.
mostRecentConfigData
=
configData
}
saveSetting
()
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录