mirror of
https://github.com/yinxin630/fiora.git
synced 2026-06-04 21:03:18 +08:00
51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
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;
|