#!/bin/bash

if [ "`which whoami`" != "" ]; then
WHOAMI=`whoami`
else
WHOAMI=root
fi

rm -f /tmp/$WHOAMI-pupctorrent*

if ! [ -d $HOME/pupctorrent ]; then
mkdir $HOME/pupctorrent
fi
if ! [ -d $HOME/pupctorrent/trackers ]; then
mkdir $HOME/pupctorrent/trackers
fi
if ! [ -d $HOME/pupctorrent/torrents ]; then
mkdir $HOME/pupctorrent/torrents
fi

cd $HOME/pupctorrent/trackers

if [ "`ls`" != "" ]; then
ls | while read TEMP
do
if [ "`cat "$TEMP" | grep url=`" = "" ]; then
if [ "$TEMP" != add-a-tracker ]; then
cat "$TEMP" >> /tmp/$WHOAMI-pupctorrent-temp
fi
rm -f "$TEMP"
fi
done
fi

TRACKERS=""
for ONETRACKER in `ls`
do
 TRACKERS="$TRACKERS<item>$ONETRACKER</item>"
done

echo 512k > /tmp/$WHOAMI-pupctorrent-rates
echo 32k >> /tmp/$WHOAMI-pupctorrent-rates
echo 48k>> /tmp/$WHOAMI-pupctorrent-rates
echo 64k>> /tmp/$WHOAMI-pupctorrent-rates
echo 96k>> /tmp/$WHOAMI-pupctorrent-rates
echo 128k >> /tmp/$WHOAMI-pupctorrent-rates
echo 192k >> /tmp/$WHOAMI-pupctorrent-rates
echo 256k >> /tmp/$WHOAMI-pupctorrent-rates
echo 384k >> /tmp/$WHOAMI-pupctorrent-rates
echo 768k >> /tmp/$WHOAMI-pupctorrent-rates
echo 1m >> /tmp/$WHOAMI-pupctorrent-rates
echo 1.5m >> /tmp/$WHOAMI-pupctorrent-rates
echo 2m >> /tmp/$WHOAMI-pupctorrent-rates
echo 3m>> /tmp/$WHOAMI-pupctorrent-rates
echo 4m >> /tmp/$WHOAMI-pupctorrent-rates

RATES=""
for ONERATE in `cat /tmp/$WHOAMI-pupctorrent-rates`
do
 RATES="$RATES<item>$ONERATE</item>"
done

cd /

export NEWGUI="
<window title=\"Create-Torrent \"icon-name=\"gtk-network\">
<hbox>
<vbox>

    <frame どちらか一方を選択して下さい>
	<hbox>
    <radiobutton active=\"true\">
      <label>ディレクトリのトレントを作成</label>
      <variable>RADIOBUTTON1</variable>
		<action>if true enable:NEWDIR</action>
		<action>if true enable:FILE_BROWSE_DIRECTORY</action>
      <action>if false disable:NEWDIR</action>
      <action>if false disable:FILE_BROWSE_DIRECTORY</action>
    </radiobutton>
    <radiobutton active=\"false\">
      <label>１ファイルのトレントを作成</label>
      <variable>RADIOBUTTON2</variable>
		<action>if true enable:ENTRY1</action>
		<action>if true enable:FILE_BROWSE_FILENAME</action>
      <action>if false disable:ENTRY1</action>
      <action>if false disable:FILE_BROWSE_FILENAME</action>
    </radiobutton>
    </hbox>
	<frame ディレクトリの選択>
	<hbox>
      <entry accept=\"directory\">
        <label>ディレクトリを選択して下さい</label>
        <variable>NEWDIR</variable>
      </entry>
      <button>
        <input file stock=\"gtk-open\"></input>
        <variable>FILE_BROWSE_DIRECTORY</variable>
        <action type=\"fileselect\">NEWDIR</action>
      </button>
  </hbox>
  </frame>
	<frame １ファイルを選択>
    <hbox>
      <entry accept=\"filename\">
        <label>存在するファイルを選択して下さい</label>
        <variable>ENTRY1</variable>
			<visible>disabled</visible>
      </entry>
      <button>
        <input file stock=\"gtk-file\"></input>
        <variable>FILE_BROWSE_FILENAME</variable>
			<visible>disabled</visible>
        <action type=\"fileselect\">ENTRY1</action>
      </button>
    </hbox>
  </frame>
  </frame>

    <frame トレントファイルの１つのレートサイズを選択して下さい>
    <hbox>
    <combobox>	
     <variable>RATECOMBO</variable>
      $RATES
    </combobox>
    </hbox>
    </frame>

    <frame トラッカの選択とトレントの作成>
    <hbox>
    <combobox>	
     <variable>TRACKERCOMBO</variable>
      $TRACKERS
    </combobox>
    <button>
      <input file stock=\"gtk-yes\"></input>
      <label>作成</label>
      <action type=\"exit\">CREATE_TORRENT</action>
    </button> 
    </hbox>
    </frame>
    
    <frame トラッカの削除と追加 - プログラムの終了>
    <hbox>
    
    <button>
      <input file stock=\"gtk-remove\"></input>
      <label>トラッカの削除</label>
      <action type=\"exit\">REMOVE_THE_TRACKER</action>
    </button>
    
    <button>
      <input file stock=\"gtk-add\"></input>
      <label>トラッカの追加</label>
      <action type=\"exit\">ADD_A_TRACKER</action>
    </button>
    
    <button>
      <input file stock=\"gtk-quit\"></input>
      <label>終了</label>
      <action type=\"exit\">Exit-NOW</action>
    </button>

  </hbox>
  </frame>

</vbox>
</hbox>
</window>
"
PUPCREATETORRENT="`gtkdialog3 --program=NEWGUI --center`"

EXIT="`echo "$PUPCREATETORRENT" | grep EXIT= | cut -f 2 -d '"' | sed 's/"//g'`"

if [ "$EXIT" = Exit-NOW ]; then
exit 0
fi

TRACKERCOMBO="`echo "$PUPCREATETORRENT" | grep TRACKERCOMBO= | cut -f 2 -d '"' | sed 's/"//g'`"

if [ "$EXIT" = CREATE_TORRENT ]; then
NEWDIR="`echo "$PUPCREATETORRENT" | grep NEWDIR= | cut -f 2 -d '"' | sed 's/"//g'`"
if [ "$NEWDIR" = "" ]; then
NEWDIR="`echo "$PUPCREATETORRENT" | grep ENTRY1= | cut -f 2 -d '"' | sed 's/"//g'`"
fi
if [ "$NEWDIR" = "" ]; then
Xdialog --title "MESSAGE BOX" \
        --msgbox "トレントを作るファイルかディレクトリを
        選択する必要があります" 0 0 &
exit 0
fi
FILE="`basename "$NEWDIR"`"
RATECOMBO="`echo "$PUPCREATETORRENT" | grep RATECOMBO= | cut -f 2 -d '"' | sed 's/"//g'`"
if [ "$RATECOMBO" = 1.5m ]; then
RATE=1500000
else
RATE=`echo "$RATECOMBO" | sed 's/k/000/g' | sed 's/m/000000/g'`
fi
cd $HOME/pupctorrent/trackers/
NEWURL=`cat "$TRACKERCOMBO" | grep url= | cut -f 2 -d '='`
NEWPORT=`cat "$TRACKERCOMBO" | grep port= | cut -f 2 -d '='`
NEWPATH=`cat "$TRACKERCOMBO" | grep path= | cut -f 2 -d '='`
URL="$NEWURL":"$NEWPORT""$NEWPATH"
TORR="$FILE".torrent

cd "`dirname "$NEWDIR"`"
if [ "$FILE" != "" ]; then
rxvt -bg orange --geometry 60x10 -e ctorrent -t "$FILE" -u "$URL" -l "$RATE" -s $HOME/pupctorrent/torrents/"$TORR"

Xdialog --title "MESSAGE BOX" \
        --msgbox "\"$TORR\" は $HOME/pupctorrent/torrents/ 
        にあります" 0 0 &
fi
fi

if [ "$EXIT" = REMOVE_THE_TRACKER ]; then
cd $HOME/pupctorrent/trackers/
export MAIN_DIALOG="
 <vbox>
  <text>
    <label>本当に \"$TRACKERCOMBO\" を削除しますか？</label>
  </text>
  <hbox>
    <button>
      <input file stock=\"gtk-delete\"></input>
      <label>削除</label>
      <action type=\"exit\">REMOVE-YES</action>
    </button>
    <button>
      <input file stock=\"gtk-quit\"></input>
      <label>キャンセル</label>
      <action type=\"exit\">REMOVE-NO</action>
    </button>
  </hbox>
 </vbox>
"
MAIN_DIALOG=`gtkdialog3 --program=MAIN_DIALOG --center`
EXIT="`echo "$MAIN_DIALOG" | grep EXIT= | cut -f 2 -d '"' | sed 's/"//g'`"
if [ "$EXIT" = REMOVE-YES ]; then
rm -f "$TRACKERCOMBO"
fi
pupcreatetorrent &
exit 0
fi

if [ "$EXIT" = ADD_A_TRACKER ]; then
export NEWGUI2="
<window title=\"Add-A-Tracker \"icon-name=\"gtk-network\">
<vbox>

    <frame トラッカのアナウンスURLを入力して下さい>
    <vbox>
    <text><label>例えば、「bt.etree.org」トラッカならば</label></text>
    <text><label>http://tracker.etree.org:6969/announce</label></text>
    <text><label>このボックスには、port/announce なしでURLだけ入力して下さい </label></text>
    <text><label>すなわち http://tracker.etree.org</label></text>
    <entry>	
     <variable>NEWURL</variable>
      <input>echo http://</input>
    </entry>
    </vbox>
    </frame>
    
    <frame トラッカのポート番号を入力して下さい>
    <vbox>
    <entry>	
     <variable>NEWPORT</variable>
     <input>echo 6969</input>
    </entry>
    </vbox>
    </frame>
    
    <frame サーバのパスを入力して下さい>
    <vbox>
    <entry>	
     <variable>NEWPATH</variable>
     <input>echo /announce</input>
    </entry>
    </vbox>
    </frame>
    
    <vbox>
    <text><label>このトラッカを示す名前を入力して下さい</label></text>
    <text><label>すなわち bt.etree.org</label></text>
    <entry>	
     <variable>NEWNAME</variable>
    </entry>
    </vbox>
    
    <frame 作成と終了ボタン>
    <hbox>    
    
    <button>
      <input file stock=\"gtk-yes\"></input>
      <label>作成</label>
      <action type=\"exit\">ADD-TRACKER</action>
	</button>
	
    <button>
      <input file stock=\"gtk-quit\"></input>
      <label>終了</label>
      <action type=\"exit\">Exit-NOW</action>
    </button>
    
  </hbox>
  </frame>

</vbox>
</window>
"
NEWGUI2=`gtkdialog3 --program=NEWGUI2 --center`
EXIT="`echo "$NEWGUI2" | grep EXIT= | cut -f 2 -d '"' | sed 's/"//g'`"
if [ "$EXIT" = ADD-TRACKER ]; then
NEWURL="`echo "$NEWGUI2" | grep NEWURL= | cut -f 2 -d '"' | sed 's/"//g'`"
NEWPORT="`echo "$NEWGUI2" | grep NEWPORT= | cut -f 2 -d '"' | sed 's/"//g'`"
NEWPATH="`echo "$NEWGUI2" | grep NEWPATH= | cut -f 2 -d '"' | sed 's/"//g'`"
NEWNAME="`echo "$NEWGUI2" | grep NEWNAME= | cut -f 2 -d '"' | sed 's/"//g'`"
echo url="$NEWURL" > $HOME/pupctorrent/trackers/"$NEWNAME"
echo port="$NEWPORT" >> $HOME/pupctorrent/trackers/"$NEWNAME"
echo path="$NEWPATH" >> $HOME/pupctorrent/trackers/"$NEWNAME"
pupcreatetorrent &
fi
fi

rm -f /tmp/$WHOAMI-pupctorrent*
exit 0