Quando o Medium não tem API: polling de RSS e cross-posting pro LinkedIn
Detectando publicações no Medium via polling do RSS, os quatro headers do LinkedIn, e a regra de acrônimo do Zeitwerk que quebrou um rollback de migration no CI.
Notas sobre o software, os jogos e a música que saem da Imperfect Systems.
Feed RSSDetectando publicações no Medium via polling do RSS, os quatro headers do LinkedIn, e a regra de acrônimo do Zeitwerk que quebrou um rollback de migration no CI.
Fazendo os títulos do painel linkarem para os posts ao vivo: um prefixo de caminho configurável, uma trava por pub_date contra links quebrados, e uma coluna do spec que descartei.
Busca do Pexels na página com Turbo Frames, a pegadinha do header de autenticação que dá 401 em tokens Bearer, e um model singleton pra chave de API.
Um botão de publicar no Medium sobre uma API descontinuada mas funcional: Net::HTTP injetável, markdown sob demanda, e estados divididos entre job e service.
Conectando o Turbo Streams para que os jobs de scan atualizem a página enquanto rodam, e a pegadinha do adapter async no cable.yml que engolia todo broadcast vindo do worker.
Movendo o scan do GitHub para um job em segundo plano depois que ele ultrapassou o timeout do proxy, e a pegadinha da ordem LIFO do rescue_from que quebrou meu caminho de descarte.
Fazendo todo merge disparar deploy automático para staging: um runner self-hosted, quatro paredes seguidas, e a pegadinha dos secrets do Kamal que demorou mais para ser decifrada.
As regras para quando o CI fica vermelho num projeto Rails solo, e o limite do GitHub que virou o gate de merge num comentário estrutural.
A requisição GraphQL nunca dispara: o Medium renderiza seu estado Apollo no servidor. Três becos sem saída e a correção final com wrappedJSObject.
A API do Medium não tem o conceito de post agendado. Fase 1: modelar o estado manualmente com um enum somente de inserção, e ver se a fricção justifica a automação.
Página 15 de 16