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…
	
	Add table
		Add a link
		
	
		Reference in a new issue