diff --git a/lib/Base.js b/lib/Base.js index 24b34c3..aa719d2 100644 --- a/lib/Base.js +++ b/lib/Base.js @@ -1,4 +1,3 @@ -const { load } = require('cheerio'); const fs = require('fs'); const path = require('path'); const { HttpRequest } = require("./HttpRequest"); @@ -86,62 +85,27 @@ const Base = { return arr[parseInt(Math.random() * arr.length)]; }, /** - * 一言接口 - * @returns {Promise} + * + * @returns {Promise} */ - getHiToKoTo() { - return new Promise(resolve => { + getPictures: () => { + return new Promise((resolve, reject) => { HttpRequest({ method: 'GET', - url: 'https://v1.hitokoto.cn/', - query: { - encode: 'json', - c: 'i' - }, - headers: { - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36', - Accept: 'text/plain, */*', + url: 'https://gitee.com/shanmite/lottery-notice/raw/master/pictures.json', + config: { + retry: false, }, success: res => { - const { hitokoto } = Base.strToJson(res.body); - if (hitokoto) { - resolve(hitokoto) - } else { - resolve('[doge][doge][doge]') + try { + let { img_src } = JSON.parse(res.body); + resolve([0, 0].map(() => img_src[~~(Math.random() * img_src.length)])) + } catch (_) { + reject('[doge][doge][doge]') } }, failure: () => { - resolve('[doge][doge][doge]') - } - }) - }); - }, - /** - * 知乎热榜接口 - * @returns {Promise} - */ - getZhihuBillBoard() { - return new Promise((resolve) => { - HttpRequest({ - method: 'GET', - url: 'https://www.zhihu.com/billboard', - headers: { - Accept: 'text/html, text/plain, */*', - }, - success: res => { - const $ = load(res.body); - const ret = Array.from($('.HotList-itemTitle').map((_, ele) => { - return $(ele).text() - })) - if (ret.length) { - resolve(ret) - } else { - resolve('‍[tv_doge]‍‍[tv_doge]‍‍[tv_doge]‍') - } - }, - failure: err => { - console.log(err) - resolve('‍[tv_doge]‍‍[tv_doge]‍‍[tv_doge]‍') + reject('[doge][doge][doge]') } }) }); diff --git a/lib/BiliAPI.js b/lib/BiliAPI.js index 93c22f3..af65a4e 100644 --- a/lib/BiliAPI.js +++ b/lib/BiliAPI.js @@ -482,20 +482,36 @@ const BiliAPI = { }); }, /** - * 发布一条无图的动态 + * @typedef Pictures + * @property {string} img_src + * 发布一条动态 * @param {string} content + * @param {Array} pictures */ - createDynamic: content => { + createDynamic: (content, pictures) => { + let data = { + csrf: GlobalVar.csrf, + extension: '{"emoji_type":1,"from":{"emoji_type":1},"flag_cfg":{}}' + } + if (content) { + data = { + ...data, + content, + } + } + if (pictures) { + data = { + ...data, + biz: 3, + category: 3, + pictures: JSON.stringify(pictures) + } + } Ajax.post({ url: 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/create', hasCookies: true, dataType: 'application/x-www-form-urlencoded', - data: { - content, - type: 4, - extension: '{"emoji_type":1,"from":{"emoji_type":1},"flag_cfg":{}}', - csrf: GlobalVar.csrf - }, + data, success: responseText => { if (/^{"code":0/.test(responseText)) { console.log('[发布动态]成功创建一条随机内容的动态'); diff --git a/lib/lottery-in-nodejs.js b/lib/lottery-in-nodejs.js index cae681f..f52b388 100644 --- a/lib/lottery-in-nodejs.js +++ b/lib/lottery-in-nodejs.js @@ -66,15 +66,14 @@ function start() { function createRandomDynamic() { Public.prototype.checkAllDynamic(GlobalVar.myUID, 1).then(Dynamic => { if (Dynamic.allModifyDynamicResArray[0].type === 1) { - if (Date.now() % 11) { - Base.getHiToKoTo().then(sentence => { - BiliAPI.createDynamic(sentence); - }) - } else { - Base.getZhihuBillBoard().then(billboard => { - BiliAPI.createDynamic(billboard[~~(Math.random() * 11)]); - }) - } + Base.getPictures().then( + (pic) => { + BiliAPI.createDynamic('', pic); + }, + (con) => { + BiliAPI.createDynamic(con); + } + ) } }) } diff --git a/package-lock.json b/package-lock.json index 8098320..e48d199 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "lottery-in-bilibili", - "version": "1.1.0", + "version": "2.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -145,11 +145,6 @@ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=" }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -234,32 +229,6 @@ } } }, - "cheerio": { - "version": "1.0.0-rc.5", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.5.tgz", - "integrity": "sha512-yoqps/VCaZgN4pfXtenwHROTp8NG6/Hlt4Jpz2FEP0ZJQ+ZUkVDd0hAPDNKhj3nakpfPt/CNs57yEtxD1bXQiw==", - "requires": { - "cheerio-select-tmp": "^0.1.0", - "dom-serializer": "~1.2.0", - "domhandler": "^4.0.0", - "entities": "~2.1.0", - "htmlparser2": "^6.0.0", - "parse5": "^6.0.0", - "parse5-htmlparser2-tree-adapter": "^6.0.0" - } - }, - "cheerio-select-tmp": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/cheerio-select-tmp/-/cheerio-select-tmp-0.1.1.tgz", - "integrity": "sha512-YYs5JvbpU19VYJyj+F7oYrIE2BOll1/hRU7rEy/5+v9BzkSo3bK81iAeeQEMI92vRIxz677m72UmJUiVwwgjfQ==", - "requires": { - "css-select": "^3.1.2", - "css-what": "^4.0.0", - "domelementtype": "^2.1.0", - "domhandler": "^4.0.0", - "domutils": "^2.4.4" - } - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -296,23 +265,6 @@ "which": "^2.0.1" } }, - "css-select": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-3.1.2.tgz", - "integrity": "sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^4.0.0", - "domhandler": "^4.0.0", - "domutils": "^2.4.3", - "nth-check": "^2.0.0" - } - }, - "css-what": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-4.0.0.tgz", - "integrity": "sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A==" - }, "debug": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", @@ -337,39 +289,6 @@ "esutils": "^2.0.2" } }, - "dom-serializer": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz", - "integrity": "sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", - "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==" - }, - "domhandler": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz", - "integrity": "sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==", - "requires": { - "domelementtype": "^2.1.0" - } - }, - "domutils": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz", - "integrity": "sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0" - } - }, "duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", @@ -393,11 +312,6 @@ "ansi-colors": "^4.1.1" } }, - "entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -670,17 +584,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "htmlparser2": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.0.0.tgz", - "integrity": "sha512-numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.4.4", - "entities": "^2.0.0" - } - }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -840,14 +743,6 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "nth-check": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", - "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", - "requires": { - "boolbase": "^1.0.0" - } - }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -879,19 +774,6 @@ "callsites": "^3.0.0" } }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "requires": { - "parse5": "^6.0.1" - } - }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", diff --git a/package.json b/package.json index f68cce4..55b5487 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,6 @@ "eslint": "^7.17.0" }, "dependencies": { - "cheerio": "^1.0.0-rc.5", "unzipper": "^0.10.11" } }