PITCH: Um git para o TabNews

sim, você ouviu bem. Eu desenvolvi um "git" para o TabNews. Mas deixa eu explicar o motivo da ideia.

eu estava navegando pelo TabNews e li uma artigo sobre git, nesse exato momento tive a brilhante ideia de desenvolver um tipo de CLI para enviar meus post para o TabNews sem a necessidade de poder escrever diretamente no site.

Então comecei a desenvolver esse projeto incrível para poder publicar os posts.

Bom, o projeto é inteiramente feito em python.

pra quem quiser dá uma olhada no código e analisar e querer contribuir, vou deixar o código fonte no meu GitHub: repositório todos os comando estão no readme do repositório.

Inclusive, esse post foi digitado e publicado fora do TabNews.

Só uns detalhes sobre o código:

Em vez de verificar se o arquivo existe, simplesmente tente abri-lo e capture as exceções. Essa ideia de verificar e só depois abrir gera uma condição de corrida (race condition): em resumo, entre a verificação e a abertura, o estado do arquivo pode ter mudado e dar erro do mesmo jeito (mais detalhes aqui).

O withgarante que o arquivo será fechado ao final, então não precisa chamar close().

Para verificar a extensão do arquivo e demais manipulações, dê uma olhada no módulo pathlib - disponível desde o Python 3.4 e considerada uma alternativa mais moderna à os.path (veja aqui um comparativo).

Por fim, se a ideia é que o arquivo JSON seja apenas para "organização" interna e não necessariamente para ser lido por humanos, considere alternativas como os módulos pickle ou shelve.

Muito obrigado pelas dicas. Vou atualizar o repositorio com essas sugestões.