Browse Source

Include tox chat in mesh options

Bob Mottram 9 years ago
parent
commit
20084820a1
1 changed files with 94 additions and 29 deletions
  1. 94
    29
      src/freedombone-mesh

+ 94
- 29
src/freedombone-mesh View File

@@ -28,6 +28,11 @@
28 28
 # You should have received a copy of the GNU General Public License
29 29
 # along with this program. If not, see <http://www.gnu.org/licenses/>.
30 30
 
31
+IRSSI_PATH=/usr/bin/irssi
32
+MUMBLE_PATH=/usr/bin/mumble
33
+TOXIC_PATH=/usr/local/bin/toxic
34
+DHTNODES=/usr/local/share/toxic/DHTnodes
35
+
31 36
 IRC_PORT=6697
32 37
 PEERS_FILE=/tmp/meshpeers.txt
33 38
 
@@ -35,6 +40,14 @@ if [ ! -f /usr/bin/batman ]; then
35 40
     freedombone-client
36 41
 fi
37 42
 
43
+# alternative toxic paths
44
+if [ -f /usr/bin/toxic ]; then
45
+    TOXIC_PATH=/usr/bin/toxic
46
+fi
47
+if [ -f /usr/share/toxic/DHTnodes ]; then
48
+    DHTNODES=/usr/share/toxic/DHTnodes
49
+fi
50
+
38 51
 if [ ! -f /tmp/meshtype ]; then
39 52
     sudo batman start
40 53
     if [ ! "$?" = "0" ]; then
@@ -66,7 +79,7 @@ echo "|                      |              |                   "
66 79
 echo "|--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-. "
67 80
 echo "|    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-' "
68 81
 echo "'    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'"
69
-echo '                   M E S H   N E T W O R K'
82
+echo '                    Freedom in the Mesh'
70 83
 echo ''
71 84
 echo 'Please choose a peer to connect to:'
72 85
 idx=1
@@ -101,30 +114,55 @@ if [ ! $AVAHI_DOMAIN ]; then
101 114
 fi
102 115
 
103 116
 # Connect to IRC
104
-if [ ! -f /usr/bin/irssi ]; then
105
-    if [ -f /usr/bin/mumble ]; then
106
-        mumble &
107
-        exit 0
117
+if [ ! -f $IRSSI_PATH ]; then
118
+    if [ ! -f $TOXIC_PATH ]; then
119
+        if [ -f $MUMBLE_PATH ]; then
120
+            MUMBLE_PATH &
121
+            exit 0
122
+        fi
123
+        echo 'You need irssi/mumble/toxic installed on your system'
124
+        sudo batman stop
125
+        exit 4
126
+    fi
127
+fi
128
+
129
+if [ ! -f $MUMBLE_PATH ]; then
130
+    if [ ! -f $TOXIC_PATH ]; then
131
+        if [ -f $IRSSI_PATH ]; then
132
+            $IRSSI_PATH -c $AVAHI_DOMAIN -p $IRC_PORT -n $USER
133
+            exit 0
134
+        fi
135
+        echo 'You need irssi/mumble/toxic installed on your system'
136
+        sudo batman stop
137
+        exit 4
108 138
     fi
109
-    echo 'You need irssi and/or mumble installed on your system'
110
-    sudo batman stop
111
-    exit 4
112 139
 fi
113 140
 
114
-if [ ! -f /usr/bin/mumble ]; then
115
-    if [ -f /usr/bin/irssi ]; then
116
-        irssi -c $AVAHI_DOMAIN -p $IRC_PORT -n $USER
117
-        exit 0
141
+if [ ! -f $MUMBLE_PATH ]; then
142
+    if [ ! -f $IRSSI_PATH ]; then
143
+        if [ -f $TOXIC_PATH ]; then
144
+            lstox -f dht > $DHTNODES
145
+            PEER_TOX_ID=$(lstox -p $AVAHI_DOMAIN | head -n 1 | awk -F ' ' '{print $2}')
146
+            if [ ${#PEER_TOX_ID} -gt 30 ]; then
147
+                echo "/add $PEER_TOX_ID
148
+" | $TOXIC_PATH -d
149
+                exit 0
150
+            else
151
+                echo "Tox ID for $AVAHI_DOMAIN was not found"
152
+                exit 6
153
+            fi
154
+        fi
155
+        echo 'You need irssi/mumble/toxic installed on your system'
156
+        sudo batman stop
157
+        exit 4
118 158
     fi
119
-    echo 'You need irssi and/or mumble installed on your system'
120
-    sudo batman stop
121
-    exit 4
122 159
 fi
123 160
 
124 161
 echo ''
125 162
 echo 'Choose communication service:'
126
-echo '    1. VoIP + Instant Messaging'
127
-echo '    2. IRC (WARNING: not encrypted)'
163
+echo '    1. VoIP'
164
+echo '    2. Tox Chat'
165
+echo '    3. IRC (WARNING: not encrypted)'
128 166
 echo ''
129 167
 
130 168
 read peer_index
@@ -137,19 +175,46 @@ if [ ! $peer_index ]; then
137 175
 fi
138 176
 
139 177
 if [[ $peer_index == 1 ]]; then
140
-    echo ''
141
-    echo 'To setup for the first time click "Add New", then set:'
142
-    echo "    Label:    $AVAHI_DOMAIN"
143
-    echo "    Address:  $AVAHI_DOMAIN"
144
-    echo '    Port:     64738'
145
-    echo "    Username: $USER"
146
-    echo ''
147
-    echo 'Press Enter to continue.'
148
-    echo ''
149
-    read peer_index
150
-    mumble &
178
+    if [ -f $MUMBLE_PATH ]; then
179
+        echo ''
180
+        echo 'To setup for the first time click "Add New", then set:'
181
+        echo "    Label:    $AVAHI_DOMAIN"
182
+        echo "    Address:  $AVAHI_DOMAIN"
183
+        echo '    Port:     64738'
184
+        echo "    Username: $USER"
185
+        echo ''
186
+        echo 'Press Enter to continue.'
187
+        echo ''
188
+        read peer_index
189
+        $MUMBLE_PATH &
190
+    else
191
+        echo 'Mumble may not be installed on this system'
192
+        exit 5
193
+    fi
151 194
 else
152
-    irssi -c $AVAHI_DOMAIN -p $IRC_PORT -n $USER
195
+    if [[ $peer_index == 2 ]]; then
196
+        if [ -f $TOX_PATH ]; then
197
+            lstox -f dht > $DHTNODES
198
+            PEER_TOX_ID=$(lstox -p $AVAHI_DOMAIN | head -n 1 | awk -F ' ' '{print $2}')
199
+            if [ ${#PEER_TOX_ID} -gt 30 ]; then
200
+                echo "/add $PEER_TOX_ID
201
+" | $TOXIC_PATH -d
202
+            else
203
+                echo "Tox ID for $AVAHI_DOMAIN was not found"
204
+                exit 6
205
+            fi
206
+        else
207
+            echo 'Tox may not be installed on this system'
208
+            exit 7
209
+        fi
210
+    else
211
+        if [ -f $IRSSI_PATH ]; then
212
+            $IRSSI_PATH -c $AVAHI_DOMAIN -p $IRC_PORT -n $USER
213
+        else
214
+            echo 'Irssi may not be installed on this system'
215
+            exit 8
216
+        fi
217
+    fi
153 218
 fi
154 219
 
155 220
 exit 0