wip
This commit is contained in:
parent
2cb0511dba
commit
bcd65d290d
|
@ -35,10 +35,13 @@ module.exports = (params) => new Promise(async (res, rej) => {
|
||||||
{ deleted_at: { $gt: startTime } }
|
{ deleted_at: { $gt: startTime } }
|
||||||
]
|
]
|
||||||
}, {
|
}, {
|
||||||
|
sort: {
|
||||||
|
_id: -1
|
||||||
|
},
|
||||||
|
fields: {
|
||||||
_id: false,
|
_id: false,
|
||||||
post_id: false
|
post_id: false
|
||||||
}, {
|
}
|
||||||
sort: { created_at: -1 }
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const graph = [];
|
const graph = [];
|
||||||
|
|
|
@ -17,11 +17,14 @@ module.exports = params => new Promise(async (res, rej) => {
|
||||||
|
|
||||||
const users = await User
|
const users = await User
|
||||||
.find({}, {
|
.find({}, {
|
||||||
|
sort: {
|
||||||
|
_id: -1
|
||||||
|
},
|
||||||
|
fields: {
|
||||||
_id: false,
|
_id: false,
|
||||||
created_at: true,
|
created_at: true,
|
||||||
deleted_at: true
|
deleted_at: true
|
||||||
}, {
|
}
|
||||||
sort: { created_at: -1 }
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const graph = [];
|
const graph = [];
|
||||||
|
|
|
@ -3,8 +3,7 @@
|
||||||
*/
|
*/
|
||||||
import rndstr from 'rndstr';
|
import rndstr from 'rndstr';
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import App from '../../models/app';
|
import App, { isValidNameId, pack } from '../../models/app';
|
||||||
import { isValidNameId }, { pack } from '../../models/app';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @swagger
|
* @swagger
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Module dependencies
|
* Module dependencies
|
||||||
*/
|
*/
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import { default as Channel, IChannel }, { pack } from '../../models/channel';
|
import Channel, { IChannel, pack } from '../../models/channel';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show a channel
|
* Show a channel
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Module dependencies
|
* Module dependencies
|
||||||
*/
|
*/
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import { validateFileName }, { pack } from '../../../models/drive-file';
|
import { validateFileName, pack } from '../../../models/drive-file';
|
||||||
import create from '../../../common/add-file-to-drive';
|
import create from '../../../common/add-file-to-drive';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -3,8 +3,7 @@
|
||||||
*/
|
*/
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import DriveFolder from '../../../models/drive-folder';
|
import DriveFolder from '../../../models/drive-folder';
|
||||||
import DriveFile from '../../../models/drive-file';
|
import DriveFile, { validateFileName, pack } from '../../../models/drive-file';
|
||||||
import { validateFileName }, { pack } from '../../../models/drive-file';
|
|
||||||
import { publishDriveStream } from '../../../event';
|
import { publishDriveStream } from '../../../event';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
*/
|
*/
|
||||||
import * as URL from 'url';
|
import * as URL from 'url';
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import { validateFileName }, { pack } from '../../../models/drive-file';
|
import { validateFileName, pack } from '../../../models/drive-file';
|
||||||
import create from '../../../common/add-file-to-drive';
|
import create from '../../../common/add-file-to-drive';
|
||||||
import * as debug from 'debug';
|
import * as debug from 'debug';
|
||||||
import * as tmp from 'tmp';
|
import * as tmp from 'tmp';
|
||||||
|
|
|
@ -2,8 +2,7 @@
|
||||||
* Module dependencies
|
* Module dependencies
|
||||||
*/
|
*/
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import DriveFolder from '../../../models/drive-folder';
|
import DriveFolder, { isValidFolderName, pack } from '../../../models/drive-folder';
|
||||||
import { isValidFolderName }, { pack } from '../../../models/drive-folder';
|
|
||||||
import { publishDriveStream } from '../../../event';
|
import { publishDriveStream } from '../../../event';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -2,8 +2,7 @@
|
||||||
* Module dependencies
|
* Module dependencies
|
||||||
*/
|
*/
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import DriveFolder from '../../../models/drive-folder';
|
import DriveFolder, { isValidFolderName, pack } from '../../../models/drive-folder';
|
||||||
import { isValidFolderName }, { pack } from '../../../models/drive-folder';
|
|
||||||
import { publishDriveStream } from '../../../event';
|
import { publishDriveStream } from '../../../event';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -2,11 +2,10 @@
|
||||||
* Module dependencies
|
* Module dependencies
|
||||||
*/
|
*/
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import User from '../../models/user';
|
import User, { pack as packUser } from '../../models/user';
|
||||||
import Following from '../../models/following';
|
import Following from '../../models/following';
|
||||||
import notify from '../../common/notify';
|
import notify from '../../common/notify';
|
||||||
import event from '../../event';
|
import event from '../../event';
|
||||||
import serializeUser from '../../serializers/user';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Follow a user
|
* Follow a user
|
||||||
|
@ -77,8 +76,8 @@ module.exports = (params, user) => new Promise(async (res, rej) => {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Publish follow event
|
// Publish follow event
|
||||||
event(follower._id, 'follow', await serializeUser(followee, follower));
|
event(follower._id, 'follow', await packUser(followee, follower));
|
||||||
event(followee._id, 'followed', await serializeUser(follower, followee));
|
event(followee._id, 'followed', await packUser(follower, followee));
|
||||||
|
|
||||||
// Notify
|
// Notify
|
||||||
notify(followee._id, follower._id, 'follow');
|
notify(followee._id, follower._id, 'follow');
|
||||||
|
|
|
@ -2,10 +2,9 @@
|
||||||
* Module dependencies
|
* Module dependencies
|
||||||
*/
|
*/
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import User from '../../models/user';
|
import User, { pack as packUser } from '../../models/user';
|
||||||
import Following from '../../models/following';
|
import Following from '../../models/following';
|
||||||
import event from '../../event';
|
import event from '../../event';
|
||||||
import serializeUser from '../../serializers/user';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unfollow a user
|
* Unfollow a user
|
||||||
|
@ -78,5 +77,5 @@ module.exports = (params, user) => new Promise(async (res, rej) => {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Publish follow event
|
// Publish follow event
|
||||||
event(follower._id, 'unfollow', await serializeUser(followee, follower));
|
event(follower._id, 'unfollow', await packUser(followee, follower));
|
||||||
});
|
});
|
||||||
|
|
|
@ -2,8 +2,7 @@
|
||||||
* Module dependencies
|
* Module dependencies
|
||||||
*/
|
*/
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import User from '../../models/user';
|
import User, { isValidName, isValidDescription, isValidLocation, isValidBirthday, pack } from '../../models/user';
|
||||||
import { isValidName, isValidDescription, isValidLocation, isValidBirthday }, { pack } from '../../models/user';
|
|
||||||
import event from '../../event';
|
import event from '../../event';
|
||||||
import config from '../../../conf';
|
import config from '../../../conf';
|
||||||
|
|
||||||
|
|
|
@ -3,13 +3,12 @@
|
||||||
*/
|
*/
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import Reaction from '../../../models/post-reaction';
|
import Reaction from '../../../models/post-reaction';
|
||||||
import Post from '../../../models/post';
|
import Post, { pack as packPost } from '../../../models/post';
|
||||||
|
import { pack as packUser } from '../../../models/user';
|
||||||
import Watching from '../../../models/post-watching';
|
import Watching from '../../../models/post-watching';
|
||||||
import notify from '../../../common/notify';
|
import notify from '../../../common/notify';
|
||||||
import watch from '../../../common/watch-post';
|
import watch from '../../../common/watch-post';
|
||||||
import { publishPostStream, pushSw } from '../../../event';
|
import { publishPostStream, pushSw } from '../../../event';
|
||||||
import serializePost from '../../../serializers/post';
|
|
||||||
import serializeUser from '../../../serializers/user';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* React to a post
|
* React to a post
|
||||||
|
@ -90,8 +89,8 @@ module.exports = (params, user) => new Promise(async (res, rej) => {
|
||||||
});
|
});
|
||||||
|
|
||||||
pushSw(post.user_id, 'reaction', {
|
pushSw(post.user_id, 'reaction', {
|
||||||
user: await serializeUser(user, post.user_id),
|
user: await packUser(user, post.user_id),
|
||||||
post: await serializePost(post, post.user_id),
|
post: await packPost(post, post.user_id),
|
||||||
reaction: reaction
|
reaction: reaction
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
* Module dependencies
|
* Module dependencies
|
||||||
*/
|
*/
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import Post from '../../models/post';
|
import Post, { pack } from '../../models/post';
|
||||||
import User, { pack } from '../../models/user';
|
import User from '../../models/user';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get posts of a user
|
* Get posts of a user
|
||||||
|
|
|
@ -51,7 +51,7 @@ async function byNative(res, rej, me, query, offset, max) {
|
||||||
|
|
||||||
// Serialize
|
// Serialize
|
||||||
res(await Promise.all(users.map(async user =>
|
res(await Promise.all(users.map(async user =>
|
||||||
await serialize(user, me, { detail: true }))));
|
await pack(user, me, { detail: true }))));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Search by Elasticsearch
|
// Search by Elasticsearch
|
||||||
|
|
|
@ -14,6 +14,7 @@ export type IApp = {
|
||||||
_id: mongo.ObjectID;
|
_id: mongo.ObjectID;
|
||||||
created_at: Date;
|
created_at: Date;
|
||||||
user_id: mongo.ObjectID;
|
user_id: mongo.ObjectID;
|
||||||
|
secret: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export function isValidNameId(nameId: string): boolean {
|
export function isValidNameId(nameId: string): boolean {
|
||||||
|
|
|
@ -23,6 +23,7 @@ export type IDriveFile = {
|
||||||
uploadDate: Date;
|
uploadDate: Date;
|
||||||
md5: string;
|
md5: string;
|
||||||
filename: string;
|
filename: string;
|
||||||
|
contentType: string;
|
||||||
metadata: {
|
metadata: {
|
||||||
properties: any;
|
properties: any;
|
||||||
user_id: mongodb.ObjectID;
|
user_id: mongodb.ObjectID;
|
||||||
|
|
|
@ -9,6 +9,9 @@ export default PostReaction;
|
||||||
|
|
||||||
export interface IPostReaction {
|
export interface IPostReaction {
|
||||||
_id: mongo.ObjectID;
|
_id: mongo.ObjectID;
|
||||||
|
created_at: Date;
|
||||||
|
deleted_at: Date;
|
||||||
|
reaction: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -25,10 +25,12 @@ export type IPost = {
|
||||||
media_ids: mongo.ObjectID[];
|
media_ids: mongo.ObjectID[];
|
||||||
reply_id: mongo.ObjectID;
|
reply_id: mongo.ObjectID;
|
||||||
repost_id: mongo.ObjectID;
|
repost_id: mongo.ObjectID;
|
||||||
poll: {}; // todo
|
poll: any; // todo
|
||||||
text: string;
|
text: string;
|
||||||
user_id: mongo.ObjectID;
|
user_id: mongo.ObjectID;
|
||||||
app_id: mongo.ObjectID;
|
app_id: mongo.ObjectID;
|
||||||
|
category: string;
|
||||||
|
is_category_verified: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -42,6 +42,7 @@ export function isValidBirthday(birthday: string): boolean {
|
||||||
export type IUser = {
|
export type IUser = {
|
||||||
_id: mongo.ObjectID;
|
_id: mongo.ObjectID;
|
||||||
created_at: Date;
|
created_at: Date;
|
||||||
|
deleted_at: Date;
|
||||||
email: string;
|
email: string;
|
||||||
followers_count: number;
|
followers_count: number;
|
||||||
following_count: number;
|
following_count: number;
|
||||||
|
|
|
@ -2,8 +2,7 @@ import * as uuid from 'uuid';
|
||||||
import * as express from 'express';
|
import * as express from 'express';
|
||||||
import * as bcrypt from 'bcryptjs';
|
import * as bcrypt from 'bcryptjs';
|
||||||
import recaptcha = require('recaptcha-promise');
|
import recaptcha = require('recaptcha-promise');
|
||||||
import { default as User, IUser } from '../models/user';
|
import User, { IUser, validateUsername, validatePassword, pack } from '../models/user';
|
||||||
import { validateUsername, validatePassword }, { pack } from '../models/user';
|
|
||||||
import generateUserToken from '../common/generate-native-user-token';
|
import generateUserToken from '../common/generate-native-user-token';
|
||||||
import config from '../../conf';
|
import config from '../../conf';
|
||||||
|
|
||||||
|
|
|
@ -163,7 +163,7 @@ module.exports = (app: express.Application) => {
|
||||||
res.send(`Twitter: @${result.screenName} を、Misskey: @${user.username} に接続しました!`);
|
res.send(`Twitter: @${result.screenName} を、Misskey: @${user.username} に接続しました!`);
|
||||||
|
|
||||||
// Publish i updated event
|
// Publish i updated event
|
||||||
event(user._id, 'i_updated', await serialize(user, user, {
|
event(user._id, 'i_updated', await pack(user, user, {
|
||||||
detail: true,
|
detail: true,
|
||||||
includeSecrets: true
|
includeSecrets: true
|
||||||
}));
|
}));
|
||||||
|
|
|
@ -4,7 +4,7 @@ import * as debug from 'debug';
|
||||||
|
|
||||||
import User from '../models/user';
|
import User from '../models/user';
|
||||||
import Mute from '../models/mute';
|
import Mute from '../models/mute';
|
||||||
import serializePost from '../serializers/post';
|
import { pack as packPost } from '../models/post';
|
||||||
import readNotification from '../common/read-notification';
|
import readNotification from '../common/read-notification';
|
||||||
|
|
||||||
const log = debug('misskey');
|
const log = debug('misskey');
|
||||||
|
@ -49,7 +49,7 @@ export default async function(request: websocket.request, connection: websocket.
|
||||||
case 'post-stream':
|
case 'post-stream':
|
||||||
const postId = channel.split(':')[2];
|
const postId = channel.split(':')[2];
|
||||||
log(`RECEIVED: ${postId} ${data} by @${user.username}`);
|
log(`RECEIVED: ${postId} ${data} by @${user.username}`);
|
||||||
const post = await serializePost(postId, user, {
|
const post = await packPost(postId, user, {
|
||||||
detail: true
|
detail: true
|
||||||
});
|
});
|
||||||
connection.send(JSON.stringify({
|
connection.send(JSON.stringify({
|
||||||
|
|
Loading…
Reference in New Issue