Refactor
This commit is contained in:
parent
496f42805d
commit
e47c354916
3 changed files with 28 additions and 35 deletions
|
@ -6,7 +6,7 @@ import * as mongo from 'mongodb';
|
||||||
import * as request from 'request';
|
import * as request from 'request';
|
||||||
|
|
||||||
import { queueLogger } from '../../logger';
|
import { queueLogger } from '../../logger';
|
||||||
import User, { isRemoteUser, fetchProxyAccount } from '../../../models/user';
|
import User from '../../../models/user';
|
||||||
import config from '../../../config';
|
import config from '../../../config';
|
||||||
import UserList from '../../../models/user-list';
|
import UserList from '../../../models/user-list';
|
||||||
import DriveFile from '../../../models/drive-file';
|
import DriveFile from '../../../models/drive-file';
|
||||||
|
@ -14,9 +14,7 @@ import chalk from 'chalk';
|
||||||
import { getOriginalUrl } from '../../../misc/get-drive-file-url';
|
import { getOriginalUrl } from '../../../misc/get-drive-file-url';
|
||||||
import parseAcct from '../../../misc/acct/parse';
|
import parseAcct from '../../../misc/acct/parse';
|
||||||
import resolveUser from '../../../remote/resolve-user';
|
import resolveUser from '../../../remote/resolve-user';
|
||||||
import { renderActivity } from '../../../remote/activitypub/renderer';
|
import { pushUserToUserList } from '../../../services/user-list/push';
|
||||||
import renderFollow from '../../../remote/activitypub/renderer/follow';
|
|
||||||
import { deliver } from '../..';
|
|
||||||
|
|
||||||
const logger = queueLogger.createSubLogger('import-user-lists');
|
const logger = queueLogger.createSubLogger('import-user-lists');
|
||||||
|
|
||||||
|
@ -130,18 +128,7 @@ export async function importUserLists(job: Bull.Job, done: any): Promise<void> {
|
||||||
target = await resolveUser(username, host);
|
target = await resolveUser(username, host);
|
||||||
}
|
}
|
||||||
|
|
||||||
await UserList.update({ _id: list._id }, {
|
pushUserToUserList(target, list);
|
||||||
$push: {
|
|
||||||
userIds: target._id
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// このインスタンス内にこのリモートユーザーをフォローしているユーザーがいなくても投稿を受け取るためにダミーのユーザーがフォローしたということにする
|
|
||||||
if (isRemoteUser(target)) {
|
|
||||||
const proxy = await fetchProxyAccount();
|
|
||||||
const content = renderActivity(renderFollow(proxy, user));
|
|
||||||
deliver(proxy, content, target.inbox);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.succ('Imported');
|
logger.succ('Imported');
|
||||||
|
|
|
@ -1,14 +1,10 @@
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import ID, { transform } from '../../../../../misc/cafy-id';
|
import ID, { transform } from '../../../../../misc/cafy-id';
|
||||||
import UserList from '../../../../../models/user-list';
|
import UserList from '../../../../../models/user-list';
|
||||||
import { pack as packUser, isRemoteUser, fetchProxyAccount } from '../../../../../models/user';
|
|
||||||
import { publishUserListStream } from '../../../../../services/stream';
|
|
||||||
import { renderActivity } from '../../../../../remote/activitypub/renderer';
|
|
||||||
import renderFollow from '../../../../../remote/activitypub/renderer/follow';
|
|
||||||
import { deliver } from '../../../../../queue';
|
|
||||||
import define from '../../../define';
|
import define from '../../../define';
|
||||||
import { ApiError } from '../../../error';
|
import { ApiError } from '../../../error';
|
||||||
import { getUser } from '../../../common/getters';
|
import { getUser } from '../../../common/getters';
|
||||||
|
import { pushUserToUserList } from '../../../../../services/user-list/push';
|
||||||
|
|
||||||
export const meta = {
|
export const meta = {
|
||||||
desc: {
|
desc: {
|
||||||
|
@ -81,18 +77,5 @@ export default define(meta, async (ps, me) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Push the user
|
// Push the user
|
||||||
await UserList.update({ _id: userList._id }, {
|
pushUserToUserList(user, userList);
|
||||||
$push: {
|
|
||||||
userIds: user._id
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
publishUserListStream(userList._id, 'userAdded', await packUser(user));
|
|
||||||
|
|
||||||
// このインスタンス内にこのリモートユーザーをフォローしているユーザーがいなくても投稿を受け取るためにダミーのユーザーがフォローしたということにする
|
|
||||||
if (isRemoteUser(user)) {
|
|
||||||
const proxy = await fetchProxyAccount();
|
|
||||||
const content = renderActivity(renderFollow(proxy, user));
|
|
||||||
deliver(proxy, content, user.inbox);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
23
src/services/user-list/push.ts
Normal file
23
src/services/user-list/push.ts
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
import { pack as packUser, IUser, isRemoteUser, fetchProxyAccount } from '../../models/user';
|
||||||
|
import UserList, { IUserList } from '../../models/user-list';
|
||||||
|
import { renderActivity } from '../../remote/activitypub/renderer';
|
||||||
|
import { deliver } from '../../queue';
|
||||||
|
import renderFollow from '../../remote/activitypub/renderer/follow';
|
||||||
|
import { publishUserListStream } from '../stream';
|
||||||
|
|
||||||
|
export async function pushUserToUserList(target: IUser, list: IUserList) {
|
||||||
|
await UserList.update({ _id: list._id }, {
|
||||||
|
$push: {
|
||||||
|
userIds: target._id
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
publishUserListStream(list._id, 'userAdded', await packUser(target));
|
||||||
|
|
||||||
|
// このインスタンス内にこのリモートユーザーをフォローしているユーザーがいなくても投稿を受け取るためにダミーのユーザーがフォローしたということにする
|
||||||
|
if (isRemoteUser(target)) {
|
||||||
|
const proxy = await fetchProxyAccount();
|
||||||
|
const content = renderActivity(renderFollow(proxy, target));
|
||||||
|
deliver(proxy, content, target.inbox);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue