83 lines
2.4 KiB
TypeScript
83 lines
2.4 KiB
TypeScript
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
|