unoffical wafrn mirror
wafrn.net
atproto
social-network
activitypub
1import { sequelize, User } from '../models/index.js'
2import { logger } from '../utils/logger.js'
3import { Op } from 'sequelize'
4import optimizeMedia from '../utils/optimizeMedia.js'
5
6sequelize
7 .sync({
8 force: false
9 })
10 .then(async () => {
11 logger.info('Database & tables ready!')
12 if (false) {
13 logger.info('CLEANING DATA')
14 // seeder();
15 }
16 })
17
18async function start() {
19 //const medias = await Media.findAll()
20 const users = await User.findAll({
21 where: {
22 url: {
23 [Op.notLike]: '@%'
24 },
25 avatar: {
26 [Op.like]: '%avif'
27 }
28 }
29 })
30 /*
31 for (const media of medias) {
32 if (media.url.indexOf('//') === -1) {
33 const newUrl = await optimizeMedia(`uploads${media.url}`)
34 media.url = newUrl.slice(7)
35 await media.save()
36 }
37 }*/
38 for await (const user of users.filter((usr: any) => usr.avatar)) {
39 try {
40 const newAvatar = await optimizeMedia(`uploads${user.avatar}`, { forceImageExtension: 'webp' })
41 user.avatar = newAvatar.slice(7)
42 await user.save()
43 } catch (error) {
44 logger.warn(error)
45 }
46 }
47}
48
49start()
50 .then(() => {
51 logger.info('all good')
52 })
53 .catch((error) => {
54 logger.warn(error)
55 })