48ea805999 (commitcomment-48584326)
This commit is contained in:
syuilo 2021-03-23 14:54:09 +09:00
parent 48ea805999
commit 5c3a56b283
10 changed files with 42 additions and 39 deletions

View file

@ -1,16 +1,19 @@
import * as redis from 'redis'; import * as redis from 'redis';
import config from '../config'; import config from '../config';
const client = redis.createClient( export function createConnection() {
config.redis.port, return redis.createClient(
config.redis.host, config.redis.port,
{ config.redis.host,
password: config.redis.pass, {
prefix: config.redis.prefix, password: config.redis.pass,
db: config.redis.db || 0 prefix: config.redis.prefix,
} db: config.redis.db || 0
); }
);
}
client.subscribe(config.host); export const subsdcriber = createConnection();
subsdcriber.subscribe(config.host);
export default client; export const redisClient = createConnection();

View file

@ -1,4 +1,4 @@
import redis from '../db/redis'; import { redisClient } from '../db/redis';
import { promisify } from 'util'; import { promisify } from 'util';
/** /**
@ -7,8 +7,8 @@ import { promisify } from 'util';
const retryDelay = 100; const retryDelay = 100;
const lock: (key: string, timeout?: number) => Promise<() => void> const lock: (key: string, timeout?: number) => Promise<() => void>
= redis = redisClient
? promisify(require('redis-lock')(redis, retryDelay)) ? promisify(require('redis-lock')(redisClient, retryDelay))
: async () => () => { }; : async () => () => { };
/** /**

View file

@ -2,7 +2,7 @@ import * as os from 'os';
import * as si from 'systeminformation'; import * as si from 'systeminformation';
import { getConnection } from 'typeorm'; import { getConnection } from 'typeorm';
import define from '../../define'; import define from '../../define';
import redis from '../../../../db/redis'; import { redisClient } from '../../../../db/redis';
export const meta = { export const meta = {
requireCredential: true as const, requireCredential: true as const,
@ -115,7 +115,7 @@ export default define(meta, async () => {
os: os.platform(), os: os.platform(),
node: process.version, node: process.version,
psql: await getConnection().query('SHOW server_version').then(x => x[0].server_version), psql: await getConnection().query('SHOW server_version').then(x => x[0].server_version),
redis: redis.server_info.redis_version, redis: redisClient.server_info.redis_version,
cpu: { cpu: {
model: os.cpus()[0].model, model: os.cpus()[0].model,
cores: os.cpus().length cores: os.cpus().length

View file

@ -1,5 +1,5 @@
import define from '../define'; import define from '../define';
import redis from '../../../db/redis'; import { redisClient } from '../../../db/redis';
import config from '../../../config'; import config from '../../../config';
export const meta = { export const meta = {
@ -13,7 +13,7 @@ export const meta = {
export default define(meta, (ps, user) => { export default define(meta, (ps, user) => {
return new Promise((res, rej) => { return new Promise((res, rej) => {
redis.pubsub('numsub', config.host, (_, x) => { redisClient.pubsub('numsub', config.host, (_, x) => {
res({ res({
count: x[1] count: x[1]
}); });

View file

@ -1,5 +1,5 @@
import * as Limiter from 'ratelimiter'; import * as Limiter from 'ratelimiter';
import limiterDB from '../../db/redis'; import { redisClient } from '../../db/redis';
import { IEndpoint } from './endpoints'; import { IEndpoint } from './endpoints';
import getAcct from '../../misc/acct/render'; import getAcct from '../../misc/acct/render';
import { User } from '../../models/entities/user'; import { User } from '../../models/entities/user';
@ -35,7 +35,7 @@ export default (endpoint: IEndpoint, user: User) => new Promise((ok, reject) =>
id: `${user.id}:${key}:min`, id: `${user.id}:${key}:min`,
duration: limitation.minInterval, duration: limitation.minInterval,
max: 1, max: 1,
db: limiterDB! db: redisClient
}); });
minIntervalLimiter.get((err, info) => { minIntervalLimiter.get((err, info) => {
@ -63,7 +63,7 @@ export default (endpoint: IEndpoint, user: User) => new Promise((ok, reject) =>
id: `${user.id}:${key}`, id: `${user.id}:${key}`,
duration: limitation.duration, duration: limitation.duration,
max: limitation.max, max: limitation.max,
db: limiterDB! db: redisClient
}); });
limiter.get((err, info) => { limiter.get((err, info) => {

View file

@ -4,7 +4,7 @@ import { getJson } from '../../../misc/fetch';
import { OAuth2 } from 'oauth'; import { OAuth2 } from 'oauth';
import config from '../../../config'; import config from '../../../config';
import { publishMainStream } from '../../../services/stream'; import { publishMainStream } from '../../../services/stream';
import redis from '../../../db/redis'; import { redisClient } from '../../../db/redis';
import { v4 as uuid } from 'uuid'; import { v4 as uuid } from 'uuid';
import signin from '../common/signin'; import signin from '../common/signin';
import { fetchMeta } from '../../../misc/fetch-meta'; import { fetchMeta } from '../../../misc/fetch-meta';
@ -96,7 +96,7 @@ router.get('/connect/discord', async ctx => {
response_type: 'code' response_type: 'code'
}; };
redis.set(userToken, JSON.stringify(params)); redisClient.set(userToken, JSON.stringify(params));
const oauth2 = await getOAuth2(); const oauth2 = await getOAuth2();
ctx.redirect(oauth2!.getAuthorizeUrl(params)); ctx.redirect(oauth2!.getAuthorizeUrl(params));
@ -118,7 +118,7 @@ router.get('/signin/discord', async ctx => {
httpOnly: true httpOnly: true
}); });
redis.set(sessid, JSON.stringify(params)); redisClient.set(sessid, JSON.stringify(params));
const oauth2 = await getOAuth2(); const oauth2 = await getOAuth2();
ctx.redirect(oauth2!.getAuthorizeUrl(params)); ctx.redirect(oauth2!.getAuthorizeUrl(params));
@ -145,7 +145,7 @@ router.get('/dc/cb', async ctx => {
} }
const { redirect_uri, state } = await new Promise<any>((res, rej) => { const { redirect_uri, state } = await new Promise<any>((res, rej) => {
redis.get(sessid, async (_, state) => { redisClient.get(sessid, async (_, state) => {
res(JSON.parse(state)); res(JSON.parse(state));
}); });
}); });
@ -216,7 +216,7 @@ router.get('/dc/cb', async ctx => {
} }
const { redirect_uri, state } = await new Promise<any>((res, rej) => { const { redirect_uri, state } = await new Promise<any>((res, rej) => {
redis.get(userToken, async (_, state) => { redisClient.get(userToken, async (_, state) => {
res(JSON.parse(state)); res(JSON.parse(state));
}); });
}); });

View file

@ -4,7 +4,7 @@ import { getJson } from '../../../misc/fetch';
import { OAuth2 } from 'oauth'; import { OAuth2 } from 'oauth';
import config from '../../../config'; import config from '../../../config';
import { publishMainStream } from '../../../services/stream'; import { publishMainStream } from '../../../services/stream';
import redis from '../../../db/redis'; import { redisClient } from '../../../db/redis';
import { v4 as uuid } from 'uuid'; import { v4 as uuid } from 'uuid';
import signin from '../common/signin'; import signin from '../common/signin';
import { fetchMeta } from '../../../misc/fetch-meta'; import { fetchMeta } from '../../../misc/fetch-meta';
@ -95,7 +95,7 @@ router.get('/connect/github', async ctx => {
state: uuid() state: uuid()
}; };
redis.set(userToken, JSON.stringify(params)); redisClient.set(userToken, JSON.stringify(params));
const oauth2 = await getOath2(); const oauth2 = await getOath2();
ctx.redirect(oauth2!.getAuthorizeUrl(params)); ctx.redirect(oauth2!.getAuthorizeUrl(params));
@ -116,7 +116,7 @@ router.get('/signin/github', async ctx => {
httpOnly: true httpOnly: true
}); });
redis.set(sessid, JSON.stringify(params)); redisClient.set(sessid, JSON.stringify(params));
const oauth2 = await getOath2(); const oauth2 = await getOath2();
ctx.redirect(oauth2!.getAuthorizeUrl(params)); ctx.redirect(oauth2!.getAuthorizeUrl(params));
@ -143,7 +143,7 @@ router.get('/gh/cb', async ctx => {
} }
const { redirect_uri, state } = await new Promise<any>((res, rej) => { const { redirect_uri, state } = await new Promise<any>((res, rej) => {
redis.get(sessid, async (_, state) => { redisClient.get(sessid, async (_, state) => {
res(JSON.parse(state)); res(JSON.parse(state));
}); });
}); });
@ -194,7 +194,7 @@ router.get('/gh/cb', async ctx => {
} }
const { redirect_uri, state } = await new Promise<any>((res, rej) => { const { redirect_uri, state } = await new Promise<any>((res, rej) => {
redis.get(userToken, async (_, state) => { redisClient.get(userToken, async (_, state) => {
res(JSON.parse(state)); res(JSON.parse(state));
}); });
}); });

View file

@ -2,7 +2,7 @@ import * as Koa from 'koa';
import * as Router from '@koa/router'; import * as Router from '@koa/router';
import { v4 as uuid } from 'uuid'; import { v4 as uuid } from 'uuid';
import autwh from 'autwh'; import autwh from 'autwh';
import redis from '../../../db/redis'; import { redisClient } from '../../../db/redis';
import { publishMainStream } from '../../../services/stream'; import { publishMainStream } from '../../../services/stream';
import config from '../../../config'; import config from '../../../config';
import signin from '../common/signin'; import signin from '../common/signin';
@ -89,7 +89,7 @@ router.get('/connect/twitter', async ctx => {
const twAuth = await getTwAuth(); const twAuth = await getTwAuth();
const twCtx = await twAuth!.begin(); const twCtx = await twAuth!.begin();
redis.set(userToken, JSON.stringify(twCtx)); redisClient.set(userToken, JSON.stringify(twCtx));
ctx.redirect(twCtx.url); ctx.redirect(twCtx.url);
}); });
@ -99,7 +99,7 @@ router.get('/signin/twitter', async ctx => {
const sessid = uuid(); const sessid = uuid();
redis.set(sessid, JSON.stringify(twCtx)); redisClient.set(sessid, JSON.stringify(twCtx));
ctx.cookies.set('signin_with_twitter_sid', sessid, { ctx.cookies.set('signin_with_twitter_sid', sessid, {
path: '/', path: '/',
@ -124,7 +124,7 @@ router.get('/tw/cb', async ctx => {
} }
const get = new Promise<any>((res, rej) => { const get = new Promise<any>((res, rej) => {
redis.get(sessid, async (_, twCtx) => { redisClient.get(sessid, async (_, twCtx) => {
res(twCtx); res(twCtx);
}); });
}); });
@ -153,7 +153,7 @@ router.get('/tw/cb', async ctx => {
} }
const get = new Promise<any>((res, rej) => { const get = new Promise<any>((res, rej) => {
redis.get(userToken, async (_, twCtx) => { redisClient.get(userToken, async (_, twCtx) => {
res(twCtx); res(twCtx);
}); });
}); });

View file

@ -5,7 +5,7 @@ import MainStreamConnection from './stream';
import { ParsedUrlQuery } from 'querystring'; import { ParsedUrlQuery } from 'querystring';
import authenticate from './authenticate'; import authenticate from './authenticate';
import { EventEmitter } from 'events'; import { EventEmitter } from 'events';
import redisClient from '../../db/redis'; import { subsdcriber as redisClient } from '../../db/redis';
module.exports = (server: http.Server) => { module.exports = (server: http.Server) => {
// Init websocket server // Init websocket server

View file

@ -21,7 +21,7 @@ import { Users, Notes, Emojis, UserProfiles, Pages, Channels, Clips } from '../.
import parseAcct from '../../misc/acct/parse'; import parseAcct from '../../misc/acct/parse';
import { getNoteSummary } from '../../misc/get-note-summary'; import { getNoteSummary } from '../../misc/get-note-summary';
import { getConnection } from 'typeorm'; import { getConnection } from 'typeorm';
import redis from '../../db/redis'; import { redisClient } from '../../db/redis';
import locales = require('../../../locales'); import locales = require('../../../locales');
const markdown = MarkdownIt({ const markdown = MarkdownIt({
@ -379,7 +379,7 @@ router.get('/info', async ctx => {
os: os.platform(), os: os.platform(),
node: process.version, node: process.version,
psql: await getConnection().query('SHOW server_version').then(x => x[0].server_version), psql: await getConnection().query('SHOW server_version').then(x => x[0].server_version),
redis: redis.server_info.redis_version, redis: redisClient.server_info.redis_version,
cpu: { cpu: {
model: os.cpus()[0].model, model: os.cpus()[0].model,
cores: os.cpus().length cores: os.cpus().length