feat: 随机动态改为两张瑟图

This commit is contained in:
shanmite 2021-03-05 22:23:15 +08:00
parent 94889ef91c
commit 296cfa3e3e
5 changed files with 46 additions and 186 deletions

View File

@ -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<string>}
*
* @returns {Promise<import("./BiliAPI").Pictures[]>}
*/
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<string[]>}
*/
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]')
}
})
});

View File

@ -482,20 +482,36 @@ const BiliAPI = {
});
},
/**
* 发布一条无图的动态
* @typedef Pictures
* @property {string} img_src
* 发布一条动态
* @param {string} content
* @param {Array<Pictures>} 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('[发布动态]成功创建一条随机内容的动态');

View File

@ -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);
}
)
}
})
}

120
package-lock.json generated
View File

@ -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",

View File

@ -29,7 +29,6 @@
"eslint": "^7.17.0"
},
"dependencies": {
"cheerio": "^1.0.0-rc.5",
"unzipper": "^0.10.11"
}
}