增加今天谁生日
This commit is contained in:
@@ -136,6 +136,10 @@ export class Basics extends plugin {
|
||||
reg: Autisticreg,//我要自闭
|
||||
fnc: 'Autistic'
|
||||
},
|
||||
{
|
||||
reg: '^#?(今天|昨天|明天|后天|\\d{4}-\\d{1,2}-\\d{1,2})谁生日$',
|
||||
fnc: 'groupBirthday'
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
@@ -728,19 +732,20 @@ export class Basics extends plugin {
|
||||
|
||||
//谁是龙王
|
||||
async dragonKing(e) {
|
||||
//图片版
|
||||
//浏览器截图
|
||||
let url = `https://qun.qq.com/interactive/honorlist?gc=${e.group_id}&type=1&_wv=3&_wwv=129`
|
||||
let screenshot = await Browser.Webpage(url, { "Cookie": Bot.cookies['qun.qq.com'] }, {
|
||||
width: 375,
|
||||
height: 667,
|
||||
deviceScaleFactor: 3
|
||||
}, true)
|
||||
if (screenshot) return e.reply(screenshot)
|
||||
//数据版
|
||||
// let res = await QQInterface.dragon(e.group_id)
|
||||
let res = await QQInterface.dragon(e.group_id)
|
||||
e.reply([
|
||||
// `本群龙王:${res.name}`,
|
||||
// segment.image(res.avatar),
|
||||
// `蝉联天数:${res.desc}`,
|
||||
await Browser.Webpage(url, { "Cookie": Bot.cookies['qun.qq.com'] }, {
|
||||
width: 700,
|
||||
height: 700,
|
||||
deviceScaleFactor: 3
|
||||
}, true)
|
||||
`本群龙王:${res.nick}`,
|
||||
segment.image(`https://q1.qlogo.cn/g?b=qq&s=100&nk=${res.uin}`),
|
||||
`蝉联天数:${res.avatar_size}`,
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -765,7 +770,7 @@ export class Basics extends plugin {
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
//图片截图
|
||||
let url = `https://qun.qq.com/m/qun/activedata/speaking.html?gc=${e.group_id}&time=${/(7|七)天/.test(e.msg) ? 1 : 0}&_wv=3&&_wwv=128`
|
||||
let url = `https://qun.qq.com/m/qun/activedata/speaking.html?gc=${e.group_id}&time=${/(7|七)天/.test(e.msg) ? 1 : 0}`
|
||||
//接口数据
|
||||
let res = await QQInterface.SpeakRank(e.group_id, /(7|七)天/.test(e.msg) ? 1 : 0)
|
||||
if (!res) return e.reply("接口失效辣!!!")
|
||||
@@ -776,8 +781,7 @@ export class Basics extends plugin {
|
||||
e.reply([
|
||||
...msg,
|
||||
await Browser.Webpage(url, {
|
||||
"Cookie":
|
||||
Bot.cookies['qun.qq.com']
|
||||
"Cookie": Bot.cookies['qun.qq.com']
|
||||
}, {
|
||||
width: 700,
|
||||
height: 700,
|
||||
@@ -788,8 +792,16 @@ export class Basics extends plugin {
|
||||
|
||||
//今日打卡
|
||||
async DaySigned(e) {
|
||||
//浏览器截图
|
||||
let url = `https://qun.qq.com/v2/signin/list?gc=${e.group_id}}`
|
||||
let screenshot = await Browser.Webpage(url, undefined, {
|
||||
width: 375,
|
||||
height: 667,
|
||||
deviceScaleFactor: 2
|
||||
}, true, common.getck('qun.qq.com', true), false)
|
||||
if (screenshot) return e.reply(screenshot)
|
||||
//出错后使用接口
|
||||
let res = await QQInterface.signInToday(e.group_id)
|
||||
|
||||
if (!res) return e.reply("❎ 出错辣,请稍后重试")
|
||||
if (res.retCode != 0) return e.reply("❎ 未知错误\n" + JSON.stringify(res));
|
||||
|
||||
@@ -799,4 +811,26 @@ export class Basics extends plugin {
|
||||
let msg = list.infos.map((item, index) => `${index + 1}:${item.uidGroupNick}-${item.uid}\n打卡时间:${moment(item.signedTimeStamp * 1000).format("YYYY-MM-DD HH:mm:ss")}`).join("\n");
|
||||
e.reply(msg)
|
||||
}
|
||||
|
||||
//查看某天谁生日
|
||||
async groupBirthday(e) {
|
||||
let date = e.msg.match(/^#?(今天|昨天|明天|后天|\d{4}-\d{1,2}-\d{1,2})谁生日$/)[1]
|
||||
if (date == '昨天') {
|
||||
date = moment().subtract(1, 'days').format("YYYY-MM-DD");
|
||||
} else if (date == '明天') {
|
||||
date = moment().add(1, 'days').format("YYYY-MM-DD");
|
||||
} else if (date == '后天') {
|
||||
date = moment().add(2, 'days').format("YYYY-MM-DD");
|
||||
} else if (date == '今天') {
|
||||
date = moment().format("YYYY-MM-DD");
|
||||
}
|
||||
let url = `https://qun.qq.com/qqweb/m/qun/calendar/detail.html?_wv=1031&_bid=2340&src=3&gc=${e.group_id}&type=2&date=${date}`
|
||||
e.reply(
|
||||
await Browser.Webpage(url, undefined, {
|
||||
width: 375,
|
||||
height: 667,
|
||||
deviceScaleFactor: 2
|
||||
}, true, common.getck('qun.qq.com', true))
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -243,6 +243,10 @@ export const helpList = [{
|
||||
"title": "#acg刻晴",
|
||||
"desc": "acgcos",
|
||||
"icon": 9
|
||||
}, {
|
||||
"title": "#今天谁生日",
|
||||
"desc": "今天可换为昨天或后天或日期",
|
||||
"icon": 12
|
||||
},]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
import puppeteer from 'puppeteer'
|
||||
import { segment } from 'oicq'
|
||||
let sleep = (ms) => {
|
||||
return new Promise((resolve) => setTimeout(resolve, ms))
|
||||
}
|
||||
export default new class Browser {
|
||||
/**
|
||||
* @description:返回网页截图
|
||||
@@ -14,7 +17,8 @@ export default new class Browser {
|
||||
width: 1920,
|
||||
height: 1080,
|
||||
deviceScaleFactor: 1
|
||||
}, font = false) {
|
||||
}, font = false, ck = false, fullPage = true) {
|
||||
|
||||
const browser = await puppeteer.launch({
|
||||
args: [
|
||||
'--disable-gpu',
|
||||
@@ -27,23 +31,24 @@ export default new class Browser {
|
||||
]
|
||||
});
|
||||
const page = await browser.newPage();
|
||||
await page.setExtraHTTPHeaders(headers)
|
||||
await page.goto(url, { 'timeout': 1000 * 30, 'waitUntil': 'networkidle0' });
|
||||
await page.setViewport(setViewport);
|
||||
await page.addStyleTag({
|
||||
content: font ? `* {font-family: "汉仪文黑-65W","雅痞-简","圆体-简","PingFang SC","微软雅黑", sans-serif !important;}` : ''
|
||||
})
|
||||
try {
|
||||
await page.setExtraHTTPHeaders(headers)
|
||||
if (ck) await page.setCookie(...ck)
|
||||
await page.goto(url, { 'timeout': 1000 * 30, 'waitUntil': 'networkidle0' });
|
||||
await page.setViewport(setViewport);
|
||||
await page.addStyleTag({
|
||||
content: font ? `* {font-family: "汉仪文黑-65W","雅痞-简","圆体-简","PingFang SC","微软雅黑", sans-serif !important;}` : ''
|
||||
})
|
||||
|
||||
let res = await page.screenshot({
|
||||
// path: './paper.jpeg',
|
||||
type: 'jpeg',
|
||||
fullPage: true,
|
||||
fullPage,
|
||||
quality: 100
|
||||
}).catch(err => {
|
||||
console.log('截图失败');
|
||||
console.log(err);
|
||||
});
|
||||
// await page.waitFor(5000);
|
||||
return segment.image(res)
|
||||
} catch (e) {
|
||||
console.log('执行异常');
|
||||
@@ -53,41 +58,4 @@ export default new class Browser {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 截图不滚动不等待加载
|
||||
* @param {String} url 网页链接
|
||||
* @param {Number} width 页面的宽度
|
||||
* @param {Number} height 页面的高度
|
||||
* @return {image} 图片
|
||||
*/
|
||||
async webPreview(url, width = 1920, height = 1080, headers = {}) {
|
||||
|
||||
const browser = await puppeteer.launch({
|
||||
headless: true,
|
||||
args: [
|
||||
'--disable-gpu',
|
||||
'--disable-dev-shm-usage',
|
||||
'--disable-setuid-sandbox',
|
||||
'--no-first-run',
|
||||
'--no-sandbox',
|
||||
'--no-zygote',
|
||||
'--single-process'
|
||||
]
|
||||
});
|
||||
const page = await browser.newPage();
|
||||
await page.setExtraHTTPHeaders(headers)
|
||||
await page.goto(url);
|
||||
await page.setViewport({
|
||||
width: width,
|
||||
height: height
|
||||
});
|
||||
|
||||
let res = await page.screenshot({
|
||||
fullPage: true
|
||||
})
|
||||
|
||||
await browser.close();
|
||||
return segment.image(res)
|
||||
}
|
||||
}
|
||||
@@ -204,7 +204,7 @@ export default new class assistant {
|
||||
.then(res => res.text()).catch(err => console.error(err));
|
||||
let data = res.match(/<script>window.__INITIAL_STATE__=(.*?)<\/script>/)
|
||||
if (!data) return false;
|
||||
return data[1]
|
||||
return JSON.parse(data[1])?.currentTalkative
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -198,12 +198,25 @@ export default new class newCommon {
|
||||
* @param {String} data 如:qun.qq.com
|
||||
* @return {Object}
|
||||
*/
|
||||
getck(data) {
|
||||
getck(data, transformation) {
|
||||
let cookie = Bot.cookies[data]
|
||||
let ck = cookie.replace(/=/g, `":"`).replace(/;/g, `","`).replace(/ /g, "").trim()
|
||||
ck = ck.substring(0, ck.length - 2)
|
||||
ck = `{"`.concat(ck).concat("}")
|
||||
return JSON.parse(ck)
|
||||
ck = JSON.parse(`{"`.concat(ck).concat("}"))
|
||||
if (transformation) {
|
||||
let arr = []
|
||||
for (let i in ck) {
|
||||
arr.push({
|
||||
name: i,
|
||||
value: ck[i],
|
||||
domain: data,
|
||||
path: "/",
|
||||
expires: Date.now() + 3600 * 1000
|
||||
})
|
||||
}
|
||||
return arr
|
||||
} else return ck
|
||||
|
||||
}
|
||||
|
||||
/**默认秒转换格式 */
|
||||
|
||||
Reference in New Issue
Block a user