unoffical wafrn mirror wafrn.net
atproto social-network activitypub

add autofollow to docker compose

+33 -1
+2
docker-compose.advanced.metrics.yml
··· 74 74 REGISTRATION_MINIMUM_AGE: ${REGISTRATION_MINIMUM_AGE:-} 75 75 REGISTRATIONS_DISABLED_TEXT: ${REGISTRATIONS_DISABLED_TEXT:-} 76 76 HIDE_BLOCKED_SERVERS: ${HIDE_BLOCKED_SERVERS:-} 77 + AUTOFOLLOW_MAIN_ADMIN: ${AUTOFOLLOW_MAIN_ADMIN:-} 77 78 78 79 FRONTEND_FQDN_URL: https://${DOMAIN_NAME} 79 80 ··· 123 124 REGISTRATION_LEVEL: ${REGISTRATION_LEVEL:-} 124 125 REGISTRATIONS_DISABLED_TEXT: ${REGISTRATIONS_DISABLED_TEXT:-} 125 126 HIDE_BLOCKED_SERVERS: ${HIDE_BLOCKED_SERVERS:-} 127 + AUTOFOLLOW_MAIN_ADMIN: ${AUTOFOLLOW_MAIN_ADMIN:-} 126 128 REGISTRATION_MINIMUM_AGE: ${REGISTRATION_MINIMUM_AGE:-} 127 129 CACHE_HOST: "cache:9000" 128 130 BACKEND_HOST: "wafrn-backend-1:9000 wafrn-backend-2:9000 wafrn-backend-3:9000"
+2
docker-compose.advanced.yml
··· 73 73 REGISTRATION_LEVEL: ${REGISTRATION_LEVEL:-} 74 74 REGISTRATIONS_DISABLED_TEXT: ${REGISTRATIONS_DISABLED_TEXT:-} 75 75 HIDE_BLOCKED_SERVERS: ${HIDE_BLOCKED_SERVERS:-} 76 + AUTOFOLLOW_MAIN_ADMIN: ${AUTOFOLLOW_MAIN_ADMIN:-} 76 77 REGISTRATION_MINIMUM_AGE: ${REGISTRATION_MINIMUM_AGE:-} 77 78 78 79 FRONTEND_FQDN_URL: https://${DOMAIN_NAME} ··· 123 124 REGISTRATION_LEVEL: ${REGISTRATION_LEVEL:-} 124 125 REGISTRATIONS_DISABLED_TEXT: ${REGISTRATIONS_DISABLED_TEXT:-} 125 126 HIDE_BLOCKED_SERVERS: ${HIDE_BLOCKED_SERVERS:-} 127 + AUTOFOLLOW_MAIN_ADMIN: ${AUTOFOLLOW_MAIN_ADMIN:-} 126 128 REGISTRATION_MINIMUM_AGE: ${REGISTRATION_MINIMUM_AGE:-} 127 129 CACHE_HOST: "cache:9000" 128 130 BACKEND_HOST: "wafrn-backend-1:9000 wafrn-backend-2:9000 wafrn-backend-3:9000"
+2
docker-compose.simple.metrics.yml
··· 72 72 REGISTRATION_LEVEL: ${REGISTRATION_LEVEL:-} 73 73 REGISTRATIONS_DISABLED_TEXT: ${REGISTRATIONS_DISABLED_TEXT:-} 74 74 HIDE_BLOCKED_SERVERS: ${HIDE_BLOCKED_SERVERS:-} 75 + AUTOFOLLOW_MAIN_ADMIN: ${AUTOFOLLOW_MAIN_ADMIN:-} 75 76 REGISTRATION_MINIMUM_AGE: ${REGISTRATION_MINIMUM_AGE:-} 76 77 77 78 FRONTEND_FQDN_URL: https://${DOMAIN_NAME} ··· 116 117 REGISTRATION_LEVEL: ${REGISTRATION_LEVEL:-} 117 118 REGISTRATIONS_DISABLED_TEXT: ${REGISTRATIONS_DISABLED_TEXT:-} 118 119 HIDE_BLOCKED_SERVERS: ${HIDE_BLOCKED_SERVERS:-} 120 + AUTOFOLLOW_MAIN_ADMIN: ${AUTOFOLLOW_MAIN_ADMIN:-} 119 121 REGISTRATION_MINIMUM_AGE: ${REGISTRATION_MINIMUM_AGE:-} 120 122 volumes: 121 123 - "caddy:/data"
+2
docker-compose.simple.yml
··· 72 72 REGISTRATION_LEVEL: ${REGISTRATION_LEVEL:-} 73 73 REGISTRATIONS_DISABLED_TEXT: ${REGISTRATIONS_DISABLED_TEXT:-} 74 74 HIDE_BLOCKED_SERVERS: ${HIDE_BLOCKED_SERVERS:-} 75 + AUTOFOLLOW_MAIN_ADMIN: ${AUTOFOLLOW_MAIN_ADMIN:-} 75 76 REGISTRATION_MINIMUM_AGE: ${REGISTRATION_MINIMUM_AGE:-} 76 77 77 78 FRONTEND_FQDN_URL: https://${DOMAIN_NAME} ··· 116 117 REGISTRATION_LEVEL: ${REGISTRATION_LEVEL:-} 117 118 REGISTRATIONS_DISABLED_TEXT: ${REGISTRATIONS_DISABLED_TEXT:-} 118 119 HIDE_BLOCKED_SERVERS: ${HIDE_BLOCKED_SERVERS:-} 120 + AUTOFOLLOW_MAIN_ADMIN: ${AUTOFOLLOW_MAIN_ADMIN:-} 119 121 REGISTRATION_MINIMUM_AGE: ${REGISTRATION_MINIMUM_AGE:-} 120 122 volumes: 121 123 - "caddy:/data"
+20
packages/backend/websocket.ts
··· 54 54 import { sequelize } from "./models/sequelize.js"; 55 55 import { Op, Sequelize } from "sequelize"; 56 56 import { Post } from "./models/post.js"; 57 + import { User } from "./models/index.js"; 58 + import { follow } from "./utils/follow.js"; 59 + import { getAdminUser } from "./utils/getAdminAndDeletedUser.js"; 57 60 58 61 const PORT = completeEnvironment.port; 59 62 const app = express(); ··· 76 79 }); 77 80 78 81 const queryInterface = sequelize.getQueryInterface(); 82 + 83 + if (completeEnvironment.autoFollowAdmin) { 84 + try { 85 + const users = await User.findAll({ 86 + where: { 87 + banned: { 88 + [Op.ne]: true 89 + }, 90 + email: { 91 + [Op.ne]: null, 92 + }, 93 + } 94 + }) 95 + const adminUser = await getAdminUser() 96 + await Promise.all(users.map(x => follow(x.id, adminUser.id))) 97 + } catch { } 98 + } 79 99 80 100 clearDuplicatedBskyUris().then(async (res) => { 81 101 let postIndexes = await queryInterface.showIndex("posts");
+5 -1
packages/frontend/src/app/components/blog-header/blog-header.component.scss
··· 79 79 background-color: rgba(0 133 255 / 0.35); 80 80 } 81 81 82 + .bot-badge { 83 + background-color: rgba(1, 190, 102, 0.35); 84 + } 85 + 82 86 .ratio-badge { 83 87 background-color: var(--mat-sys-secondary-container); 84 - } 88 + }