Este é um aplicativo de Terminal (TUI), apenas por diversão… e um pouco experimental neste estágio!
Resumo
Uma interface de usuário de terminal para navegar e postar em fóruns Discourse com listas de tópicos, visualizações completas de tópicos, respostas, curtidas, pesquisa e um compositor integrado.
Por favor, considere se tornar um patrocinador contínuo do meu trabalho de código aberto (Sponsor @merefield on GitHub Sponsors · GitHub) em um nível que se ajuste aos recursos e necessidades seus ou de sua organização para garantir que este projeto receba a manutenção que merece e continue funcionando para seu site no futuro.
Gostando do termcourse? Por favor, dê uma no GitHub
\u003e termcourse é um cliente baseado em terminal para Discourse. Ele se comporta como uma sessão de navegador leve com login baseado em cookie (nome de usuário/e-mail + senha) e suporta TOTP/códigos de backup para MFA. Há também uma opção de fallback de chave de API para sites bloqueados ou apenas com SSO.
Funcionalidades
Navegue pelas listas de tópicos Mais Recentes / Populares / Novos / Não Lidos / Principais, com ciclo de período dos Principais.
Abra tópicos usando setas + Enter, ou atalhos numéricos (1-0) para os primeiros 10 tópicos visíveis.
Visualize tópicos completos com postagens roláveis, cabeçalho/rodapé fixos e uma barra de progresso/posição da postagem.
Expanda postagens selecionadas para conteúdo completo; postagens não selecionadas mostram trechos compactos.
Responda a tópicos inteiros ou a postagens específicas.
Crie novos tópicos com título, seletor de categoria e compositor de corpo em linha.
Curta/descurta postagens com estado visual de coração por postagem.
Pesquise postagens e vá diretamente para o contexto de tópico/postagem correspondente.
O compositor em linha suporta movimento do cursor, inserção, novas linhas, backspace e um contador de comprimento mínimo ao vivo.
Renderização com reconhecimento de Markdown, incluindo links com quebra de linha e suporte a visualização de imagem em linha (chafa / viu).
Substituições de emoji para tokens comuns :emoji: e emoticons do tipo :)-style.
Suporte a credenciais multi-site via variáveis de ambiente + credentials.yml por host (com solicitação para campos de login ausentes).
Login com nome de usuário/senha de sessão de cookie com suporte a MFA (TOTP + código de backup), além de fallback de chave de API.
Tematização orientada por YAML com recursos internos (padrão, ardósia, feira) e substituições locais via theme.yml.
Redesenho de redimensionamento reativo com intervalo de pesquisa configurável (TERMCOURSE_TICK_MS).
Registro de depuração opcional para diagnósticos de HTTP/autenticação e renderização da IU.
Início Rápido
Consulte o README mais recente para mais informações
git clone https://github.com/merefield/termcourse
cd termcourse
bundle install
Você precisa ter o viu ou o chafa instalados - e isso pode ser um projeto em si
No modo de alta qualidade no chafa ou com o viu, o Windows Terminal é superior ao terminal do MacOS porque suporta muito mais cores (obrigado Microsoft!)
Notas de Lançamento: Renderização de Imagem (no terminal!)
Renderização de Imagem
Adicionadas pré-visualizações de imagem de postagem em linha com seleção de backend:
tenta o chafa primeiro automaticamente, depois o viu.
TERMCOURSE_CHAFA_MODE=stable|quality
stable: saída conservadora para estabilidade do terminal.
quality: renderização de símbolos com detalhes/cores mais altos.
Adicionado controle de altura da pré-visualização:
TERMCOURSE_IMAGE_LINES (padrão: 14)
Aplica-se à altura da linha de pré-visualização; útil para ajustar a densidade visual.
Comportamento de aspecto do viu aprimorado:
Mudou para renderização direcionada por linha (-h) para preservar melhor a proporção.
Adicionados controles de filtro de qualidade de pré-visualização:
TERMCOURSE_IMAGE_QUALITY_FILTER=1 filtra pré-visualizações barulhentas apenas com blocos.
Defina como 0 para sempre mostrar a saída do renderizador.
Adicionado limite de segurança para download de imagem:
TERMCOURSE_IMAGE_MAX_BYTES (padrão: 5242880)
Impede que downloads de imagens grandes demais afetem o desempenho.
Adicionado suporte para links de imagem upload://... do Discourse:
Resolve automaticamente para /uploads/short-url/....
Sanitização/estabilidade do terminal aprimorada:
Mantém códigos de cores SGR válidos onde necessário.
Remove sequências de controle/gráficas desestabilizadoras.
Impede que fragmentos de escape ANSI sejam exibidos como texto puro.
Uma observação: encontrei um site que bloqueia nome de usuário/senha remotos, então este cliente não funcionará nessa situação (a menos que você o possua e possa definir uma chave de API!) - sugestões são bem-vindas, mas atualmente não há suporte nessas instâncias.
Não tenho certeza se usarei isso no mundo real, não vejo a utilidade para mim, mas experimentei e é delicioso. Adoro poder interagir com uma plataforma de fórum de próxima geração a partir de uma interface primitiva e bare-metal.