chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
import chalk from 'chalk';
|
||||
import inquirer from 'inquirer';
|
||||
import User from '@fiora/database/mongoose/models/user';
|
||||
import initMongoDB from '@fiora/database/mongoose/initMongoDB';
|
||||
|
||||
export async function fixUsersAvatar(
|
||||
searchValue: string,
|
||||
replaceValue: string,
|
||||
) {
|
||||
searchValue = searchValue || 'fioraavatar';
|
||||
replaceValue = replaceValue || 'fiora/avatar';
|
||||
|
||||
await initMongoDB();
|
||||
|
||||
const users = await User.find({ avatar: { $regex: 'fioraavatar' } });
|
||||
if (users.length) {
|
||||
console.log(chalk.red('Oh No!'), "Some user's avatar is wrong");
|
||||
users.forEach((user) => {
|
||||
console.log(user._id, user.username, user.avatar);
|
||||
});
|
||||
|
||||
const shouldFix = await inquirer.prompt({
|
||||
type: 'confirm',
|
||||
name: 'result',
|
||||
message: 'Confirm to fix?',
|
||||
});
|
||||
if (shouldFix.result) {
|
||||
await Promise.all(
|
||||
users.map((user) => {
|
||||
user.avatar = user.avatar.replace(
|
||||
searchValue,
|
||||
replaceValue,
|
||||
);
|
||||
return user.save();
|
||||
}),
|
||||
);
|
||||
console.log(chalk.green('Congratulations! Fixed!'));
|
||||
}
|
||||
} else {
|
||||
console.log(chalk.green('OK!'), "All user's avatar is corrent");
|
||||
}
|
||||
}
|
||||
|
||||
async function run() {
|
||||
const searchValue = process.argv[3];
|
||||
const replaceValue = process.argv[4];
|
||||
await fixUsersAvatar(searchValue, replaceValue);
|
||||
process.exit(0);
|
||||
}
|
||||
export default run;
|
||||
Reference in New Issue
Block a user