summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/queue/processors/db/import-user-lists.ts58
1 files changed, 33 insertions, 25 deletions
diff --git a/src/queue/processors/db/import-user-lists.ts b/src/queue/processors/db/import-user-lists.ts
index 1e852be945..4692d8cf49 100644
--- a/src/queue/processors/db/import-user-lists.ts
+++ b/src/queue/processors/db/import-user-lists.ts
@@ -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
});
- }
- let target = isSelfHost(host!) ? await Users.findOne({
- host: null,
- usernameLower: username.toLowerCase()
- }) : await Users.findOne({
- host: toPuny(host!),
- usernameLower: username.toLowerCase()
- });
+ if (list == null) {
+ list = await UserLists.save({
+ id: genId(),
+ createdAt: new Date(),
+ userId: user.id,
+ name: listName,
+ userIds: []
+ });
+ }
- if (target == null) {
- target = await resolveUser(username, host);
- }
+ 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;
+ if (await UserListJoinings.findOne({ userListId: list.id, userId: target.id }) != null) continue;
- pushUserToUserList(target, list);
+ pushUserToUserList(target, list);
+ } catch (e) {
+ logger.warn(`Error in line:${linenum} ${e}`);
+ }
}
logger.succ('Imported');