82 lines
1.5 KiB
Bash
Executable File
82 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# handler for i2psnark torrent files and magnet links
|
|
#
|
|
# version 0.2
|
|
#
|
|
# zzz 2020-05-10
|
|
#
|
|
if [ $# -ne 1 ]
|
|
then
|
|
echo "usage: $0 link"
|
|
exit 1
|
|
fi
|
|
|
|
ARG="$1"
|
|
I2PURL=http://localhost:7657/
|
|
|
|
wget "$I2PURL" -o /dev/null -O /dev/null
|
|
if [ $? -ne 0 ]
|
|
then
|
|
# check local install
|
|
I2PROUTER="$HOME/i2p/i2prouter"
|
|
if [ ! -x "$I2PROUTER" ]
|
|
then
|
|
# check system install
|
|
I2PROUTER=i2prouter
|
|
type "$I2PROUTER" > /dev/null 2>&1
|
|
if [ $? -ne 0 ]
|
|
then
|
|
echo "i2prouter is not installed"
|
|
exit 1
|
|
fi
|
|
fi
|
|
"$I2PROUTER" status > /dev/null 2>&1
|
|
if [ $? -ne 0 ]
|
|
then
|
|
echo "Starting I2P..."
|
|
"$I2PROUTER" start
|
|
# wait up to 5 minutes
|
|
i=0
|
|
while [ $i -lt 60 ]
|
|
do
|
|
wget "$I2PURL" -o /dev/null -O /dev/null
|
|
if [ $? -ne 0 ]
|
|
then
|
|
echo "waiting for i2psnark..."
|
|
sleep 10
|
|
break;
|
|
fi
|
|
echo "waiting for i2p..."
|
|
sleep 5
|
|
true $((i++))
|
|
done
|
|
else
|
|
echo "I2P running but console not up?"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
BROWSER=`grep '^routerconsole.browser=' "$HOME/.i2p/router.config" 2> /dev/null | cut -d '=' -f 2`
|
|
if [ "x$BROWSER" = "x" ]
|
|
then
|
|
BROWSER=sensible-browser
|
|
type "$BROWSER" > /dev/null 2>&1
|
|
if [ $? -ne 0 ]
|
|
then
|
|
BROWSER=firefox
|
|
fi
|
|
fi
|
|
|
|
wget "${I2PURL}i2psnark/" -o /dev/null -O /dev/null
|
|
if [ $? -ne 0 ]
|
|
then
|
|
echo "I2P is running but i2psnark is not, start it first"
|
|
"$BROWSER" "${I2PURL}configwebapps"
|
|
exit 1
|
|
fi
|
|
|
|
# escape magnet params
|
|
ARG=`echo "$ARG" | sed -e 's/?/%3F/g' | sed -e 's/&/%26/g'`
|
|
"$BROWSER" "${I2PURL}i2psnark/?nofilter_newURL=$ARG#add"
|