next/_migrate/users.ts

83 lines
2.4 KiB
TypeScript
Raw Normal View History

2023-09-25 19:15:58 -04:00
import { IStory, Story } from "../models/stories";
import { MongoClient } from "mongodb";
import mongoose from "mongoose";
import { uri, olduri } from "../lib/dbconfig";
import { Band } from "../models/band";
import { User } from "../models/user";
const cli = new MongoClient(olduri);
async function meep() {
try {
await cli.connect()
await mongoose.connect(uri).then(() => console.log("connect'd"));
const db = cli.db("rockfic_old")
const col = db.collection("users");
const cursor = col.find({});
for await (const s of cursor) {
const nu = new User({
_id: s._id,
username: s.username,
email: s.email,
auth: {
emailVerified: s.emailIsVerified,
activationKey: s.activationkey,
passwordResetToken: s.passwordresettoken,
},
password: s.password,
ts: {
created: s.createdAt,
updated: s.updatedAt
},
ipLog: [{
lastAccess: s.lastvisit,
ip: s.ip_address
}],
lastLogin: s.lastvisit,
lastvisit: s.lastvisit,
profile: {
avatar: s.profile_metadata.avatar,
isAdmin: s.isAdmin,
nightMode: s.profile_metadata.isNightMode,
bio: s.profile_metadata.bio,
location: s.profile_metadata.location,
occupation: s.profile_metadata.occupation,
website: s.profile_metadata.website,
blog: s.profile_metadata.blog,
views: s.profile_metadata.pageviews,
lastWhere: s.profile_metadata.isWhere,
hidden: s.profile_metadata.isStatusHidden
},
biffno: {
years: s.biffnoYears,
wins: s.biffnoWins
},
favs: {
authors: s.favs.favauthors,
stories: (await db.collection("stories").find({_id: {$in: s.favs.favstories}}).toArray()).map(a => a.id)
},
subscriptions: {
authors: s.subscriptions.author_subscriptions,
band_subscriptions: (await Band.find({name: {$in: s.subscriptions.band_subscriptions}})).map(a => a._id),
stories: (await db.collection("stories").find({_id: {$in: s.subscriptions.story_subscriptions}}).toArray()).map(a => a.id)
},
hiddenBands: (await Band.find({name: {$in: s.hidden_bands}})).map(a => a._id),
hiddenAuthors: s.hidden_authors,
blocked: s.blocklist,
sessionId: s.sessionId,
banned: s.banned,
quickMenuConfig: []
})
await nu.save()
}
} finally {
return 0
}
}
// meep().then(() => process.exit())
export default meep