mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-04 19:59:54 +08:00
feat: update esm dependencies
This commit is contained in:
10
.github/dependabot.yml
vendored
10
.github/dependabot.yml
vendored
@@ -12,16 +12,6 @@ updates:
|
||||
- dependency-name: jsrsasign
|
||||
versions: ['>=11.0.0'] # no longer includes KJUR.crypto.Cipher for RSA
|
||||
# ESM only packages
|
||||
- dependency-name: fanfou-sdk
|
||||
versions: ['>=5.0.0']
|
||||
- dependency-name: got
|
||||
versions: ['>=12.0.0']
|
||||
- dependency-name: ip-regex
|
||||
versions: ['>=5.0.0']
|
||||
- dependency-name: query-string
|
||||
versions: ['>=8.0.0']
|
||||
- dependency-name: rand-user-agent
|
||||
versions: ['>=2.0.1']
|
||||
- dependency-name: remark-parse
|
||||
versions: ['>=10.0.0']
|
||||
- dependency-name: remark-preset-prettier
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
const logger = require('@/utils/logger');
|
||||
const config = require('@/config').value;
|
||||
const Fanfou = require('fanfou-sdk');
|
||||
import Fanfou from 'fanfou-sdk';
|
||||
|
||||
const consumerKey = config.fanfou.consumer_key;
|
||||
const consumerSecret = config.fanfou.consumer_secret;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { describe, expect, it, afterAll, jest } from '@jest/globals';
|
||||
import { describe, expect, it, afterAll } from '@jest/globals';
|
||||
process.env.SOCKET = 'socket';
|
||||
|
||||
jest.mock('request-promise-native');
|
||||
import app from '@/app';
|
||||
import Parser from 'rss-parser';
|
||||
const parser = new Parser();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import got from '@/utils/got';
|
||||
import { config } from '@/config';
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
import { parseDate } from '@/utils/parse-date';
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import got from '@/utils/got';
|
||||
import { config } from '@/config';
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
import { parseDate } from '@/utils/parse-date';
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import got from '@/utils/got';
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
import { load } from 'cheerio';
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import got from '@/utils/got';
|
||||
import { config } from '@/config';
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const user = ctx.req.param('user');
|
||||
|
||||
@@ -4,7 +4,7 @@ const md = require('markdown-it')({
|
||||
html: true,
|
||||
linkify: true,
|
||||
});
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
import { parseDate } from '@/utils/parse-date';
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import got from '@/utils/got';
|
||||
import { config } from '@/config';
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const user = ctx.req.param('user');
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// use stock `got` package as a workaround for
|
||||
// https://github.com/DIYgod/RSSHub/issues/8239
|
||||
// https://github.com/DIYgod/RSSHub/pull/8288
|
||||
const got = require('got');
|
||||
import got from 'got';
|
||||
import { parseDate } from '@/utils/parse-date';
|
||||
const { categories } = require('./category-map');
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
const got = require('../pixiv-got');
|
||||
const maskHeader = require('../constants').maskHeader;
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
|
||||
/**
|
||||
* 获取用户的收藏
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
const got = require('../pixiv-got');
|
||||
const maskHeader = require('../constants').maskHeader;
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
|
||||
/**
|
||||
* 获取用户关注的画师们的最新插画
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
const got = require('../pixiv-got');
|
||||
const maskHeader = require('../constants').maskHeader;
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
|
||||
/**
|
||||
* 获取用户插画作品
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
const got = require('../pixiv-got');
|
||||
const maskHeader = require('../constants').maskHeader;
|
||||
const assert = require('assert');
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
|
||||
const allowMode = new Set(['day', 'week', 'month', 'day_male', 'day_female', 'day_ai', 'week_original', 'week_rookie', 'day_r18', 'day_r18_ai', 'day_male_r18', 'day_female_r18', 'week_r18', 'week_r18g']);
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
const got = require('../pixiv-got');
|
||||
const maskHeader = require('../constants').maskHeader;
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
|
||||
/**
|
||||
* pixiv 用户
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
const got = require('../pixiv-got');
|
||||
const maskHeader = require('../constants').maskHeader;
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
|
||||
/**
|
||||
* 按时间排序搜索内容
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
const got = require('../pixiv-got');
|
||||
const maskHeader = require('../constants').maskHeader;
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
|
||||
/**
|
||||
* 按热门排序搜索内容
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
const tls = require('tls');
|
||||
const ipRegex = require('ip-regex');
|
||||
import ipRegex from 'ip-regex';
|
||||
import got from '@/utils/got';
|
||||
import logger from '@/utils/logger';
|
||||
import { config } from '@/config';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import got from '@/utils/got';
|
||||
import { load } from 'cheerio';
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
import { config } from '@/config';
|
||||
import { parseDate } from '@/utils/parse-date';
|
||||
import timezone from '@/utils/timezone';
|
||||
|
||||
@@ -4,7 +4,7 @@ import logger from '@/utils/logger';
|
||||
import got from '@/utils/got';
|
||||
const OAuth = require('oauth-1.0a');
|
||||
const CryptoJS = require('crypto-js');
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
const { getToken } = require('./token');
|
||||
import cache from '@/utils/cache';
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import cache from '@/utils/cache';
|
||||
import got from '@/utils/got';
|
||||
const weiboUtils = require('./utils');
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
import { config } from '@/config';
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import got from '@/utils/got';
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
import { parseDate } from '@/utils/parse-date';
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import got from '@/utils/got';
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
import { parseDate } from '@/utils/parse-date';
|
||||
const sanitizeHtml = require('sanitize-html');
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import got from '@/utils/got';
|
||||
import { load } from 'cheerio';
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
import { parseDate } from '@/utils/parse-date';
|
||||
const sanitizeHtml = require('sanitize-html');
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import got from '@/utils/got';
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
import { parseDate } from '@/utils/parse-date';
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import cache from '@/utils/cache';
|
||||
import got from '@/utils/got';
|
||||
const queryString = require('query-string');
|
||||
import queryString from 'query-string';
|
||||
import { parseDate } from '@/utils/parse-date';
|
||||
const sanitizeHtml = require('sanitize-html');
|
||||
|
||||
|
||||
@@ -59,7 +59,9 @@ const custom: typeof got & {
|
||||
headers: {
|
||||
'user-agent': config.ua,
|
||||
},
|
||||
timeout: config.requestTimeout,
|
||||
timeout: {
|
||||
request: config.requestTimeout,
|
||||
},
|
||||
});
|
||||
custom.all = (list) => Promise.all(list);
|
||||
|
||||
|
||||
13
package.json
13
package.json
@@ -81,7 +81,7 @@
|
||||
"@koa/router": "12.0.1",
|
||||
"@notionhq/client": "2.2.14",
|
||||
"@postlight/parser": "2.2.3",
|
||||
"@sentry/node": "7.103.0",
|
||||
"@sentry/node": "7.104.0",
|
||||
"@tonyrl/rand-user-agent": "2.0.52",
|
||||
"@types/node": "20.11.24",
|
||||
"aes-js": "3.1.2",
|
||||
@@ -92,15 +92,15 @@
|
||||
"city-timezones": "1.2.1",
|
||||
"crypto-js": "4.2.0",
|
||||
"currency-symbol-map": "5.1.0",
|
||||
"dayjs": "1.11.8",
|
||||
"dayjs": "1.11.10",
|
||||
"directory-import": "3.2.1",
|
||||
"dotenv": "16.4.5",
|
||||
"entities": "4.5.0",
|
||||
"etag": "1.8.1",
|
||||
"fanfou-sdk": "4.2.0",
|
||||
"fanfou-sdk": "5.0.0",
|
||||
"git-rev-sync": "3.0.2",
|
||||
"googleapis": "133.0.0",
|
||||
"got": "11.8.6",
|
||||
"got": "14.2.0",
|
||||
"hono": "4.0.8",
|
||||
"html-to-text": "9.0.5",
|
||||
"https-proxy-agent": "7.0.4",
|
||||
@@ -109,7 +109,7 @@
|
||||
"instagram-private-api": "1.45.3",
|
||||
"ioredis": "5.3.2",
|
||||
"ip": "2.0.1",
|
||||
"ip-regex": "4.3.0",
|
||||
"ip-regex": "5.0.0",
|
||||
"jsdom": "24.0.0",
|
||||
"json-bigint": "1.0.0",
|
||||
"json5": "2.2.3",
|
||||
@@ -135,7 +135,7 @@
|
||||
"puppeteer-extra-plugin-stealth": "2.11.2",
|
||||
"puppeteer-extra-plugin-user-data-dir": "2.4.1",
|
||||
"puppeteer-extra-plugin-user-preferences": "2.4.1",
|
||||
"query-string": "7.1.3",
|
||||
"query-string": "9.0.0",
|
||||
"re2js": "0.4.1",
|
||||
"require-all": "3.0.0",
|
||||
"rfc4648": "1.5.3",
|
||||
@@ -216,7 +216,6 @@
|
||||
"remark-pangu": "2.2.0",
|
||||
"remark-parse": "9.0.0",
|
||||
"remark-preset-prettier": "0.5.1",
|
||||
"request-promise-native": "1.0.9",
|
||||
"staged-git-files": "1.3.0",
|
||||
"string-width": "7.1.0",
|
||||
"supertest": "6.3.4",
|
||||
|
||||
1217
pnpm-lock.yaml
generated
1217
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -1,126 +0,0 @@
|
||||
const got = require('got');
|
||||
const { HttpsProxyAgent } = require('https-proxy-agent');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const concurrency = 5; // Please do not set it too large to avoid Twitter discovering our little secret
|
||||
const proxyUrl = ''; // Add your proxy here
|
||||
|
||||
const baseURL = 'https://api.twitter.com/1.1/';
|
||||
const headers = {
|
||||
Authorization: 'Bearer AAAAAAAAAAAAAAAAAAAAAFXzAwAAAAAAMHCxpeSDG1gLNLghVe8d74hl6k4%3DRUMF4xAQLsbeBhTSRrCiQpJtxoGWeyHrDb5te2jpGskWDFW82F',
|
||||
'User-Agent': 'TwitterAndroid/10.10.0',
|
||||
};
|
||||
|
||||
const accounts = [];
|
||||
|
||||
function generateOne() {
|
||||
// eslint-disable-next-line no-async-promise-executor
|
||||
return new Promise(async (resolve) => {
|
||||
const timeout = setTimeout(() => {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(`Failed to generate account, continue... timeout`);
|
||||
resolve();
|
||||
}, 30000);
|
||||
|
||||
const agent = {
|
||||
https: proxyUrl && new HttpsProxyAgent(proxyUrl),
|
||||
};
|
||||
|
||||
try {
|
||||
const response = await got.post(`${baseURL}guest/activate.json`, {
|
||||
headers: {
|
||||
Authorization: headers.Authorization,
|
||||
},
|
||||
agent,
|
||||
timeout: {
|
||||
request: 20000,
|
||||
},
|
||||
});
|
||||
const guestToken = JSON.parse(response.body).guest_token;
|
||||
|
||||
const flowResponse = await got.post(`${baseURL}onboarding/task.json?flow_name=welcome`, {
|
||||
json: {
|
||||
flow_token: null,
|
||||
input_flow_data: {
|
||||
flow_context: {
|
||||
start_location: {
|
||||
location: 'splash_screen',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
headers: {
|
||||
...headers,
|
||||
'X-Guest-Token': guestToken,
|
||||
},
|
||||
agent,
|
||||
timeout: {
|
||||
request: 20000,
|
||||
},
|
||||
});
|
||||
const flowToken = JSON.parse(flowResponse.body).flow_token;
|
||||
|
||||
const finalResponse = await got.post(`${baseURL}onboarding/task.json`, {
|
||||
json: {
|
||||
flow_token: flowToken,
|
||||
subtask_inputs: [
|
||||
{
|
||||
open_link: {
|
||||
link: 'next_link',
|
||||
},
|
||||
subtask_id: 'NextTaskOpenLink',
|
||||
},
|
||||
],
|
||||
},
|
||||
headers: {
|
||||
...headers,
|
||||
'X-Guest-Token': guestToken,
|
||||
},
|
||||
agent,
|
||||
timeout: {
|
||||
request: 20000,
|
||||
},
|
||||
});
|
||||
|
||||
const account = JSON.parse(finalResponse.body).subtasks[0].open_account;
|
||||
|
||||
if (account) {
|
||||
accounts.push({
|
||||
t: account.oauth_token,
|
||||
s: account.oauth_token_secret,
|
||||
});
|
||||
} else {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(`Failed to generate account, continue... no account`);
|
||||
}
|
||||
} catch (error) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(`Failed to generate account, continue... ${error}`);
|
||||
}
|
||||
|
||||
clearTimeout(timeout);
|
||||
resolve();
|
||||
});
|
||||
}
|
||||
|
||||
(async () => {
|
||||
const oldAccounts = fs.readFileSync(path.join(__dirname, 'accounts.txt'));
|
||||
const tokens = oldAccounts.toString().split('\n')[0].split('=')[1].split(',');
|
||||
const secrets = oldAccounts.toString().split('\n')[1].split('=')[1].split(',');
|
||||
for (const [i, token] of tokens.entries()) {
|
||||
accounts.push({
|
||||
t: token,
|
||||
s: secrets[i],
|
||||
});
|
||||
}
|
||||
|
||||
for (let i = 0; i < 1000; i++) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(`Generating accounts ${i * concurrency}-${(i + 1) * concurrency - 1}, total ${accounts.length}`);
|
||||
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
await Promise.all(Array.from({ length: concurrency }, () => generateOne()));
|
||||
fs.writeFileSync(path.join(__dirname, 'accounts.txt'), [`TWITTER_OAUTH_TOKEN=${accounts.map((account) => account.t).join(',')}`, `TWITTER_OAUTH_TOKEN_SECRET=${accounts.map((account) => account.s).join(',')}`].join('\n'));
|
||||
}
|
||||
})();
|
||||
@@ -1,17 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
guest_token=$(curl -s -XPOST https://api.twitter.com/1.1/guest/activate.json -H 'Authorization: Bearer AAAAAAAAAAAAAAAAAAAAAFXzAwAAAAAAMHCxpeSDG1gLNLghVe8d74hl6k4%3DRUMF4xAQLsbeBhTSRrCiQpJtxoGWeyHrDb5te2jpGskWDFW82F' | jq -r '.guest_token')
|
||||
|
||||
flow_token=$(curl -s -XPOST 'https://api.twitter.com/1.1/onboarding/task.json?flow_name=welcome' \
|
||||
-H 'Authorization: Bearer AAAAAAAAAAAAAAAAAAAAAFXzAwAAAAAAMHCxpeSDG1gLNLghVe8d74hl6k4%3DRUMF4xAQLsbeBhTSRrCiQpJtxoGWeyHrDb5te2jpGskWDFW82F' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-H "User-Agent: TwitterAndroid/10.10.0" \
|
||||
-H "X-Guest-Token: ${guest_token}" \
|
||||
-d '{"flow_token":null,"input_flow_data":{"flow_context":{"start_location":{"location":"splash_screen"}}}}' | jq -r .flow_token)
|
||||
|
||||
curl -s -XPOST 'https://api.twitter.com/1.1/onboarding/task.json' \
|
||||
-H 'Authorization: Bearer AAAAAAAAAAAAAAAAAAAAAFXzAwAAAAAAMHCxpeSDG1gLNLghVe8d74hl6k4%3DRUMF4xAQLsbeBhTSRrCiQpJtxoGWeyHrDb5te2jpGskWDFW82F' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-H "User-Agent: TwitterAndroid/10.10.0" \
|
||||
-H "X-Guest-Token: ${guest_token}" \
|
||||
-d "{\"flow_token\":\"${flow_token}\",\"subtask_inputs\":[{\"open_link\":{\"link\":\"next_link\"},\"subtask_id\":\"NextTaskOpenLink\"}]}" | jq -c -r '.subtasks[0]|if(.open_account) then {oauth_token: .open_account.oauth_token, oauth_token_secret: .open_account.oauth_token_secret} else empty end'
|
||||
@@ -1,6 +1,5 @@
|
||||
const unified = require('unified');
|
||||
const parse = require('remark-parse');
|
||||
const got = require('got');
|
||||
|
||||
// @TODO maybe we could use label or some other better ways to distinguish bug/feature issues
|
||||
const matchTitle = ['路由地址', 'Routes'];
|
||||
@@ -44,6 +43,8 @@ async function parseBodyRoutes(body, core) {
|
||||
}
|
||||
|
||||
async function getMaintainersByRoutes(routes, core) {
|
||||
const got = await import('got');
|
||||
|
||||
// TODO: change me when https://github.com/actions/github-script is run on node20
|
||||
// const response = await fetch(maintainerURL);
|
||||
// const maintainers = await response.json();
|
||||
|
||||
Reference in New Issue
Block a user