├── README.md └── TreeView └── TreeView.js /README.md: -------------------------------------------------------------------------------- 1 | # BaiduNetdiskPlugin-WEB(userscript) 2 | 百度网盘Web端插件(油猴脚本) 3 | 4 | 使用方法可参见:[Greasy Fork](https://greasyfork.org/zh-CN) 5 | 6 | 7 | 8 | --- 9 | ## 列表 10 | ### TreeView(文件树视图) 11 | > 文件树视图查看文件(目前仅支持分享文件页面) 12 | 13 | [Greasy Fork安装](https://greasyfork.org/zh-CN/scripts/374406-zfdev-%E7%99%BE%E5%BA%A6%E7%BD%91%E7%9B%98%E6%96%87%E4%BB%B6%E6%A0%91%E8%A7%86%E5%9B%BE) 14 | 15 |  16 | -------------------------------------------------------------------------------- /TreeView/TreeView.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpBNTlBOEI1NDc1REExMUU2OTM4MkI1QjIwMkY4Nzg2MyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEMEQ2QzQwMURCRjQxMUU4QUEwMkUxQkU3Q0REQTE2OSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEMEQ2QzQwMERCRjQxMUU4QUEwMkUxQkU3Q0REQTE2OSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmI2ODI5YTYzLWNmYTMtYWM0ZS04ZjBhLWIzMjJkOGJmMGZjMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBNTlBOEI1NDc1REExMUU2OTM4MkI1QjIwMkY4Nzg2MyIvPiA8L3Jk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 3 | // @name ZFDev-百度网盘文件树视图 4 | // @namespace https://zfdev.com/ 5 | // @version 0.1 6 | // @description 添加文件树视图,全局查看文件详情 7 | // @author ZFDev 8 | // @match https://pan.baidu.com/s/1* 9 | // @match https://yun.baidu.com/s/1* 10 | // @require https://cdn.staticfile.org/html2canvas/0.5.0-beta4/html2canvas.js 11 | // @grant GM_addStyle 12 | // @run-at document-idle 13 | // ==/UserScript== 14 | 15 | (function() { 16 | 'use strict'; 17 | 18 | GM_addStyle(` 19 | .zfdev-tree-manager{ 20 | background: white; 21 | } 22 | .zfdev-tree-manager .treeview-node { 23 | cursor: unset; 24 | -webkit-user-select: none; 25 | -moz-user-select: none; 26 | -ms-user-select: none; 27 | user-select: none; 28 | height: 30px; 29 | position: relative; 30 | } 31 | .zfdev-tree-manager .treeview-node .treeview-txt{ 32 | cursor: auto; 33 | -webkit-user-select: auto; 34 | -moz-user-select: auto; 35 | -ms-user-select: auto; 36 | user-select: auto; 37 | } 38 | 39 | .zfdev-tree-manager .treeview-node:not(.treeview-node-on) { 40 | border-bottom: 1px solid #f2f6fd; 41 | } 42 | .zfdev-tree-manager .treeview-node:hover { 43 | background: #e5f0fb; 44 | /* border-color: #BBD4EF #fff; */ 45 | } 46 | 47 | .zfdev-tree-manager .treeview-node .treeview-node-handler { 48 | display: inline-block; 49 | min-width: 60%; 50 | width: auto; 51 | } 52 | .zfdev-tree-manager .treeview-node .treeview-size,.zfdev-tree-manager .treeview-node .treeview-time{ 53 | position: relative; 54 | display: inline-block; 55 | color: #666; 56 | } 57 | .zfdev-tree-manager .treeview-node .treeview-size{ 58 | width:16%; 59 | } 60 | .zfdev-tree-manager .treeview-node .treeview-time{ 61 | width:23%; 62 | } 63 | .zfdev-tree-manager .treeview-node .treeview-txt{ 64 | width: 80%; 65 | padding-right: 10px; 66 | white-space: nowrap; 67 | text-overflow: ellipsis; 68 | overflow: hidden; 69 | } 70 | 71 | /* 生成图片 */ 72 | #gengrate-image-copy-dom li,#gengrate-image-copy-dom ul.treeview, { 73 | width: max-content; 74 | } 75 | #gengrate-image-copy-dom .treeview-node{ 76 | padding-right: 60px; 77 | height: 30px; 78 | border-bottom: 1px solid #f2f6fd; 79 | } 80 | #gengrate-image-copy-dom .treeview-node-handler{ 81 | margin-right: 0!important; 82 | } 83 | #gengrate-image-copy-dom .treeview-node span { 84 | width: 100%; 85 | } 86 | 87 | /* 图片框 */ 88 | #zfdev-treeview-img-div{ 89 | max-height: 800px; 90 | position: absolute; 91 | z-index: 99999999; 92 | top: 50%; 93 | left: 50%; 94 | transform: translate(-50%,-50%); 95 | box-sizing: border-box; 96 | -webkit-box-shadow: 0 0.5em 1em 0.5em rgba(0,0,0,.19); 97 | box-shadow: 0 0.5em 1em 0.5em rgba(0,0,0,.19); 98 | border-bottom-left-radius: .3em; 99 | border-bottom-right-radius: .3em; 100 | padding: 10px; 101 | } 102 | #zfdev-treeview-img-div em{ 103 | height: 25px; 104 | width: 25px; 105 | padding: 0; 106 | margin: 0; 107 | line-height: 25px; 108 | font-size: 12px; 109 | } 110 | 111 | #zfdev-treeview-img-div > div > a{ 112 | border-radius: 50%; 113 | position: absolute; 114 | right: -20px; 115 | width: 25px; 116 | line-height: 25px; 117 | height: 25px; 118 | background-color: white; 119 | box-shadow: rgba(0, 0, 0, 0.19) 0px 0.3px 1em 0.3px; 120 | border: 1px solid rgb(192, 217, 254); 121 | padding: 0px; 122 | margin-right: 0px; 123 | text-align: center; 124 | } 125 | 126 | 127 | `); 128 | GM_addStyle('@font-face{font-family:"iconfont-zfdev-filetree";src:url(data:font/truetype;charset=utf-8;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzI8fUhsAAABfAAAAFZjbWFws/QcPQAAAeQAAAGcZ2x5ZqQfxqgAAAOMAAABjGhlYWQTLAKJAAAA4AAAADZoaGVhB94DhQAAALwAAAAkaG10eBAAAAAAAAHUAAAAEGxvY2EBAgCUAAADgAAAAAptYXhwARcARQAAARgAAAAgbmFtZYx+aQAAAAUYAAADIXBvc3QPWfb4AAAIPAAAAEoAAQAAA4D/gABcBAAAAAAABAAAAQAAAAAAAAAAAAAAAAAAAAQAAQAAAAEAAEEtmIxfDzz1AAsEAAAAAADYBl9GAAAAANgGX0YAAP+ABAADgAAAAAgAAgAAAAAAAAABAAAABAA5AAkAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQQAAZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA5gfmegOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAQAAAAEAAAABAAAAAAAAAUAAAADAAAALAAAAAQAAAFoAAEAAAAAAGIAAwABAAAALAADAAoAAAFoAAQANgAAAAgACAACAADmB+Yx5nr//wAA5gfmMeZ6//8AAAAAAAAAAQAIAAgACAAAAAMAAQACAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAA0AAAAAAAAAAMAAOYHAADmBwAAAAMAAOYxAADmMQAAAAEAAOZ6AADmegAAAAIAAAAAADwAlADGAAAAAgAA/4wD9AN0AAsAHgAAAQYABxYAFzYANyYAEwEHBiIvAiY0NjIfAQE2MhYUAgDU/uUFBQEb1NQBGwUF/uU+/rYEChsKA6QJExoKkQE3ChoTA3QF/uXU1P7lBQUBG9TUARv+of62BAoKBKQKGhMJkQE3ChQaAAAACQAA/5QD1gM8ABUAGgAeACMAJwAsADAANAA4AAABFSM1MzUjNSMRIRUzNSMVIzUzFTM1Ex0BITUHITUhBR0BITUHITUhBR0BITUHITUhARUhNQchNSEB1urq6iQBDgIC6uoCEQHsJP5cAaT+OAHsJP5cAaT+OAHsJP5cAaT8cQHSOf6eAWIBDyvMJJ/9WCt7LNArewEMNmSaajrMNmSaajrANmSaajoDPdLSrIkAAAACAAD/gAQAA4AACwAXAAABHgEXDgEHLgEnPgE3BgAHFgAXNgA3JgACAL79BQX9vr79BQX9vtr+3wUFASHa2gEhBQX+3wNABf2+vv0FBf2+vv1FBf7f2tr+3wUFASHa2gEhAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQAXABUAAQAAAAAAAgAHACwAAQAAAAAAAwAXADMAAQAAAAAABAAXAEoAAQAAAAAABQALAGEAAQAAAAAABgAXAGwAAQAAAAAACgArAIMAAQAAAAAACwATAK4AAwABBAkAAAAqAMEAAwABBAkAAQAuAOsAAwABBAkAAgAOARkAAwABBAkAAwAuAScAAwABBAkABAAuAVUAAwABBAkABQAWAYMAAwABBAkABgAuAZkAAwABBAkACgBWAccAAwABBAkACwAmAh0KQ3JlYXRlZCBieSBpY29uZm9udAppY29uZm9udC16ZmRldi1maWxldHJlZVJlZ3VsYXJpY29uZm9udC16ZmRldi1maWxldHJlZWljb25mb250LXpmZGV2LWZpbGV0cmVlVmVyc2lvbiAxLjBpY29uZm9udC16ZmRldi1maWxldHJlZUdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAGkAYwBvAG4AZgBvAG4AdAAtAHoAZgBkAGUAdgAtAGYAaQBsAGUAdAByAGUAZQBSAGUAZwB1AGwAYQByAGkAYwBvAG4AZgBvAG4AdAAtAHoAZgBkAGUAdgAtAGYAaQBsAGUAdAByAGUAZQBpAGMAbwBuAGYAbwBuAHQALQB6AGYAZABlAHYALQBmAGkAbABlAHQAcgBlAGUAVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG4AZgBvAG4AdAAtAHoAZgBkAGUAdgAtAGYAaQBsAGUAdAByAGUAZQBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAQIBAwEEAQUACXh1YW56aG9uZwdzaHV4aW5nCnVuc2VsZWN0ZWQAAAAA) format("truetype");font-weight:normal;font-style:normal;}.iconfont-zfdev-filetree{font-family:"iconfont-zfdev-filetree" !important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;}.icon-shuxing:before{content:"\\e67a";}.icon-xuanzhong:before{content:"\\e631";}.icon-unselected:before{content:"\\e607";}'); 129 | 130 | 131 | /** 132 | * 设置内部log函数 133 | */ 134 | let log = function() { 135 | console.log.apply(console, arguments); 136 | }; 137 | /** 138 | * 文件类型图标Class 139 | * @type {Object} 140 | */ 141 | let filesIcon = { 142 | "bt": ["fileicon-small-bt", "fileicon-large-bt", "fileicon-middle-bt"], 143 | "torrent": ["fileicon-small-bt", "fileicon-large-bt", "fileicon-middle-bt"], 144 | "dws": ["fileicon-small-dws", "fileicon-large-dws", "fileicon-middle-dws"], 145 | "dwt": ["fileicon-small-dws", "fileicon-large-dws", "fileicon-middle-dws"], 146 | "dxf": ["fileicon-small-dws", "fileicon-large-dws", "fileicon-middle-dws"], 147 | "dwg": ["fileicon-small-dws", "fileicon-large-dws", "fileicon-middle-dws"], 148 | "cad": ["fileicon-small-dws", "fileicon-large-dws", "fileicon-middle-dws"], 149 | "as": ["fileicon-small-code", "fileicon-large-code"], 150 | "sh": ["fileicon-small-code", "fileicon-large-code"], 151 | "c": ["fileicon-small-code", "fileicon-large-code"], 152 | "cpp": ["fileicon-small-code", "fileicon-large-code"], 153 | "h": ["fileicon-small-code", "fileicon-large-code"], 154 | "cs": ["fileicon-small-code", "fileicon-large-code"], 155 | "asp": ["fileicon-small-code", "fileicon-large-code"], 156 | "css": ["fileicon-small-code", "fileicon-large-code"], 157 | "pas": ["fileicon-small-code", "fileicon-large-code"], 158 | "diff": ["fileicon-small-code", "fileicon-large-code"], 159 | "patch": ["fileicon-small-code", "fileicon-large-code"], 160 | "erl": ["fileicon-small-code", "fileicon-large-code"], 161 | "groovy": ["fileicon-small-code", "fileicon-large-code"], 162 | "java": ["fileicon-small-code", "fileicon-large-code"], 163 | "jsp": ["fileicon-small-code", "fileicon-large-code"], 164 | "js": ["fileicon-small-code", "fileicon-large-code"], 165 | "json": ["fileicon-small-code", "fileicon-large-code"], 166 | "pl": ["fileicon-small-code", "fileicon-large-code"], 167 | "php": ["fileicon-small-code", "fileicon-large-code"], 168 | "py": ["fileicon-small-code", "fileicon-large-code"], 169 | "rb": ["fileicon-small-code", "fileicon-large-code"], 170 | "sass": ["fileicon-small-code", "fileicon-large-code"], 171 | "scss": ["fileicon-small-code", "fileicon-large-code"], 172 | "scala": ["fileicon-small-code", "fileicon-large-code"], 173 | "sql": ["fileicon-small-code", "fileicon-large-code"], 174 | "vb": ["fileicon-small-code", "fileicon-large-code"], 175 | "xml": ["fileicon-small-code", "fileicon-large-code"], 176 | "xhtml": ["fileicon-small-code", "fileicon-large-code"], 177 | "html": ["fileicon-small-code", "fileicon-large-code"], 178 | "htm": ["fileicon-small-code", "fileicon-large-code"], 179 | "md": ["fileicon-small-code", "fileicon-large-code"], 180 | "less": ["fileicon-small-code", "fileicon-large-code"], 181 | "lua": ["fileicon-small-code", "fileicon-large-code"], 182 | "go": ["fileicon-small-code", "fileicon-large-code"], 183 | "bat": ["fileicon-small-code", "fileicon-large-code"], 184 | "wml": ["fileicon-small-code", "fileicon-large-code"], 185 | "txt": ["fileicon-small-txt", "fileicon-large-txt", "fileicon-middle-txt"], 186 | "rtf": ["fileicon-small-txt", "fileicon-large-txt", "fileicon-middle-txt"], 187 | "pdf": ["fileicon-small-pdf", "fileicon-large-pdf", "fileicon-middle-pdf"], 188 | "doc": ["fileicon-small-doc", "fileicon-large-doc", "fileicon-middle-doc"], 189 | "docx": ["fileicon-small-doc", "fileicon-large-doc", "fileicon-middle-doc"], 190 | "ppt": ["fileicon-small-ppt", "fileicon-large-ppt", "fileicon-middle-ppt"], 191 | "pptx": ["fileicon-small-ppt", "fileicon-large-ppt", "fileicon-middle-ppt"], 192 | "xls": ["fileicon-small-xls", "fileicon-large-xls", "fileicon-middle-xls"], 193 | "xlsx": ["fileicon-small-xls", "fileicon-large-xls", "fileicon-middle-xls"], 194 | "vsd": ["fileicon-small-vsd", "fileicon-large-vsd", "fileicon-middle-vsd"], 195 | "jpg": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 196 | "jpeg": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 197 | "livp": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 198 | "gif": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 199 | "bmp": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 200 | "png": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 201 | "jpe": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 202 | "cur": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 203 | "svgz": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 204 | "tif": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 205 | "tiff": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 206 | "ico": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 207 | "heic": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 208 | "heif": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 209 | "avci": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 210 | "mmap": ["fileicon-small-mmap", "fileicon-large-mmap", "fileicon-middle-mmap"], 211 | "xmind": ["fileicon-small-xmind", "fileicon-large-xmind", "fileicon-middle-xmind"], 212 | "mm": ["fileicon-small-mm", "fileicon-large-mm", "fileicon-middle-mm"], 213 | "wma": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], 214 | "wav": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], 215 | "mp3": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], 216 | "aac": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], 217 | "ra": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], 218 | "ram": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], 219 | "mp2": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], 220 | "ogg": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], 221 | "aif": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], 222 | "mpega": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], 223 | "amr": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], 224 | "mid": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], 225 | "midi": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], 226 | "m4a": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], 227 | "jpg": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 228 | "jpeg": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 229 | "gif": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 230 | "bmp": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 231 | "png": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 232 | "jpe": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 233 | "cur": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 234 | "svgz": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 235 | "tif": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 236 | "tiff": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 237 | "ico": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], 238 | "exe": ["fileicon-sys-s-exe", "fileicon-sys-l-exe"], 239 | "msi": ["fileicon-sys-s-exe", "fileicon-sys-l-exe"], 240 | "dmg": ["fileicon-sys-s-exe", "fileicon-sys-l-dmg"], 241 | "pkg": ["fileicon-sys-s-exe", "fileicon-sys-l-dmg"], 242 | "psd": ["fileicon-sys-s-psd", "fileicon-sys-l-psd"], 243 | "apk": ["fileicon-sys-s-apk", "fileicon-sys-l-apk"], 244 | "key": ["fileicon-sys-s-key", "fileicon-sys-l-key"], 245 | "ai": ["fileicon-sys-s-ai", "fileicon-sys-l-ai"], 246 | "ipa": ["fileicon-sys-s-ipa", "fileicon-sys-l-ipa"], 247 | "pages": ["fileicon-sys-s-pages", "fileicon-sys-l-pages"], 248 | "numbers": ["fileicon-sys-s-numbers", "fileicon-sys-l-numbers"], 249 | "eot": ["fileicon-sys-s-fonts", "fileicon-sys-l-fonts"], 250 | "ttf": ["fileicon-sys-s-fonts", "fileicon-sys-l-fonts"], 251 | "woff": ["fileicon-sys-s-fonts", "fileicon-sys-l-fonts"], 252 | "eps": ["fileicon-sys-s-eps", "fileicon-sys-l-eps"], 253 | "lnk": ["fileicon-sys-s-links", "fileicon-sys-l-links"], 254 | "link": ["fileicon-sys-s-links", "fileicon-sys-l-links"], 255 | "swf": ["fileicon-sys-s-swf", "fileicon-sys-l-swf"], 256 | "php": ["fileicon-sys-s-code", "fileicon-sys-l-code"], 257 | "c": ["fileicon-sys-s-code", "fileicon-sys-l-code"], 258 | "js": ["fileicon-sys-s-code", "fileicon-sys-l-code"], 259 | "css": ["fileicon-sys-s-code", "fileicon-sys-l-code"], 260 | "html": ["fileicon-sys-s-web", "fileicon-sys-l-web"], 261 | "htm": ["fileicon-sys-s-web", "fileicon-sys-l-web"], 262 | "xhtml": ["fileicon-sys-s-web", "fileicon-sys-l-web"], 263 | "java": ["fileicon-sys-s-code", "fileicon-sys-l-code"], 264 | "cc": ["fileicon-sys-s-code", "fileicon-sys-l-code"], 265 | "python": ["fileicon-sys-s-code", "fileicon-sys-l-code"], 266 | "json": ["fileicon-sys-s-code", "fileicon-sys-l-code"], 267 | "sh": ["fileicon-sys-s-code", "fileicon-sys-l-code"], 268 | "bat": ["fileicon-sys-s-code", "fileicon-sys-l-code"], 269 | "ejs": ["fileicon-sys-s-code", "fileicon-sys-l-code"], 270 | "xml": ["fileicon-sys-s-code", "fileicon-sys-l-code"], 271 | "ts": ["fileicon-sys-s-video", "fileicon-sys-l-video"], 272 | "wmv": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 273 | "rmvb": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 274 | "mpeg4": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 275 | "mpeg2": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 276 | "flv": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 277 | "avi": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 278 | "3gp": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 279 | "mpga": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 280 | "qt": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 281 | "rm": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 282 | "wmz": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 283 | "wmd": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 284 | "wvx": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 285 | "wmx": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 286 | "wm": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 287 | "mpg": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 288 | "mp4": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 289 | "mkv": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 290 | "mpeg": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 291 | "mov": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 292 | "asf": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 293 | "m4v": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 294 | "m3u8": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], 295 | "rar": ["fileicon-small-zip", "fileicon-large-zip", "fileicon-middle-zip"], 296 | "zip": ["fileicon-small-zip", "fileicon-large-zip", "fileicon-middle-zip"], 297 | "other": ["default-small", "default-large", ] 298 | }; 299 | 300 | /** 301 | * 文件排序算法 302 | * @param a 303 | * @param b 304 | * @returns {number} 305 | */ 306 | const name_re = new RegExp().compile(/(^[\d]*)/); 307 | const name_re2 = new RegExp().compile(/\d/g); 308 | 309 | /** 310 | * 数组文件排序算法1 Array.sort 311 | */ 312 | function listSort(a, b) { 313 | // 需同为文件或同为文件夹 314 | if (a.isdir === b.isdir) { 315 | // 获取开头的数字 316 | let key = "server_filename"; 317 | let n1 = a[key].match(name_re), 318 | n2 = b[key].match(name_re); 319 | if (n1 === null || n2 === null) { 320 | // 开头不是数字,用本地排序 321 | return (a[key] + "").localeCompare(b[key] + "") 322 | } else { 323 | // 转为数字比较大小 324 | return parseInt(n1.join("")) - parseInt(n2.join("")); 325 | } 326 | } else { 327 | // 文件夹排前面 328 | return a.isdir ? -1 : 1; 329 | } 330 | } 331 | /** 332 | * 排数组文件排序算法2 Array.sort 333 | */ 334 | function listSort2(a, b) { 335 | if (a.isdir === b.isdir) { 336 | // 获取文件名中所有数字 337 | let key = "server_filename"; 338 | let n1 = a[key].match(name_re2), 339 | n2 = b[key].match(name_re2); 340 | if (n1 === null || n2 === null) { 341 | // 开头不是数字,用本地排序 342 | return (a[key] + "").localeCompare(b[key] + "") 343 | } else { 344 | // 拼接所有数字,并比较大小 345 | return parseInt(n1.join("")) - parseInt(n2.join("")); 346 | } 347 | } else { 348 | // 文件夹排前面 349 | return a.isdir ? -1 : 1; 350 | } 351 | } 352 | 353 | /** 354 | * 修改Location.hash 实现网盘当前路径跳转 355 | * @param {[type]} path 目标路径 356 | * @return {[type]} 无返回 357 | */ 358 | function pathChange(path) { 359 | // 父路径,用于隐藏完整路径 360 | let parentPath = yunData.FILEINFO[0].parent_path; 361 | 362 | let old = location.hash.split("&"); 363 | let newArr = []; 364 | // 添加路径 365 | path = path.substring(0, path.lastIndexOf("/")); 366 | if (path === decodeURIComponent(parentPath)) { 367 | path = "/"; 368 | } 369 | // 添加父路径 370 | newArr.push("#list/path=" + encodeURIComponent(path)); 371 | if (parentPath) { 372 | newArr.push("parentPath=" + parentPath); 373 | } 374 | // 将其他属性重新合并 375 | old.forEach(function(item, i) { 376 | let data = item.split("="); 377 | if (data[0] === "#list/path") { 378 | // path 已生成 379 | } else if (data[0] === "parentPath") { 380 | // parentPath 已生成 381 | } else { 382 | newArr.push(item); 383 | } 384 | }); 385 | // 修改hash 386 | location.hash = newArr.join("&") 387 | } 388 | 389 | /** 390 | * 数字 转 文件大小文本 391 | * @param limit 392 | * @returns {string} 393 | */ 394 | function conver_size_int_to_str(limit) { 395 | let size = ""; 396 | let bit = 1; 397 | if (limit < Math.pow(1024, 1)) { //如果小于0.1KB转化成B 398 | size = limit.toFixed(bit) + "B"; 399 | } else if (limit < Math.pow(1024, 2)) { //如果小于0.1MB转化成KB 400 | size = (limit / Math.pow(1024, 1)).toFixed(bit) + "K"; 401 | } else if (limit < Math.pow(1024, 3)) { //如果小于0.1GB转化成MB 402 | size = (limit / (Math.pow(1024, 2))).toFixed(bit) + "M"; 403 | } else { //其他转化成GB 404 | size = (limit / (Math.pow(1024, 3))).toFixed(bit) + "G"; 405 | } 406 | let sizestr = size + ""; 407 | let len = sizestr.indexOf("."); 408 | let dec = sizestr.substr(len + 1, bit); 409 | if (dec === "00") { //当小数点后为00时 去掉小数部分 410 | return sizestr.substring(0, len) + sizestr.substr(len + bit + 1, 2); 411 | } 412 | return sizestr; 413 | } 414 | 415 | /** 416 | * 文件大小文本 转 数字 417 | * @param sizestr 418 | * @returns {number} 419 | */ 420 | function conver_size_str_to_int(sizestr) { 421 | let size = 0; 422 | if (sizestr.substring(sizestr.length - 2) === s.z) { 423 | size = parseInt(sizestr.substring(0, sizestr.length - 2)) * Math.pow(1024, 1); 424 | } else if (sizestr.substring(sizestr.length - 1) === s.v) { 425 | size = parseInt(sizestr.substring(0, sizestr.length - 1)) * Math.pow(1024, 2); 426 | } else if (sizestr.substring(sizestr.length - 1) === s.w) { 427 | size = parseInt(sizestr.substring(0, sizestr.length - 1)) * Math.pow(1024, 3); 428 | } else if (sizestr.substring(sizestr.length - 1) === s.aa) { 429 | size = parseInt(sizestr.substring(0, sizestr.length - 1)) * Math.pow(1024, 4); 430 | } else { 431 | 432 | } 433 | return size; 434 | } 435 | 436 | 437 | /** 438 | * 时间格式化 439 | * @return {[type]} 返回格式:2018-11-11 11:11 440 | */ 441 | Date.prototype.format = function() { 442 | return this.getFullYear() + '-' + (this.getMonth() + 1) + '-' + this.getDate() + " " + this.getHours() + ":" + this.getMinutes(); 443 | }; 444 | /** 445 | * 将时间戳转为格式化 446 | * @param {[type]} inputTime 时间字符串 447 | * @return {[type]} 返回格式:2018-11-11 11:11 448 | */ 449 | function formatDateTime(inputTime) { 450 | var date = new Date(inputTime); 451 | return date.format(); 452 | }; 453 | 454 | /* ------------------------------------------ 获取百度数据 - LOCAL - START --------------------------------------------------------- */ 455 | let get_uk = function() { 456 | return yunData.SHARE_UK; 457 | }; 458 | let get_shareid = function() { 459 | return yunData.SHARE_ID; 460 | }; 461 | 462 | /** 463 | * 从缓存中获取目录下的文件列表 464 | * @param {[type]} path 路径 465 | * @return {[type]} 存在返回文件列表,不存在返回false 466 | */ 467 | let getCacheData = function(path) { 468 | path = path.substring(0, 1) != "/" ? "/" + path : path; // 不是“/”开头要加上 469 | if (cache.list.data.hasOwnProperty(path)) { 470 | if (cache.list.data[path].hasMore) { 471 | // 如果列表还有未加载的返回false 472 | return false; 473 | } 474 | // 找到返回两次排序后的文件列表 475 | return cache.list.data[path].list.sort(listSort2).sort(listSort); 476 | } else { 477 | return false; 478 | } 479 | }; 480 | 481 | 482 | /* ------------------------------------------ 获取百度数据 - LOCAL - END --------------------------------------------------------- */ 483 | 484 | /* ------------------------------------------ 获取百度数据 - NET - START --------------------------------------------------------- */ 485 | /** 486 | * 网络 - 获取指定路径下的文件列表 487 | * @param {[type]} path 目标路径 488 | * @param {Number} [page=1] 当前页数,默认1 489 | * @return {[type]} 返回Promise对象 490 | */ 491 | let getList = function(path, page = 1) { 492 | return new Promise(function(resolve, reject) { 493 | if (page === 1) { 494 | // 页数等于1时,校验路径是否合法。并修正 495 | path = path.substring(0, 1) != "/" ? "/" + path : path; // 不是/开头要加上 496 | path = encodeURIComponent(path); 497 | } 498 | // 拼接URL,每次获取数量为100(多了没有效果) 499 | let uk = get_uk(), 500 | shareid = get_shareid(), 501 | url = `/share/list?uk=${uk}&shareid=${shareid}&page=${page}&num=100&dir=${path}`; 502 | // 发起Get请求 503 | $.ajax({ 504 | type: "GET", 505 | url: url, 506 | cache: false, 507 | async: true, 508 | success: function(res) { 509 | // 错误处理未考虑所有情况,待补充 510 | // 数量等于100时,可能还存在未获取的数据。需再次再次获取 511 | if (res && res.list.length === 100) { 512 | // 递归获取下一页, 成功后拼接数组 513 | getList(path, page + 1).then(res2 => { 514 | res.list.push.apply(res.list, res2.list); 515 | resolve(res); 516 | }) 517 | } else { 518 | resolve(res); 519 | } 520 | }, 521 | failure: function(result) { 522 | reject(false); 523 | }, 524 | error: function(result) { 525 | reject(false); 526 | }, 527 | 528 | }); 529 | }); 530 | }; 531 | 532 | 533 | 534 | 535 | /* ------------------------------------------ 获取百度数据 - NET - END --------------------------------------------------------- */ 536 | 537 | 538 | /* ------------------------------------------ 文件树管理 - START --------------------------------------------------------- */ 539 | 540 | /** 541 | * 添加节点 542 | */ 543 | let addNode = function(node, item, level) { 544 | 545 | 546 | 547 | }, 548 | /** 549 | * 获取节点 550 | */ 551 | getItme = function(node) { 552 | 553 | 554 | 555 | }, 556 | /** 557 | * 获取节点 558 | */ 559 | setState = function(node) { 560 | 561 | 562 | 563 | }, 564 | /** 565 | * 根据文件信息生成HTML 566 | * @param {[type]} item 文件(夹)信息 567 | * @param {[type]} level 所在目录层次 568 | * @param {[type]} index 当前文件所在的文件序号,1开始 569 | * @return {[type]} 返回HTML 570 | */ 571 | itemToHTML = function(item, level, index) { 572 | /* 573 | width: 60%;display: inline-block; 574 | style="width:70%" 575 | */ 576 | let html = ` 577 |