yz-yuki-plugin 2.0.6-11 → 2.0.6-12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,9 +10,9 @@ pushTime: '*/23 * * * *'
10
10
 
11
11
  # 请求头 User-Agent 列表。如出现 -352 风控,可尝试更换请求头,请根据需要自行添加或修改。可设置多个请求头,每次重启后会随机选择一个。获取方法请浏览器自行搜索。
12
12
  userAgentList:
13
- - Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
14
- #- Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:131.0) Gecko/20100101 Firefox/131.0
15
- #- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0
13
+ - Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36
14
+ #- Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0
15
+ #- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0
16
16
 
17
17
  # 推送监测间隔,单位为秒,默认7200秒即2小时,即以当前时间为基准,监测过去2小时内的动态,并推送。取值范围:3600-36000秒,即过去的1-10h。应大于pushTime的周期。
18
18
  interval: 7200
@@ -5,7 +5,7 @@ import { BiliQuery } from '../models/bilibili/bilibili.main.query.js';
5
5
  import { BiliTask } from '../models/bilibili/bilibili.main.task.js';
6
6
  import Config from '../utils/config.js';
7
7
  import { BiliGetWebData } from '../models/bilibili/bilibili.main.get.web.data.js';
8
- import { applyLoginQRCode, pollLoginQRCode, saveLoginCookie, postGateway, exitBiliLogin, checkBiliLogin, readSavedCookieItems, saveLocalBiliCk, readSyncCookie, getNewTempCk, saveTempCk } from '../models/bilibili/bilibili.main.models.js';
8
+ import { readLoginCookie, applyLoginQRCode, pollLoginQRCode, saveLoginCookie, postGateway, exitBiliLogin, checkBiliLogin, readSavedCookieItems, saveLocalBiliCk, readSyncCookie, getNewTempCk, saveTempCk } from '../models/bilibili/bilibili.main.models.js';
9
9
 
10
10
  const message = new Messages('message');
11
11
  let biliPushData = Config.getConfigData('config', 'bilibili', 'push');
@@ -167,38 +167,44 @@ message.use(async (e) => {
167
167
  }, [/^(#|\/)(yuki|优纪)?(取消|删除|del|DEL)(b站|B站|bili|bilibili|哔哩|哔哩哔哩)推送\s*(视频\s*|图文\s*|文章\s*|转发\s*|直播\s*)*.*$/]);
168
168
  /** 扫码登录B站 */
169
169
  message.use(async (e) => {
170
- if (e.isMaster) {
171
- try {
172
- const token = await applyLoginQRCode(e);
173
- if (token) {
174
- let biliLoginCk = await pollLoginQRCode(e, token);
175
- if (biliLoginCk) {
176
- if (lodash.trim(biliLoginCk).length != 0) {
177
- await saveLoginCookie(e, biliLoginCk);
178
- e.reply(`get bilibili LoginCk:成功!`);
179
- const result = await postGateway(biliLoginCk); //激活ck
180
- const { code, data } = await result.data; // 解析校验结果
181
- switch (code) {
182
- case 0:
183
- global?.logger?.mark(`优纪插件:获取biliLoginCK,Gateway校验成功:${JSON.stringify(data)}`);
184
- break;
185
- default:
186
- global?.logger?.mark(`优纪插件:获取biliLoginCK,Gateway校验失败:${JSON.stringify(data)}`);
187
- break;
170
+ if (!e.isMaster) {
171
+ e.reply('未取得bot主人身份,无权限配置B站登录ck');
172
+ }
173
+ else {
174
+ const LoginCk = await readLoginCookie();
175
+ if (LoginCk) {
176
+ e.reply(`当前已有B站登录ck,请勿重复扫码!\n如需更换,请先删除当前登录再扫码:\n#yuki删除B站登录`);
177
+ }
178
+ else {
179
+ try {
180
+ const token = await applyLoginQRCode(e);
181
+ if (token) {
182
+ let biliLoginCk = await pollLoginQRCode(e, token);
183
+ if (biliLoginCk) {
184
+ if (lodash.trim(biliLoginCk).length != 0) {
185
+ await saveLoginCookie(e, biliLoginCk);
186
+ e.reply(`get bilibili LoginCk:成功!`);
187
+ const result = await postGateway(biliLoginCk); //激活ck
188
+ const { code, data } = await result.data; // 解析校验结果
189
+ switch (code) {
190
+ case 0:
191
+ global?.logger?.mark(`优纪插件:获取biliLoginCK,Gateway校验成功:${JSON.stringify(data)}`);
192
+ break;
193
+ default:
194
+ global?.logger?.mark(`优纪插件:获取biliLoginCK,Gateway校验失败:${JSON.stringify(data)}`);
195
+ break;
196
+ }
197
+ }
198
+ else {
199
+ e.reply(`get bilibili LoginCk:失败X﹏X`);
188
200
  }
189
- }
190
- else {
191
- e.reply(`get bilibili LoginCk:失败X﹏X`);
192
201
  }
193
202
  }
194
203
  }
204
+ catch (Error) {
205
+ global?.logger?.info(`yuki-plugin Login bilibili Failed:${Error}`);
206
+ }
195
207
  }
196
- catch (Error) {
197
- global?.logger?.info(`yuki-plugin Login bilibili Failed:${Error}`);
198
- }
199
- }
200
- else {
201
- e.reply('未取得bot主人身份,无权限配置B站登录ck');
202
208
  }
203
209
  }, [/^(#|\/)(yuki|优纪)?(扫码|添加|ADD|add)(b站|B站|bili|bilibili|哔哩|哔哩哔哩)登录$/]);
204
210
  /** 删除登陆的B站ck */
package/lib/apps/weibo.js CHANGED
@@ -58,7 +58,7 @@ message.use(async (e) => {
58
58
  }
59
59
  const userInfo = data.userInfo || {};
60
60
  let name = uid;
61
- if (userInfo.length !== 0) {
61
+ if (userInfo && userInfo.length !== 0) {
62
62
  name = userInfo.screen_name || uid;
63
63
  }
64
64
  // 添加新的推送数据
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import { ConfigController, BOT_NAME } from 'yunzaijs';
2
+ import { BOT_NAME, ConfigController } from 'yunzaijs';
3
3
  import Config from '../../utils/config.js';
4
4
  import path from 'path';
5
- import { _paths, createRequire } from '../../utils/paths.js';
5
+ import { createRequire, _paths } from '../../utils/paths.js';
6
6
 
7
7
  // Footer.tsx
8
8
  const require = createRequire(import.meta.url);
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { BOT_NAME, ConfigController } from 'yunzaijs';
3
3
  import Config from '../../utils/config.js';
4
4
  import path from 'path';
5
- import { _paths, createRequire } from '../../utils/paths.js';
5
+ import { createRequire, _paths } from '../../utils/paths.js';
6
6
 
7
7
  //help.tsx
8
8
  const require = createRequire(import.meta.url);
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { BOT_NAME, ConfigController } from 'yunzaijs';
3
3
  import Config from '../../utils/config.js';
4
4
  import path from 'path';
5
- import { _paths, createRequire } from '../../utils/paths.js';
5
+ import { createRequire, _paths } from '../../utils/paths.js';
6
6
 
7
7
  const require = createRequire(import.meta.url);
8
8
  const botVersion = ConfigController.package?.version;
package/lib/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import chalk from 'chalk';
2
- import { applicationOptions, setBotTask, useEvent } from 'yunzaijs';
2
+ import { applicationOptions, useEvent, setBotTask } from 'yunzaijs';
3
3
  import Config from './utils/config.js';
4
4
  import path from 'path';
5
5
  import { _paths } from './utils/paths.js';
@@ -8,7 +8,7 @@ class BiliApi {
8
8
  this.USER_AGENT = BiliApi.BILIBILI_USER_AGENT;
9
9
  this.initialize();
10
10
  }
11
- static BILIBILI_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36';
11
+ static BILIBILI_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36';
12
12
  //初始化User-Agent
13
13
  async initialize() {
14
14
  await this.initUserAgent();
@@ -6,7 +6,7 @@ import { promisify } from 'node:util';
6
6
  import path from 'path';
7
7
  import QRCode from 'qrcode';
8
8
  import YAML from 'yaml';
9
- import { Segment, Redis } from 'yunzaijs';
9
+ import { Redis, Segment } from 'yunzaijs';
10
10
  import { renderPage } from '../../utils/image.js';
11
11
  import { _paths } from '../../utils/paths.js';
12
12
  import BiliApi from './bilibili.main.api.js';
@@ -144,7 +144,9 @@ async function checkBiliLogin(e) {
144
144
  let current_level = level_info?.current_level;
145
145
  let current_exp = level_info?.current_exp;
146
146
  let next_exp = level_info?.next_exp;
147
- e.reply(`~B站账号已登陆~\n昵称:${uname}\nuid:${mid}\n硬币:${money}\n经验等级:${current_level}\n当前经验值exp:${current_exp}\n下一等级所需exp:${next_exp}`);
147
+ const LoginCookieTTL = await readLoginCookieTTL();
148
+ const LoginCookieTTLStr = LoginCookieTTL === -1 ? '永久' : LoginCookieTTL === -2 ? '未登录或登录状态无效' : `${new Date(Date.now() + LoginCookieTTL * 1000).toLocaleString()}`;
149
+ e.reply(`~B站账号已登陆~,有效期至:${LoginCookieTTLStr}。\n昵称:${uname}\nuid:${mid}\n硬币:${money}\n经验等级:${current_level}\n当前经验值exp:${current_exp}\n下一等级所需exp:${next_exp}`);
148
150
  }
149
151
  else {
150
152
  // 处理其他情况
@@ -228,6 +230,18 @@ async function readLoginCookie() {
228
230
  const tempCk = await Redis.get(CK_KEY);
229
231
  return tempCk ? tempCk : '';
230
232
  }
233
+ /** 读取扫码登陆后缓存的cookie的有效时间 */
234
+ async function readLoginCookieTTL() {
235
+ const CK_KEY = 'Yz:yuki:bili:loginCookie';
236
+ const tempCk = await Redis.get(CK_KEY);
237
+ if (tempCk) {
238
+ const LoginCookieTTL = await Redis.ttl(CK_KEY);
239
+ return LoginCookieTTL;
240
+ }
241
+ else {
242
+ return -2;
243
+ }
244
+ }
231
245
  /** 读取手动绑定的B站ck */
232
246
  async function readLocalBiliCk() {
233
247
  const dir = path.join(_paths.root, 'data/yuki-plugin/');
@@ -473,4 +487,4 @@ async function cookieWithBiliTicket(cookie) {
473
487
  }
474
488
  }
475
489
 
476
- export { applyLoginQRCode, checkBiliLogin, cookieWithBiliTicket, exitBiliLogin, genUUID, gen_b_lsid, getNewTempCk, get_buvid_fp, pollLoginQRCode, postGateway, readSavedCookieItems, readSavedCookieOtherItems, readSyncCookie, readTempCk, saveLocalBiliCk, saveLoginCookie, saveTempCk };
490
+ export { applyLoginQRCode, checkBiliLogin, cookieWithBiliTicket, exitBiliLogin, genUUID, gen_b_lsid, getNewTempCk, get_buvid_fp, pollLoginQRCode, postGateway, readLoginCookie, readSavedCookieItems, readSavedCookieOtherItems, readSyncCookie, readTempCk, saveLocalBiliCk, saveLoginCookie, saveTempCk };
@@ -245,7 +245,7 @@ class BiliQuery {
245
245
  };
246
246
  /**获取完整B站文章内容
247
247
  * @param postUrl - 文章链接: https://www.bilibili.com/read/cvxxxx 或者 https://www.bilibili.com/opus/xxxx
248
- * @returns {Json} 完整的B站文章内容json数据
248
+ * @returns {JSON} 完整的B站文章内容json数据
249
249
  */
250
250
  static async getFullArticleContent(postUrl) {
251
251
  let { cookie } = await readSyncCookie();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yz-yuki-plugin",
3
- "version": "2.0.6-11",
3
+ "version": "2.0.6-12",
4
4
  "description": "优纪插件,yunzaijs 关于 微博推送、B站推送 等功能的拓展插件",
5
5
  "author": "snowtafir",
6
6
  "type": "module",