2 min de leitura
Enviando capturas de tela para um serviço de hospedagem no Linux
Um pequeno fluxo em Bash para capturar imagens com Flameshot, enviá-las e copiar a URL resultante.
Com base no trabalho encontrado em s-ul-curl-uploader e neste problema, este é um script Bash para enviar rapidamente capturas de tela do Flameshot ao serviço s-ul.eu.
Dependências
- flameshot
- curl
- libnotify
- xclip
- wl-clipboard
- jq
Instalação das dependências no Arch
sudo pacman -S flameshot curl libnotify xclip wl-clipboard jq
Instalação
Download automático
curl -o /home/$USER/.local/bin/sul-uploader https://gist.github.com/maotovisk/1a6a50c90982535bbaa69f6d8203ac74/raw/356f80ecc41587d09c0c68c84099c1c81f326002/sul-uploader
O script
#!/bin/bash
nome_aplicativo="S-UL"
# Dependências: curl, notify-send, xclip, wl-clipboard, jq
function _notificar()
{
notify-send --expire-time 1000 \
--app-name "$nome_aplicativo" \
--icon 'flameshot' \
"$1" "$2"
}
diretorio_armazenamento=/home/$USER/s-ul
if [[ ! -e $diretorio_armazenamento ]]; then
mkdir $diretorio_armazenamento
fi
data_atual=`date +"%Y-%m-%d %H-%M-%S"`
nome_arquivo="Screenshot_$data_atual.png"
caminho_completo="${diretorio_armazenamento}/${nome_arquivo}"
flameshot gui -r >> "$caminho_completo"
if [[ $(file --mime-type -b "$caminho_completo") != "image/png" ]]; then
rm "$caminho_completo"
_notificar "$nome_aplicativo" "Captura de tela cancelada" && exit 1
fi
chave="SUA_CHAVE_API_AQUI"
metodo=POST
url_post="https://s-ul.eu/api/v1/upload"
assistente=true
arquivo="$caminho_completo"
tamanho_real=$(wc -c <"$arquivo")
tamanho_maximo=209714177
if [ $tamanho_real -ge $tamanho_maximo ]; then
_notificar "\nDesculpe, seu arquivo é muito grande para ser enviado. Tente um arquivo menor.\n"
fi
_notificar "$nome_aplicativo" 'Enviando captura de tela...'
read url < <(echo $(curl -s -X ""$metodo"" """$url_post""?key=""$chave""&wizard=""$assistente"""" -F"file=@\"""$arquivo""\"" | jq -r '.url'))
if [ -z "$url" ]; then
_notificar "$nome_aplicativo" "Erro ao enviar"
else
if [ $XDG_SESSION_TYPE = "x11" ]; then
echo -n "$url" | xclip -selection clipboard
else
wl-copy "$url"
fi
_notificar "$nome_aplicativo" 'Sucesso! O link foi enviado para a área de transferência'
fi
Finalizando a instalação
- Torne o arquivo executável com
chmod +x .local/bin/sul-uploader; - Edite o arquivo e coloque sua chave da API do s-ul na variável
chave. Você pode encontrá-la nas configurações da sua conta; - Adicione um atalho para executar o script nas configurações do seu ambiente desktop;
- Use o caminho completo
/home/$USER/.local/bin/sul-uploader, pois a maioria dos ambientes desktop não adiciona.local/binaoPATHpor padrão.
- Use o caminho completo