Código livre

fiu

Mastodon no terminal, pronto para scripts.

Um cliente de linha de comando para o Mastodon e outros servidores com a mesma API: leia, publique e automatize, sem sair do terminal.

Instalar Ver o código no GitLab

Terminal no GNOME com a timeline inicial do fiu: os quatro posts mais recentes de uma conta de demonstração, cada um com autor, data e ID.

Publique e agende de uma linha

Posts com enquete, aviso de conteúdo, mídia e respostas saem de um comando só, e --scheduled-in agenda para depois. O texto pode vir da entrada padrão ou do seu editor.

Dois comandos fiu post: um publica uma enquete, o outro agenda um lembrete para dali a duas horas.

Filtre o JSON sem instalar o jq

Com --json você recebe a resposta crua do servidor, e --jq filtra o resultado na hora, com o jq embutido. Dá para listar o ID e o texto de cada post, um por linha.

Comando fiu timelines home com --json e um filtro --jq que lista o ID e o texto de cada post, um por linha.

Teste antes de rodar no cron

--dry-run mostra o que o comando faria sem enviar nada, --no-input nunca espera uma pergunta e a chave de idempotência torna seguro repetir um post. Cada tipo de falha tem seu código de saída.

Comando fiu post com --dry-run e --idempotency-key mostrando a requisição que seria enviada, seguido do código de saída.

Mais recursos

Leitura

Lê timelines (início, pública, de hashtag, de lista, de conta e outras), conversas, notificações e favoritos, e busca posts, contas e hashtags.

Contas e listas

Segue, silencia e bloqueia contas, gerencia listas e hashtags, e alterna entre várias contas autenticadas.

Eventos ao vivo

O comando fiu stream acompanha eventos em tempo real, uma linha de JSON por evento.

Sobre o projeto

O fiu é para quem usa o Mastodon pelo terminal e quer também automatizá-lo: publicar de um script, fazer backup, montar um bot. É uma versão em Rust da interface de linha de comando do toot e aproveita o mesmo formato de login, então dá para reutilizar as contas do toot.

A interface de texto interativa (TUI) do toot não foi portada, assim como os comandos que o toot já tinha marcado como obsoletos. Filtros do servidor, bloqueio de domínios e denúncias ainda não são cobertos.

Tecnologias

Rust, com clap para a linha de comando, reqwest para a rede e jaq para filtrar o JSON sem precisar do jq instalado.

Licença: GPL-3.0-only

Instalar o fiu

Para compilar, precisa de Rust 1.85 ou mais novo.

Do binário publicado

Binário estático para Linux, também para ARM64 (troque amd64 por arm64), com soma SHA256 para conferir.

curl -LO https://gitlab.com/alteronauta/fiu/-/releases/v1.1.0/downloads/fiu-v1.1.0-linux-amd64.tar.gz
curl -LO https://gitlab.com/alteronauta/fiu/-/releases/v1.1.0/downloads/SHA256SUMS
sha256sum --check --ignore-missing SHA256SUMS
tar xzf fiu-v1.1.0-linux-amd64.tar.gz
install -D fiu-v1.1.0-linux-amd64/fiu ~/.local/bin/fiu

Do código-fonte

git clone https://gitlab.com/alteronauta/fiu.git && cd fiu
cargo install --path .

Depois de instalar, fiu login autentica a conta. Quem já usa o toot reaproveita as contas dele, porque o formato de login é o mesmo. Os detalhes estão no README.

Conte o que você precisa resolver.

adriano@ars.tec.br

@adriano@ars.tec.br