mirror of
https://github.com/shanmiteko/LotteryAutoScript.git
synced 2026-06-04 21:01:17 +08:00
feat: 发布随机动态
This commit is contained in:
parent
f7bd1aea15
commit
9021374f60
47
lib/Base.js
47
lib/Base.js
@ -57,6 +57,23 @@ const Base = {
|
||||
}, time);
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 计数器 0..Infinity
|
||||
* @typedef Counter
|
||||
* @property {()=>Number} next
|
||||
* @property {()=>boolean} clear
|
||||
* @property {()=>Number} value
|
||||
* @returns {Counter}
|
||||
*/
|
||||
counter() {
|
||||
let c = {
|
||||
i: 0,
|
||||
next: () => c.i++,
|
||||
clear: () => { c.i = 0 },
|
||||
value: () => c.i
|
||||
}
|
||||
return c
|
||||
},
|
||||
/**
|
||||
* 随机获取字符串数组中的字符串
|
||||
* @param {string[]} arr
|
||||
@ -65,6 +82,36 @@ const Base = {
|
||||
getRandomStr: arr => {
|
||||
return arr[parseInt(Math.random() * arr.length)];
|
||||
},
|
||||
/**
|
||||
* 一言接口
|
||||
* @returns {Promise<string>}
|
||||
*/
|
||||
getHiToKoTo() {
|
||||
return new Promise(resolve => {
|
||||
HttpRequest({
|
||||
method: 'GET',
|
||||
url: 'https://v1.hitokoto.cn/',
|
||||
query: {
|
||||
encode: 'text',
|
||||
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, */*',
|
||||
},
|
||||
success: res => {
|
||||
if (Date.now() % 7) {
|
||||
resolve(res.body)
|
||||
} else {
|
||||
resolve('发条动态证明自己是真人[doge][doge][doge]')
|
||||
}
|
||||
},
|
||||
error: () => {
|
||||
resolve('发条动态证明自己是真人[doge][doge][doge]')
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 提取开奖信息
|
||||
* @param {string} des 描述
|
||||
|
||||
@ -481,6 +481,30 @@ const BiliAPI = {
|
||||
});
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 发布一条无图的动态
|
||||
* @param {string} content
|
||||
*/
|
||||
createDynamic: content => {
|
||||
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
|
||||
},
|
||||
success: responseText => {
|
||||
if (/^{"code":0/.test(responseText)) {
|
||||
console.log('[发布动态]成功创建一条随机内容的动态');
|
||||
} else {
|
||||
console.warn(`[发布动态]发布动态失败\n${responseText}`);
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 移除动态
|
||||
* @param {string} dyid
|
||||
|
||||
@ -10,7 +10,7 @@ const default_config = {
|
||||
minfollower: '1000',
|
||||
/* 与最新黑名单同步 */
|
||||
blacklist: '28008897,28272016,140389827,24598781,28008860,28008880,28008743,28008948,28009292,319696958,90138218,28272000,28272047,28271978,8831288,175979009,3177443,486780865,403048135,474325039,455274996,477519424,292671666,448873224,22498938,1770865,444796995,306112375,320193786,606637517,305276429,204487541,404761800,186914127,99439379,457697569,270886929,477519424,401575,201296348,206804212,333584926,34679178,699923691,392689522,178700744,272882445,350977368,487168411,22682842,444949061,523974463,192231907,503908324,383189098,252909207,336467750,264875137,90721742,452299642,677739290,441522918,8766623,698327474,5439672,483247863,237055308,95404163,202052696,1309889741,627942060,455030741,406353670,18036870,470220612',
|
||||
blockword: ["脚本抽奖", "恭喜", "结果"],
|
||||
blockword: ["脚本抽奖", "恭喜", "结果", "抽奖号"],
|
||||
followWhiteList: '',
|
||||
relay: ['转发动态'],
|
||||
chat: [
|
||||
|
||||
@ -60,17 +60,21 @@ const pushplus = (text, desp) => {
|
||||
* @param {string} cookie
|
||||
*/
|
||||
function start() {
|
||||
let i = 0;
|
||||
let times = Base.counter();
|
||||
/* 注册事件 */
|
||||
eventBus.on('Turn_on_the_Monitor', () => {
|
||||
if (i === GlobalVar.Lottery.length) {
|
||||
if (times.value() === GlobalVar.Lottery.length) {
|
||||
console.log('所有动态转发完毕');
|
||||
console.log('[运行结束]目前无抽奖信息,过一会儿再来看看吧');
|
||||
|
||||
i = 0;
|
||||
times.clear();
|
||||
Base.getHiToKoTo().then(sentence => {
|
||||
BiliAPI.createDynamic(sentence);
|
||||
})
|
||||
return;
|
||||
}
|
||||
(new Monitor(GlobalVar.Lottery[i++])).init();
|
||||
const lottery = GlobalVar.Lottery[times.next()];
|
||||
const nlottery = Number(lottery);
|
||||
(new Monitor(isNaN(nlottery) ? lottery : nlottery)).init();
|
||||
});
|
||||
eventBus.emit('Turn_on_the_Monitor');
|
||||
}
|
||||
@ -109,7 +113,7 @@ async function isMe() {
|
||||
if (/恭喜|中奖|地址|支付宝|账号|收款码/.test(content)) {
|
||||
desp += `发生时间: ${transformTimeZone(timestamp * 1000, 8)} <br><br>`
|
||||
desp += `用户: ${sender_uid} <br><br>`
|
||||
desp += `私信你说: ${content} <br><br>`
|
||||
desp += `私信你(${GlobalVar.myUID})说: ${content} <br><br>`
|
||||
desp += `[直达链接](https://message.bilibili.com/#/whisper/mid${sender_uid})`
|
||||
desp += `--------------------- <br><br>`
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user