parent
							
								
									43f3f8a058
								
							
						
					
					
						commit
						2a9de356db
					
				
					 1 changed files with 36 additions and 28 deletions
				
			
		|  | @ -30,40 +30,48 @@ export async function importUserLists(job: Bull.Job, done: any): Promise<void> { | |||
| 
 | ||||
| 	const csv = await downloadTextFile(file.url); | ||||
| 
 | ||||
| 	let linenum = 0; | ||||
| 
 | ||||
| 	for (const line of csv.trim().split('\n')) { | ||||
| 		const listName = line.split(',')[0].trim(); | ||||
| 		const { username, host } = parseAcct(line.split(',')[1].trim()); | ||||
| 		linenum++; | ||||
| 
 | ||||
| 		let list = await UserLists.findOne({ | ||||
| 			userId: user.id, | ||||
| 			name: listName | ||||
| 		}); | ||||
| 		try { | ||||
| 			const listName = line.split(',')[0].trim(); | ||||
| 			const { username, host } = parseAcct(line.split(',')[1].trim()); | ||||
| 
 | ||||
| 		if (list == null) { | ||||
| 			list = await UserLists.save({ | ||||
| 				id: genId(), | ||||
| 				createdAt: new Date(), | ||||
| 			let list = await UserLists.findOne({ | ||||
| 				userId: user.id, | ||||
| 				name: listName, | ||||
| 				userIds: [] | ||||
| 				name: listName | ||||
| 			}); | ||||
| 
 | ||||
| 			if (list == null) { | ||||
| 				list = await UserLists.save({ | ||||
| 					id: genId(), | ||||
| 					createdAt: new Date(), | ||||
| 					userId: user.id, | ||||
| 					name: listName, | ||||
| 					userIds: [] | ||||
| 				}); | ||||
| 			} | ||||
| 
 | ||||
| 			let target = isSelfHost(host!) ? await Users.findOne({ | ||||
| 				host: null, | ||||
| 				usernameLower: username.toLowerCase() | ||||
| 			}) : await Users.findOne({ | ||||
| 				host: toPuny(host!), | ||||
| 				usernameLower: username.toLowerCase() | ||||
| 			}); | ||||
| 
 | ||||
| 			if (target == null) { | ||||
| 				target = await resolveUser(username, host); | ||||
| 			} | ||||
| 
 | ||||
| 			if (await UserListJoinings.findOne({ userListId: list.id, userId: target.id }) != null) continue; | ||||
| 
 | ||||
| 			pushUserToUserList(target, list); | ||||
| 		} catch (e) { | ||||
| 			logger.warn(`Error in line:${linenum} ${e}`); | ||||
| 		} | ||||
| 
 | ||||
| 		let target = isSelfHost(host!) ? await Users.findOne({ | ||||
| 			host: null, | ||||
| 			usernameLower: username.toLowerCase() | ||||
| 		}) : await Users.findOne({ | ||||
| 			host: toPuny(host!), | ||||
| 			usernameLower: username.toLowerCase() | ||||
| 		}); | ||||
| 
 | ||||
| 		if (target == null) { | ||||
| 			target = await resolveUser(username, host); | ||||
| 		} | ||||
| 
 | ||||
| 		if (await UserListJoinings.findOne({ userListId: list.id, userId: target.id }) != null) continue; | ||||
| 
 | ||||
| 		pushUserToUserList(target, list); | ||||
| 	} | ||||
| 
 | ||||
| 	logger.succ('Imported'); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue