Configure o add-to-tranmission-daemon-action no firefox?

3

Como eu configuro o firefox de modo que um link de bittorent clicado seja automaticamente adicionado a um daemon de transmissão que é executado em uma máquina remota?

O daemon de transmissão está disponível via porta ssh / transmissão-controle remoto.

Eu posso facilmente instruir o firefox a abrir um arquivo torrent com um shell script de minha escolha, mas o firefox faz o download do arquivo torrent para /var/tmp e fornece o caminho do arquivo temporário para o script.

Isso não é exatamente o que eu quero - eu preciso que o firefox apenas chame o shell script e forneça o URL (original) como parâmetro.

Pontos de bônus para uma configuração em que o firefox até fornece feedback caso o status de saída do script de shell seja desigual 0.

(Estou mencionando scripts de shell aqui, mas não hesite em outras soluções de script se elas forem mais convenientes para esse propósito)

    
por maxschlepzig 15.09.2013 / 12:14

1 resposta

1

Muito surpreendentemente, o Firefox não oferece uma maneira de abrir diretamente URLs de certos tipos MIME (ou contendo certas extensões de arquivos) com programas externos.

Outro exemplo para isso seria chamar programas externos para streaming.

Existem são mais ou menos old bug relatórios para Firefox (que remonta há uma década). Os desenvolvedores parecem reconhecer o problema geral, mas eles ainda estão abertos - às vezes, os principais problemas de arquitetura são mencionados. Outros navegadores como o Opera / Internet-Explorer suportam esse recurso de URL aberto com programa externo. Alguns comentários mencionam diferentes addons para contornar isso - mas todos parecem estar descontinuados / não funcionam.

Eu encontrei a seguinte solução:

parte 1: addon

Instale o addon do Firefox URL Relay . Com isso, você pode configurar padrões de URL que são abertos com um programa externo.

parte 2: script de shell

Use um script de shell como este:

#!/usr/bin/bash

set -e
set -u
# for testing
set -x

if [ $# -lt 1 ] ; then
  cat <<EOF
call: $0 TORRENT_URL_1 TORRENT_URL_2 ...

Adds torrent URLs to a remote transmission daemon.

EOF
  exit 1
fi

function quote()
{
  for i in "$@"; do
    echo --add "'"$i"'"
  done
}

HOST=example.org
AUTH="--auth juser:geheim"
ADDR=transmissiond.example.org:5432
TRANSMISSION_REMOTE=transmission-remote

ssh $HOST $TRANSMISSION_REMOTE $ADDR $AUTH  'quote "$@"'  # "'$1'"

O esquema de citar é usado para proteger contra whitespace / shell-meta-caracteres em URLs, embora o Firefox seja provavelmente sensato o suficiente para não incluí-los.

parte 3: configurar a retransmissão de URL

Use algo como \.torrent$ como padrão de URL, o local do script como executável e apenas %URL% como parâmetro.

notas adicionais

O Relay de URL do addon não parece dar feedback sobre status de saída incorreto. Assim, pode-se envolver o script acima com at now de forma que um email seja enviado no caso de erro.

    
por 15.09.2013 / 13:58