lintonxue00 commited on
Commit
2b65ba8
1 Parent(s): 188d6be

Upload sign.js

Browse files
Files changed (1) hide show
  1. 不知道/回收站/sign.js +185 -0
不知道/回收站/sign.js ADDED
@@ -0,0 +1,185 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import plugin from '../../../lib/plugins/plugin.js'
2
+ import fs from "fs";
3
+ import lodash from "lodash";
4
+ import { Config } from '../components/index.js'
5
+ import { YamlReader, puppeteer, common } from '../model/index.js';
6
+ import fetch from "node-fetch";
7
+ export class example extends plugin {
8
+ constructor() {
9
+ super({
10
+ name: "小月签到",
11
+ event: "message",
12
+ priority: 500,
13
+ rule: [
14
+ {
15
+ reg: '^#?(小月)?签到$',
16
+ fnc: 'sign',
17
+ },
18
+ {
19
+ reg: '^#?(小月)?(积分排行|积分排名)$',
20
+ fnc: 'rankIntegral',
21
+ },
22
+ {
23
+ reg: '^#?(小月)?(积分查询|查询积分)',
24
+ fnc: 'queryRank',
25
+ }
26
+ ],
27
+ });
28
+
29
+ }
30
+
31
+ async sign(e) {
32
+ let res = await fetch(`https://yxyapi.sesepic.top/sign?user=${e.user_id}`).catch((err) => logger.error(err))
33
+ if (!res?.ok) return e.reply('接口请求失败')
34
+ res = await res.json()
35
+
36
+ let keyres = await fetch(`https://yxyapi.sesepic.top/keys?user=${e.user_id}`).catch(err => { })
37
+ if (keyres?.ok) keyres = await keyres.text()
38
+ if (keyres == 'true')
39
+ keyres = '已激活'
40
+ else
41
+ keyres = '未激活'
42
+
43
+ let tgres = await fetch('https://ovooa.com/API/tgrj/api.php?type=json').catch((err) => { })
44
+ if (tgres?.ok) tgres = await tgres.json()
45
+
46
+ let ylres = await fetch('https://v1.hitokoto.cn/?c=a').catch((err) => { })
47
+ if (ylres?.ok) ylres = await ylres.json()
48
+
49
+ let xzName = ['白羊座', '金牛座', '双子座', '巨蟹座', '狮子座', '处女座', '天秤座', '天蝎座', '射手座', '摩羯座', '水瓶座', '双鱼座']
50
+ let num = Math.floor(Math.random() * xzName.length)
51
+ let xz = await fetch(`https://xiaoapi.cn/API/xzys.php?msg=${encodeURI(xzName[num])}`).catch((err) => { })
52
+ if (xz?.ok) {
53
+ xz = await xz.text()
54
+ xz = xz.split('\n')
55
+ }
56
+
57
+ if (res.data.endExperience >= 99999) res.data.endExperience = 99999
58
+ let { dj, ex } = await getExperience(res.data.endExperience)
59
+ let name = e.sender.card || e.sender.nickname
60
+ name = name.substring(0, 12)
61
+ //签到数据
62
+ let signdata = {
63
+ //头像
64
+ tx: `https://q1.qlogo.cn/g?b=qq&s=0&nk=${e.user_id}`,
65
+ //名字
66
+ name,
67
+ //等级
68
+ dj,
69
+ //经验
70
+ ex,
71
+ //密钥激活状态
72
+ keyres,
73
+ //签到状态
74
+ msg: res.msg,
75
+ //积分
76
+ integral: res.data.integral,
77
+ //经验
78
+ experience: res.data.experience,
79
+ //积分排名
80
+ rank: res.data.rank,
81
+ //累计签到次数
82
+ time: res.data.time,
83
+ //最后签到时间
84
+ endTime: res.data.endTime,
85
+ //总积分
86
+ endIntegral: res.data.endIntegral,
87
+ //总经验
88
+ endExperience: res.data.endExperience,
89
+ //舔狗文案
90
+ tg: tgres?.text ?? '我给你打了几通电话,你终于接了。听到了你发出啊啊啊啊的声音,你说你肚子痛,我想你一定是很难受吧。电话还有个男的对你说“来换个姿势”,一定是在做理疗了。期待你早日康复,我好担心。',
91
+ //动漫语录
92
+ yl: ylres?.hitokoto ?? '只要轻唤你的名字,我们的羁绊就永远不会消逝',
93
+ //出自动漫
94
+ ylfrom: ylres?.from ?? '紫罗兰永恒花园',
95
+ //星座运势
96
+ xz_xz: xz?.[0] ?? '水瓶座',
97
+ xz_sz: xz?.[3] ?? '9',
98
+ xz_color: xz?.[4] ?? '玛瑙黑',
99
+ xz_zt: xz?.[5] ?? '今天适合约恋人到欧式风味的餐厅喝咖啡,咖啡的香浓能让两人之间弥漫着浪漫的气味;花点钱施舍给需要帮助的人,可提升你的财运;谦和的态度才能更好的树立你在客户心中的形象,对你今天的洽谈工作非常有利。 ',
100
+ //随机底图
101
+ bg: await rodom()
102
+ }
103
+
104
+ await puppeteer.render('sign/index', {
105
+ ...signdata
106
+ }, {
107
+ e,
108
+ scale: 2.0,
109
+ })
110
+ }
111
+
112
+ async rankIntegral(e) {
113
+ let res = await fetch(`https://yxyapi.sesepic.top/signrank`).catch(err => { })
114
+ if (res?.ok) res = await res.json()
115
+ for (let i = 0; i < 100; i++) {
116
+ res.rank[i].tx = `https://q1.qlogo.cn/g?b=qq&s=0&nk=${res.rank[i].qq}`
117
+ }
118
+
119
+ let arrQQ = []
120
+ let arrTx = []
121
+ let arrJf = []
122
+ for (let i of res.rank) {
123
+ arrQQ.push(i.qq)
124
+ arrTx.push(i.tx)
125
+ arrJf.push(i.value)
126
+ }
127
+
128
+ arrQQ = arrQQ.toString()
129
+ arrTx = arrTx.toString()
130
+
131
+ let data = {
132
+ arrQQ,
133
+ arrTx,
134
+ arrJf,
135
+ bg: await rodom()
136
+ }
137
+ await puppeteer.render('sign/rank', {
138
+ ...data
139
+ }, {
140
+ e,
141
+ scale: 2.0
142
+ })
143
+ }
144
+
145
+ async queryRank(e) {
146
+ let res = await fetch(`https://test-1.peterliangaaa.repl.co/signrank`).catch(err => { })
147
+ if (res?.ok) res = await res.json()
148
+ if (!res) return e.reply('接口失效')
149
+ let qq = e.at ?? e.msg.match(/\d+/)?.[0]
150
+ if (!qq) return e.reply('未在消息内找到查询者QQ')
151
+ for (let i = 0; i < res.rank.length; i++) {
152
+ if (res.rank[i].qq == qq) {
153
+ return e.reply(`QQ:${qq}\n积分:${res.rank[i].value}\n排名:${i+1}\n总人数:${res.rank.length}`,true)
154
+ }
155
+ }
156
+ e.reply('未在积分榜上查询到此玩家')
157
+ }
158
+ }
159
+ //随机底图
160
+ const rodom = async function () {
161
+ var image = fs.readdirSync(`./plugins/xiaoyue-plugin/resources/sign/imgs`);
162
+ var list_img = [];
163
+ for (let val of image) {
164
+ list_img.push(val)
165
+ }
166
+ var imgs = list_img.length == 1 ? list_img[0] : list_img[lodash.random(0, list_img.length - 1)];
167
+ return imgs;
168
+ }
169
+
170
+ //返回等级,经验
171
+ const getExperience = async function (experience) {
172
+ let dj = {}
173
+ let res = {}
174
+ for (let i = 1; i <= 100; i++) {
175
+ dj['LV' + i] = 1000 * i
176
+ }
177
+ dj['LV100'] = 99999
178
+
179
+ for (let ex in dj) {
180
+ if (dj[ex] >= experience) {
181
+ res = { "dj": ex, "ex": `${experience}/${dj[ex]}` }
182
+ return res
183
+ }
184
+ }
185
+ }