diff --git a/README.md b/README.md index a98788d..6be35e1 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,11 @@ var userId = "66745436"; /* 替换成你的 Bilibili UID,可在个人空间中 引入完成后在页面中需要添加追番列表的地方添加一个容器: ```html -
+
+
+ +
+
``` #### 方案二:静态博客插件 diff --git a/dist/bilibili-bangumi.css b/dist/bilibili-bangumi.css index 04aa971..7c8d434 100644 --- a/dist/bilibili-bangumi.css +++ b/dist/bilibili-bangumi.css @@ -1 +1 @@ -/*! Bilibili-Bangumi-JS v1.0.1 | Hans362 (https://hans362.cn) | https://bilibili-bangumi-js.vercel.app | MIT License */.bgm-collection{margin:0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-left:-15px;width:calc(100% + 15px)}.bgm-item{display:block;margin-left:15px;margin-bottom:15px;position:relative;-webkit-box-shadow:0 0 6px rgba(0,0,0,.2);box-shadow:0 0 6px rgba(0,0,0,.2);-webkit-transition:.3s ease box-shadow;-o-transition:.3s ease box-shadow;transition:.3s ease box-shadow;border:none!important;text-decoration:none!important;background:#fff}.bgm-item:hover{-webkit-box-shadow:0 6px 12px rgba(0,0,0,.2);box-shadow:0 6px 12px rgba(0,0,0,.2);border:none!important;text-decoration:none!important}@media screen and (max-width:767.5px){.bgm-item{width:calc(33.33333333333% - 15px)}}@media screen and (max-width:450px){.bgm-item{width:calc(50% - 15px)}}@media screen and (min-width:767.5px){.bgm-item{width:calc(25% - 15px)}}.bgm-item-thumb{width:100%;background-position:center;background-repeat:no-repeat;background-size:cover}.bgm-item-info{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.5rem;overflow:hidden}.bgm-item-info>*{display:block;text-align:center;margin:0 auto;max-width:100%}.bgm-item-title{white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;font-size:.9rem;color:#333}.bgm-item-title:not(.main){color:#5e5b5c}.bgm-item-title.main{font-size:1.2rem}.bgm-item-statusBar-container{margin:.2rem auto;background:#7cd4f2;width:100%;position:relative;z-index:0;color:#fff;border-radius:16px}.bgm-item-statusBar{position:absolute;height:100%;background:#00a1d6;left:0;top:0;z-index:-1;border-radius:16px}.loader{text-align:center;padding:.3em;width:6.5em;margin:1.2rem auto;border:3px solid rgba(0,0,0,.2);color:#333;-webkit-transition:.3s ease all;-o-transition:.3s ease all;transition:.3s ease all;cursor:pointer;white-space:nowrap}body.theme-dark .loader{border:3px solid rgba(255,255,255,.2);color:#b0b0b0}.loader:hover,body.theme-dark .loader:hover{border:3px solid #00a1d6;color:#00a1d6}.dot{width:8px;height:8px;background:#00a1d6;border-radius:100%;display:inline-block;-webkit-animation:slide 1s infinite;animation:slide 1s infinite;margin:0 10px}.dot:nth-child(1){-webkit-animation-delay:.1s;animation-delay:.1s}.dot:nth-child(2){-webkit-animation-delay:.2s;animation-delay:.2s}.dot:nth-child(3){-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes slide{0%{-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.3;-webkit-transform:scale(2);transform:scale(2)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes slide{0%{-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.3;-webkit-transform:scale(2);transform:scale(2)}100%{-webkit-transform:scale(1);transform:scale(1)}} \ No newline at end of file +/*! Bilibili-Bangumi-JS v1.0.2 | Hans362 (https://hans362.cn) | https://bilibili-bangumi-js.vercel.app | MIT License */.bgm-collection{margin:0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-left:-15px;width:calc(100% + 15px)}.bgm-item{display:block;margin-left:15px;margin-bottom:15px;position:relative;-webkit-box-shadow:0 0 6px rgba(0,0,0,.2);box-shadow:0 0 6px rgba(0,0,0,.2);-webkit-transition:.3s ease box-shadow;-o-transition:.3s ease box-shadow;transition:.3s ease box-shadow;border:none!important;text-decoration:none!important;background:#fff}.bgm-item:hover{-webkit-box-shadow:0 6px 12px rgba(0,0,0,.2);box-shadow:0 6px 12px rgba(0,0,0,.2);border:none!important;text-decoration:none!important}@media screen and (max-width:767.5px){.bgm-item{width:calc(33.33333333333% - 15px)}}@media screen and (max-width:450px){.bgm-item{width:calc(50% - 15px)}}@media screen and (min-width:767.5px){.bgm-item{width:calc(25% - 15px)}}.bgm-item-thumb{width:100%;background-position:center;background-repeat:no-repeat;background-size:cover}.bgm-item-info{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.5rem;overflow:hidden}.bgm-item-info>*{display:block;text-align:center;margin:0 auto;max-width:100%}.bgm-item-title{white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;font-size:.9rem;color:#333}.bgm-item-title:not(.main){color:#5e5b5c}.bgm-item-title.main{font-size:1.2rem}.bgm-item-statusBar-container{margin:.2rem auto;background:#7cd4f2;width:100%;position:relative;z-index:0;color:#fff;border-radius:16px}.bgm-item-statusBar{position:absolute;height:100%;background:#00a1d6;left:0;top:0;z-index:-1;border-radius:16px}.bgm-navigator{text-align:center}.bgm-btn{margin:0 auto;display:inline-block;text-decoration:none;height:36px;line-height:36px;border-radius:22px;text-align:center;padding:0 20px;min-width:80px;color:#fff;background-color:#2e9fff}.loader{text-align:center;padding:.3em;width:6.5em;margin:1.2rem auto;border:3px solid rgba(0,0,0,.2);color:#333;-webkit-transition:.3s ease all;-o-transition:.3s ease all;transition:.3s ease all;cursor:pointer;white-space:nowrap}body.theme-dark .loader{border:3px solid rgba(255,255,255,.2);color:#b0b0b0}.loader:hover,body.theme-dark .loader:hover{border:3px solid #00a1d6;color:#00a1d6}.dot{width:8px;height:8px;background:#00a1d6;border-radius:100%;display:inline-block;-webkit-animation:slide 1s infinite;animation:slide 1s infinite;margin:0 10px}.dot:nth-child(1){-webkit-animation-delay:.1s;animation-delay:.1s}.dot:nth-child(2){-webkit-animation-delay:.2s;animation-delay:.2s}.dot:nth-child(3){-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes slide{0%{-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.3;-webkit-transform:scale(2);transform:scale(2)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes slide{0%{-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.3;-webkit-transform:scale(2);transform:scale(2)}100%{-webkit-transform:scale(1);transform:scale(1)}} \ No newline at end of file diff --git a/dist/bilibili-bangumi.js b/dist/bilibili-bangumi.js index 0ea5c1d..480dd33 100644 --- a/dist/bilibili-bangumi.js +++ b/dist/bilibili-bangumi.js @@ -1 +1 @@ -/*! Bilibili-Bangumi-JS v1.0.1 | Hans362 (https://hans362.cn) | https://bilibili-bangumi-js.vercel.app | MIT License */"use strict";var bangumiJson=(apiUrl||"https://bilibili-bangumi-js.vercel.app/api")+"?vmid="+userId+"&token="+(new Date).getTime()+Math.random();$.getJSON(bangumiJson,function(e){$("#bgm-collection").empty(),$.each(e.data.list,function(e,s){var t=0;s.is_finish?t=s.total_count:s.is_started&&"即将开播"!=s.new_ep.index_show?(t=s.new_ep.title,$.isNumeric(t)||(t=s.total_count)):t=0,t<0&&(t=0);var i=0;s.is_started?0<=s.progress.indexOf("已看完")?i=t:void 0!==s.progress&&-1==s.progress.indexOf("PV")?(i=s.progress.substring(s.progress.indexOf("第")+1,s.progress.indexOf("话")),$.isNumeric(i)||(i=t)):i=0:i=0;var n=i/t*100,a=s.cover.replace("http","https");$("#bgm-collection").append('\n \n \n
\n '+s.title+'\n '+s.evaluate+'\n
\n
\n 进度:'+i+" / "+t+"\n
\n
\n
\n ")})}); \ No newline at end of file +/*! Bilibili-Bangumi-JS v1.0.2 | Hans362 (https://hans362.cn) | https://bilibili-bangumi-js.vercel.app | MIT License */"use strict";var bangumiJson=(apiUrl||"https://bilibili-bangumi-js.vercel.app/api")+"?vmid="+userId+"&token="+(new Date).getTime()+Math.random();function getPage(t){$.getJSON(bangumiJson+"&pn="+t,function(e){1==t?$(".bgm-collection").empty():$(".bgm-navigator").remove(),$.each(e.data.list,function(e,t){var a=0;t.is_finish?a=t.total_count:t.is_started&&"即将开播"!=t.new_ep.index_show?(a=t.new_ep.title,$.isNumeric(a)||(a=t.total_count)):a=0,a<0&&(a=0);var i=0;t.is_started?0<=t.progress.indexOf("已看完")?i=a:void 0!==t.progress&&-1==t.progress.indexOf("PV")?(i=t.progress.substring(t.progress.indexOf("第")+1,t.progress.indexOf("话")),$.isNumeric(i)||(i=a)):i=0:i=0;var s=i/a*100,n=t.cover.replace("http","https");$(".bgm-collection").append('\n \n \n
\n '+t.title+'\n '+t.evaluate+'\n
\n
\n 进度:'+i+" / "+a+"\n
\n
\n
\n ")}),t\n 加载更多\n \n ')})}getPage(1); \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 2565225..d599906 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -5,6 +5,7 @@ const autoprefixer = require('gulp-autoprefixer'); const cleanCSS = require('gulp-clean-css'); const header = require('gulp-header'); const pkg = require('./package.json'); +const connect = require('gulp-connect'); const jsBanner = ['/*! Bilibili-Bangumi-JS v<%= pkg.version %>', @@ -62,4 +63,12 @@ gulp.task('minify-css', () => gulp.src('src/**/*.css') gulp.task('build', gulp.parallel('minify-js', 'minify-css')); -gulp.task('default', gulp.parallel('build')); \ No newline at end of file +gulp.task('server', function() { + connect.server({ + livereload: true, + port: 8888, + host: "0.0.0.0" + }); +}); + +gulp.task('default', gulp.parallel('build')); diff --git a/index.html b/index.html index a246782..90409e5 100644 --- a/index.html +++ b/index.html @@ -140,8 +140,8 @@

演示

以下为作者本人的 Bilibili 追番进度:

-
- +
+
diff --git a/package-lock.json b/package-lock.json index 8daeb98..aca692b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1224,6 +1224,11 @@ } } }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + }, "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", @@ -1238,6 +1243,38 @@ "file-uri-to-path": "1.0.0" } }, + "body": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", + "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", + "requires": { + "continuable-cache": "^0.3.1", + "error": "^7.0.0", + "raw-body": "~1.1.0", + "safe-json-parse": "~1.0.1" + }, + "dependencies": { + "bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=" + }, + "raw-body": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", + "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", + "requires": { + "bytes": "1", + "string_decoder": "0.10" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", @@ -1546,6 +1583,22 @@ } } }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + } + }, + "connect-livereload": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/connect-livereload/-/connect-livereload-0.6.1.tgz", + "integrity": "sha512-3R0kMOdL7CjJpU66fzAkCe6HNtd3AavCS4m+uW4KtJjrdGPT0SQEZieAYd+cm+lJoBznNQ4lqipYWkhBMgk00g==" + }, "content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -1559,6 +1612,11 @@ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, + "continuable-cache": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", + "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=" + }, "convert-source-map": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", @@ -1762,6 +1820,14 @@ "once": "^1.4.0" } }, + "error": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz", + "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==", + "requires": { + "string-template": "~0.2.1" + } + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -2026,6 +2092,14 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=" }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", @@ -2400,6 +2474,75 @@ } } }, + "gulp-connect": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/gulp-connect/-/gulp-connect-5.7.0.tgz", + "integrity": "sha512-8tRcC6wgXMLakpPw9M7GRJIhxkYdgZsXwn7n56BA2bQYGLR9NOPhMzx7js+qYDy6vhNkbApGKURjAw1FjY4pNA==", + "requires": { + "ansi-colors": "^2.0.5", + "connect": "^3.6.6", + "connect-livereload": "^0.6.0", + "fancy-log": "^1.3.2", + "map-stream": "^0.0.7", + "send": "^0.16.2", + "serve-index": "^1.9.1", + "serve-static": "^1.13.2", + "tiny-lr": "^1.1.1" + }, + "dependencies": { + "ansi-colors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-2.0.5.tgz", + "integrity": "sha512-yAdfUZ+c2wetVNIFsNRn44THW+Lty6S5TwMpUfLA/UaGhiXbBv/F8E60/1hMLd0cnF/CDoWH8vzVaI5bAcHCjw==" + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + } + } + }, "gulp-header": { "version": "2.0.9", "resolved": "https://registry.npmjs.org/gulp-header/-/gulp-header-2.0.9.tgz", @@ -2516,6 +2659,11 @@ "toidentifier": "1.0.0" } }, + "http-parser-js": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", + "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==" + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -2830,6 +2978,11 @@ "resolve": "^1.1.7" } }, + "livereload-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", + "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==" + }, "load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", @@ -3118,6 +3271,11 @@ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", @@ -3662,6 +3820,11 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "safe-json-parse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", + "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=" + }, "safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", @@ -3715,6 +3878,38 @@ } } }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + } + } + }, "serve-static": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", @@ -3956,6 +4151,11 @@ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" }, + "string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -4030,6 +4230,34 @@ "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" }, + "tiny-lr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", + "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", + "requires": { + "body": "^5.1.0", + "debug": "^3.1.0", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.3.0", + "object-assign": "^4.1.0", + "qs": "^6.4.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, "to-absolute-glob": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", @@ -4352,6 +4580,21 @@ "source-map": "^0.5.1" } }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", diff --git a/package.json b/package.json index 6ff43bc..4269598 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "gulp-autoprefixer": "^7.0.1", "gulp-babel": "^8.0.0", "gulp-clean-css": "^4.3.0", + "gulp-connect": "^5.7.0", "gulp-header": "^2.0.9", "gulp-uglify": "^3.0.2", "module-alias": "^2.2.2" diff --git a/src/bilibili-bangumi.css b/src/bilibili-bangumi.css index f4b6bc1..4e4f7db 100644 --- a/src/bilibili-bangumi.css +++ b/src/bilibili-bangumi.css @@ -94,6 +94,22 @@ z-index: -1; border-radius: 16px; } +.bgm-navigator{ + text-align: center; +} +.bgm-btn{ + margin: 0 auto; + display: inline-block; + text-decoration: none; + height: 36px; + line-height: 36px; + border-radius: 22px; + text-align: center; + padding: 0 20px; + min-width: 80px; + color: white; + background-color: #2e9fff; +} .loader{ text-align: center; diff --git a/src/bilibili-bangumi.js b/src/bilibili-bangumi.js index cf2e551..d29a521 100644 --- a/src/bilibili-bangumi.js +++ b/src/bilibili-bangumi.js @@ -1,43 +1,58 @@ var bangumiJson = (apiUrl || "https://bilibili-bangumi-js.vercel.app/api") + "?vmid=" + userId + "&token=" + new Date().getTime() + Math.random(); -$.getJSON(bangumiJson, function (data) { - $("#bgm-collection").empty(); - $.each(data.data.list, function (index, value) { - var total = 0; - if (value.is_finish) { - total = value.total_count; - } else if (!value.is_started || value.new_ep.index_show == '即将开播') { - total = 0; +function getPage(pageNum) { + $.getJSON(bangumiJson + "&pn=" + pageNum, function (data) { + if (pageNum == 1) { + $(".bgm-collection").empty(); } else { - total = value.new_ep.title; - if (!$.isNumeric(total)) total = value.total_count; + $(".bgm-navigator").remove(); } - if (total < 0) total = 0; - var ep = 0; - if (!value.is_started) { - ep = 0; - } else if (value.progress.indexOf('已看完') >= 0) { - ep = total; - } else if (typeof value.progress !== 'undefined' && value.progress.indexOf('PV') == -1) { - ep = value.progress.substring(value.progress.indexOf('第') + 1, value.progress.indexOf('话')); - if (!$.isNumeric(ep)) ep = total; - } else { - ep = 0; - } - var percentage = ep / total * 100; - var cover = value.cover.replace('http','https'); - $("#bgm-collection").append(` - - -
- ${value.title} - ${value.evaluate} -