Serein
Rust로 만든 가볍고 성능 좋은 Discord 전용 네이티브 클라이언트
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Página estática, sem servidor e sem build de produção. A aplicação fica no index.html;
os outros arquivos são configuração local, testes e preparação segura da publicação.
Filtros comuns a todos: faixa de seguidores, faixa de seguindo, diferença percentual entre os dois, data inicial do último post e limite de perfis listados. O modo de posts recentes usa o idioma declarado no próprio post e aceita uma janela positiva em minutos. Dá para seguir e deixar de seguir na própria lista, individualmente ou em massa.
O auto-follow.mjs procura posts marcados como português nos últimos 60 minutos,
mantém apenas perfis cujos seguidores estejam dentro de 20% (30% na segunda conta) da quantidade de contas
que seguem e limita cada execução a 100 follows. A própria conta, perfis já seguidos e
perfis bloqueados ficam de fora. Entre cada follow há uma pausa aleatória de 10 a 30
segundos para reduzir o risco de limite da API. A busca percorre as páginas até chegar
ao início da janela de 60 minutos, com um teto de segurança de 20 páginas.
Antes de seguir, a automação verifica os rótulos porn, sexual e nudity no perfil
e nos 50 posts recentes. Também rejeita bios e posts com divulgação adulta explícita,
como NSFW, 🔞, nudez e links de plataformas adultas, além de perfis com sinal forte
de outro país. Se a verificação falhar, o perfil não é seguido. O filtro reduz bastante
o risco, mas depende dos rótulos, textos e sinais públicos e, portanto, não garante
detectar conteúdo adulto ainda não rotulado nem determinar toda nacionalidade.
Primeiro rode em simulação, que não segue ninguém:
npm run auto-follow:dry-run
Para efetivar os follows:
npm run auto-follow
Cada execução é registrada localmente em auto-follow-history.jsonl, arquivo ignorado
pelo Git. A primeira conta válida do config.js é usada. Para escolher outra ou ajustar
os limites, defina AUTO_FOLLOW_HANDLE, AUTO_FOLLOW_WINDOW_MINUTES,
AUTO_FOLLOW_RATIO_PCT, AUTO_FOLLOW_MAX_FOLLOWS ou AUTO_FOLLOW_MAX_PAGES no
ambiente. Para restringir a descoberta a assuntos específicos, use
AUTO_FOLLOW_SEARCH_TERMS com termos separados por vírgula; cada termo é pesquisado
separadamente e os autores duplicados são consolidados.
O Cloudflare Worker busca-seguidores-bsky-scheduler dispara o workflow
.github/workflows/auto-follow.yml no minuto 17 de cada hora. O workflow também pode
ser iniciado manualmente. O Worker guarda no cofre do Cloudflare um token do GitHub
restrito a este repositório e à permissão de Actions. O handle e a app password continuam exclusivamente nos Secrets
BSKY_HANDLE e BSKY_APP_PASSWORD do GitHub. Nenhuma credencial fica no repositório
ou nos arquivos publicados pelo GitHub Pages, e as execuções não podem se sobrepor.
Na mesma execução, auto-unfollow.mjs remove no máximo 50 perfis, sempre do follow mais
antigo em direção ao mais recente. Entram três motivos independentes: não seguir a conta
de volta, conteúdo adulto ou sinal forte de que o perfil não é brasileiro. A carência
para reciprocidade pode ser ajustada com AUTO_UNFOLLOW_GRACE_DAYS; os dois últimos
motivos continuam valendo imediatamente para quem segue de volta.
A opção AUTO_UNFOLLOW_CLEAN_STALE_RECORDS também remove gradualmente registros antigos
de contas apagadas, suspensas ou que já não aparecem como relação ativa no Bluesky. Na
conta principal, a limpeza está habilitada, o filtro de equilíbrio está em 20% e há dez
dias de carência antes do unfollow por falta de reciprocidade.
Também são revisados até 100 perfis por rodada; perfis sem post ou repost nos últimos
365 dias entram na fila com a razão inactive_1y.
Como o Bluesky não fornece nacionalidade, a classificação é conservadora: usa sinais
explícitos no perfil, domínio e idioma regional dos posts, como 🇵🇹, Portugal, .pt ou
pt-PT. Um sinal brasileiro, como 🇧🇷, Brasil, .br ou pt-BR, tem prioridade. Perfis
sem evidência suficiente ficam como desconhecidos e são mantidos. A cada rodada são
revisados até 100 follows ainda não avaliados, começando pelos mais antigos; perfis
mantidos voltam a ser verificados após 30 dias. Esses limites podem ser ajustados com
AUTO_UNFOLLOW_POLICY_SCAN_LIMIT e AUTO_UNFOLLOW_POLICY_REVIEW_DAYS.
O workflow também aceita uma segunda conta isolada por meio dos secrets
SECONDARY_BSKY_HANDLE e SECONDARY_BSKY_APP_PASSWORD. Ela mantém estado próprio e,
na configuração atual, procura publicações em português sobre filmes, cinema e séries,
com diferença máxima de 30% entre seguidores e seguindo, e também respeita dez dias
de carência antes do unfollow por falta de reciprocidade e limpa registros antigos de
follow, como a conta principal. Se esses secrets estiverem
ausentes, a segunda rotina é ignorada sem afetar a conta principal.
Se o cache da segunda conta sumir, a rotina dela é interrompida para não seguir de novo
perfis já removidos. Para restaurar, cadastre o estado no secret
SECONDARY_AUTO_FOLLOW_STATE_GZIP_B64 (gzip + base64, como na conta principal). Só para
começar do zero, defina a variável do repositório SECONDARY_ALLOW_EMPTY_STATE=true
por uma execução e remova-a em seguida.
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗