0
0
Fork 0
This commit is contained in:
Xeltica 2022-01-28 20:41:42 +09:00
parent 28769e798e
commit f5ee1bd943
17 changed files with 159 additions and 21 deletions

View file

@ -1 +1,50 @@
export const defaultTemplate = '昨日のMisskeyの活動は\n\nート: {notesCount}({notesDelta})\nフォロー : {followingCount}({followingDelta})\nフォロワー :{followersCount}({followersDelta})\n\nでした。\n{url}';
/**
* Misskeyアプリトークンバージョン
* ver 2:
* * 使
* * Misskey Toolsに
* ver 1:
* *
*/
export const currentTokenVersion = 2;
export const misskeyAppInfo = {
name: 'Misskey Tools',
description: 'A Professional Toolkit Designed for Misskey.',
permission: [
'read:account',
'write:account',
'read:blocks',
'write:blocks',
'read:drive',
'write:drive',
'read:favorites',
'write:favorites',
'read:following',
'write:following',
'read:messaging',
'write:messaging',
'read:mutes',
'write:mutes',
'write:notes',
'read:notifications',
'write:notifications',
'read:reactions',
'write:reactions',
'write:votes',
'read:pages',
'write:pages',
'write:page-likes',
'read:page-likes',
'read:user-groups',
'write:user-groups',
'read:channels',
'write:channels',
'read:gallery',
'write:gallery',
'read:gallery-likes',
'write:gallery-likes',
],
} as const;

View file

@ -3,13 +3,19 @@
* @author Xeltica
*/
import { readFile } from 'fs';
import { Get, JsonController } from 'routing-controllers';
import { promisify } from 'util';
import { Meta } from '../../common/types/meta';
import { currentTokenVersion } from '../const';
@JsonController('/meta')
export class MetaController {
@Get() get() {
@Get() async get(): Promise<Meta> {
const {version} = JSON.parse(await promisify(readFile)(__dirname + '/../../meta.json', { encoding: 'utf-8'}));
return {
honi: 'ほに',
version,
currentTokenVersion,
};
}
}

View file

@ -4,6 +4,7 @@ import { DeepPartial } from 'typeorm';
import { genToken } from './gen-token';
import { IUser } from '../../common/types/user';
import { config } from '../../config';
import { currentTokenVersion } from '../const';
/**
* IUser
@ -61,9 +62,9 @@ export const getUserByToolsToken = (token: string): Promise<IUser | undefined> =
export const upsertUser = async (username: string, host: string, token: string): Promise<void> => {
const u = await getUser(username, host);
if (u) {
await Users.update(u.id, { token });
await Users.update(u.id, { token, tokenVersion: currentTokenVersion });
} else {
await Users.insert({ username, host, token });
await Users.insert({ username, host, token, tokenVersion: currentTokenVersion });
}
};

View file

@ -98,4 +98,11 @@ export class User implements IUser {
default: false,
})
public bannedFromRanking: boolean;
@Column({
type: 'integer',
default: 1,
comment: 'Misskey API トークンのバージョン。現行と違う場合はアップデートを要求する',
})
public tokenVersion: number;
}

View file

@ -10,6 +10,7 @@ import { config } from '../config';
import { upsertUser, getUser, updateUser, updateUsersToolsToken } from './functions/users';
import { api } from './services/misskey';
import { die } from './die';
import { misskeyAppInfo } from './const';
export const router = new Router<DefaultState, Context>();
@ -36,9 +37,8 @@ router.get('/login', async ctx => {
// ホスト名の正規化
host = meta.uri.replace(/^https?:\/\//, '');
const name = 'みす廃あらーと';
const description = 'ついついノートしすぎていませんか?';
const permission = ['write:notes', 'write:notifications', 'write:drive', 'read:account', 'write:account'];
const { name, permission, description } = misskeyAppInfo;
if (meta.features.miauth) {
// MiAuthを使用する