Przeglądaj źródła

Include tox chat in mesh options

Bob Mottram 9 lat temu
rodzic
commit
20084820a1
1 zmienionych plików z 94 dodań i 29 usunięć
  1. 94
    29
      src/freedombone-mesh

+ 94
- 29
src/freedombone-mesh Wyświetl plik

28
 # You should have received a copy of the GNU General Public License
28
 # You should have received a copy of the GNU General Public License
29
 # along with this program. If not, see <http://www.gnu.org/licenses/>.
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
 IRC_PORT=6697
36
 IRC_PORT=6697
32
 PEERS_FILE=/tmp/meshpeers.txt
37
 PEERS_FILE=/tmp/meshpeers.txt
33
 
38
 
35
     freedombone-client
40
     freedombone-client
36
 fi
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
 if [ ! -f /tmp/meshtype ]; then
51
 if [ ! -f /tmp/meshtype ]; then
39
     sudo batman start
52
     sudo batman start
40
     if [ ! "$?" = "0" ]; then
53
     if [ ! "$?" = "0" ]; then
66
 echo "|--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-. "
79
 echo "|--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-. "
67
 echo "|    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-' "
80
 echo "|    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-' "
68
 echo "'    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'"
81
 echo "'    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'"
69
-echo '                   M E S H   N E T W O R K'
82
+echo '                    Freedom in the Mesh'
70
 echo ''
83
 echo ''
71
 echo 'Please choose a peer to connect to:'
84
 echo 'Please choose a peer to connect to:'
72
 idx=1
85
 idx=1
101
 fi
114
 fi
102
 
115
 
103
 # Connect to IRC
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
     fi
138
     fi
109
-    echo 'You need irssi and/or mumble installed on your system'
110
-    sudo batman stop
111
-    exit 4
112
 fi
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
     fi
158
     fi
119
-    echo 'You need irssi and/or mumble installed on your system'
120
-    sudo batman stop
121
-    exit 4
122
 fi
159
 fi
123
 
160
 
124
 echo ''
161
 echo ''
125
 echo 'Choose communication service:'
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
 echo ''
166
 echo ''
129
 
167
 
130
 read peer_index
168
 read peer_index
137
 fi
175
 fi
138
 
176
 
139
 if [[ $peer_index == 1 ]]; then
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
 else
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
 fi
218
 fi
154
 
219
 
155
 exit 0
220
 exit 0