summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-04-15 23:32:45 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-04-15 23:32:45 +0900
commit5e1f804dd13142cfcdf885dc3df648a8edd80c86 (patch)
tree96d8ebb93f2fa0888800c54d89a0652934518310 /src
parentMerge branch 'develop' (diff)
parent11.1.2 (diff)
downloadmisskey-5e1f804dd13142cfcdf885dc3df648a8edd80c86.tar.gz
misskey-5e1f804dd13142cfcdf885dc3df648a8edd80c86.tar.bz2
misskey-5e1f804dd13142cfcdf885dc3df648a8edd80c86.zip
Merge branch 'develop'
Diffstat (limited to 'src')
-rw-r--r--src/misc/gen-avatar.ts11
-rw-r--r--src/server/api/endpoints/app/create.ts52
-rw-r--r--src/server/api/endpoints/auth/session/generate.ts5
-rw-r--r--src/server/api/endpoints/users/notes.ts2
-rw-r--r--src/server/index.ts8
-rw-r--r--src/services/drive/add-file.ts2
6 files changed, 66 insertions, 14 deletions
diff --git a/src/misc/gen-avatar.ts b/src/misc/gen-avatar.ts
index 7d22ee98e2..14c01a9bd9 100644
--- a/src/misc/gen-avatar.ts
+++ b/src/misc/gen-avatar.ts
@@ -2,10 +2,11 @@
* Random avatar generator
*/
-import { createCanvas } from 'canvas';
+const p = require('pureimage');
import * as gen from 'random-seed';
+import { WriteStream } from 'fs';
-const size = 512; // px
+const size = 256; // px
const n = 5; // resolution
const margin = (size / n) / 1.5;
const colors = [
@@ -35,9 +36,9 @@ const sideN = Math.floor(n / 2);
/**
* Generate buffer of random avatar by seed
*/
-export function genAvatar(seed: string) {
+export function genAvatar(seed: string, stream: WriteStream): Promise<void> {
const rand = gen.create(seed);
- const canvas = createCanvas(size, size);
+ const canvas = p.make(size, size);
const ctx = canvas.getContext('2d');
ctx.fillStyle = bg;
@@ -85,5 +86,5 @@ export function genAvatar(seed: string) {
}
}
- return canvas.toBuffer();
+ return p.encodePNGToStream(canvas, stream);
}
diff --git a/src/server/api/endpoints/app/create.ts b/src/server/api/endpoints/app/create.ts
index ba366cdeb8..9db60d2661 100644
--- a/src/server/api/endpoints/app/create.ts
+++ b/src/server/api/endpoints/app/create.ts
@@ -9,25 +9,69 @@ export const meta = {
tags: ['app'],
requireCredential: false,
+
+ desc: {
+ 'ja-JP': 'アプリを作成します。',
+ 'en-US': 'Create a application.'
+ },
params: {
name: {
- validator: $.str
+ validator: $.str,
+ desc: {
+ 'ja-JP': 'アプリの名前',
+ 'en-US': 'Name of application'
+ }
},
description: {
- validator: $.str
+ validator: $.str,
+ desc: {
+ 'ja-JP': 'アプリの説明',
+ 'en-US': 'Description of application'
+ }
},
permission: {
- validator: $.arr($.str).unique()
+ validator: $.arr($.str).unique(),
+ desc: {
+ 'ja-JP': 'このアプリに割り当てる権限(権限については"Permissions"を参照)',
+ 'en-US': 'Permissions assigned to this app (see "Permissions" for the permissions)'
+ }
},
// TODO: Check it is valid url
callbackUrl: {
validator: $.optional.nullable.str,
- default: null as any
+ default: null as any,
+ desc: {
+ 'ja-JP': 'アプリ認証時にコールバックするURL',
+ 'en-US': 'URL to call back at app authentication'
+ }
},
+ },
+
+ res: {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ description: 'アプリケーションのID'
+ },
+ name: {
+ type: 'string',
+ description: 'アプリケーションの名前'
+ },
+ callbackUrl: {
+ type: 'string',
+ nullable: true,
+ description: 'コールバックするURL'
+ },
+ secret: {
+ type: 'string',
+ description: 'アプリケーションのシークレットキー'
+ }
+ }
}
};
diff --git a/src/server/api/endpoints/auth/session/generate.ts b/src/server/api/endpoints/auth/session/generate.ts
index 5a9bfe6451..bca8d33483 100644
--- a/src/server/api/endpoints/auth/session/generate.ts
+++ b/src/server/api/endpoints/auth/session/generate.ts
@@ -10,6 +10,11 @@ export const meta = {
tags: ['auth'],
requireCredential: false,
+
+ desc: {
+ 'ja-JP': 'アプリを認証するためのトークンを作成します。',
+ 'en-US': 'Generate a token for authorize application.'
+ },
params: {
appSecret: {
diff --git a/src/server/api/endpoints/users/notes.ts b/src/server/api/endpoints/users/notes.ts
index da23be3c55..d3f17bd787 100644
--- a/src/server/api/endpoints/users/notes.ts
+++ b/src/server/api/endpoints/users/notes.ts
@@ -196,5 +196,5 @@ export default define(meta, async (ps, me) => {
const timeline = await query.take(ps.limit!).getMany();
- return await Notes.packMany(timeline, user);
+ return await Notes.packMany(timeline, me);
});
diff --git a/src/server/index.ts b/src/server/index.ts
index 7d8938d584..b3ca47f232 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -26,6 +26,7 @@ import { program } from '../argv';
import { UserProfiles } from '../models';
import { networkChart } from '../services/chart';
import { genAvatar } from '../misc/gen-avatar';
+import { createTemp } from '../misc/create-temp';
export const serverLogger = new Logger('server', 'gray', false);
@@ -73,10 +74,11 @@ router.use(activityPub.routes());
router.use(nodeinfo.routes());
router.use(wellKnown.routes());
-router.get('/avatar/:x', ctx => {
- const avatar = genAvatar(ctx.params.x);
+router.get('/avatar/:x', async ctx => {
+ const [temp] = await createTemp();
+ await genAvatar(ctx.params.x, fs.createWriteStream(temp));
ctx.set('Content-Type', 'image/png');
- ctx.body = avatar;
+ ctx.body = fs.createReadStream(temp);
});
router.get('/verify-email/:code', async ctx => {
diff --git a/src/services/drive/add-file.ts b/src/services/drive/add-file.ts
index c79dfee103..cdb1a60092 100644
--- a/src/services/drive/add-file.ts
+++ b/src/services/drive/add-file.ts
@@ -212,7 +212,7 @@ async function deleteOldFile(user: IRemoteUser) {
q.andWhere('file.id != :bannerId', { bannerId: user.bannerId });
}
- q.orderBy('file.id', 'DESC');
+ q.orderBy('file.id', 'ASC');
const oldFile = await q.getOne();