Skip to content

📸 Tire screenshots de todos os seus projetos web automaticamente!

License

Notifications You must be signed in to change notification settings

GuilhermeBalog/repository-screenshots

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Repository Screenshots

📸 Tire screenshots de todos os seus projetos web automaticamente!

Gif de exemplo

VocĂŞ pode usar as imagens no README do seu projeto, ou como thumbnail no Github, ou ainda para ilustrar seu portfĂłlio!

O tamanho das imagens geradas é 1200x600, que é o tamanho recomendado para as OG Images do facebook, e também outros serviços.

Como utilizar?

VocĂŞ vai precisar do git, do Node.js instalado e, se quiser o Yarn

  • Primeiro clone o repositĂłrio e entre na pasta criada

    git clone https://github.com/GuilhermeBalog/repository-screenshots.git
    cd repository-screenshots
  • Instale as dependĂŞncias

    npm install
    # ou
    yarn install
  • Rode o projeto!

    npm start
    #ou
    yarn start

No terminal será perguntado seu nome de usuário e assim que o programa conseguir listar todos os seus repositórios e fazer o processo, as fotos tiradas ficarão salvas na pasta screenshots.

⚠️ IMPORTANTE: Para o programa conseguir acessar a página de um projeto é necessário informar a url da home page pela site do github:

Como adicionar homepage

Como funciona o cĂłdigo?

O nome de usuário é capturado através da biblioteca readline-sync, que serve para ler inputs do usuário via terminal. Uma vez que sabemos o nome de usuário, podemos fazer uma requisição para a API do github, com o objetivo de obter todos os repositórios do usuário.

Para isso usamos a biblioteca axios para fazer requisições do tipo GET para /users/{username}/repos?type=all&per_page=100&page=${page}, cada vez em uma página nova (aumentando o valor de page), até que a resposta seja um array vazio. O parâmetro type com o valor all serve para obtermos também os repositórios em que o usuário contribuiu, não apenas os quais ele é dono. Se não for possível achar o usuário fornecido, outro username é solicitado.

Após obter todos os repositórios do usuário, é feita uma filtragem para ficarmos apenas com os repositórios que possuem uma homepage.

Agora é hora de tirar as screenshots, usando a biblioteca puppeteer, que simula um navegador debaixo dos panos. Com isso podemos acessar qualquer site da internet, em especial nosso conjunto de URLs de homepage. Então basta acessarmos cada página e utilizar o método page.screenshot() passando o caminho para salvar a imagem, no caso utilizamos o nome do repositório.

Com isso o programa termina sua execução e podemos utilizar as imagens geradas!