浏览代码

Create files containing lists of zeronet blogs and forums on the mesh

Bob Mottram 9 年前
父节点
当前提交
e4684e91d7
共有 2 个文件被更改,包括 97 次插入1 次删除
  1. 2
    0
      src/freedombone
  2. 95
    1
      src/zeronetavahi

+ 2
- 0
src/freedombone 查看文件

@@ -403,6 +403,8 @@ TOX_NODE=
403 403
 
404 404
 #ZERONET_REPO='https://github.com/HelloZeroNet/ZeroNet.git'
405 405
 ZERONET_REPO='https://github.com/bashrc/ZeroNet.git'
406
+ZERONET_BLOG_REPO='https://github.com/HelloZeroNet/ZeroBlog'
407
+ZERONET_FORUM_REPO='https://github.com/HelloZeroNet/ZeroTalk'
406 408
 ZERONET_PORT=15441
407 409
 TRACKER_PORT=6969
408 410
 

+ 95
- 1
src/zeronetavahi 查看文件

@@ -30,10 +30,14 @@
30 30
 
31 31
 TRACKER_PORT=6969
32 32
 BOOTSTRAP_FILE=/opt/zeronet/bootstrap
33
+BLOGS_FILE=/opt/zeronet/blogs
34
+FORUM_FILE=/opt/zeronet/forum
33 35
 
34 36
 if [ ! -d /opt/zeronet ]; then
35 37
     if [ -d ~/zeronet ]; then
36 38
         BOOTSTRAP_FILE=~/zeronet/bootstrap
39
+        BLOGS_FILE=~/zeronet/blogs
40
+        FORUM_FILE=~/zeronet/forum
37 41
     else
38 42
         exit 0
39 43
     fi
@@ -43,12 +47,18 @@ if [ ! -d /etc/avahi ]; then
43 47
     exit 0
44 48
 fi
45 49
 
50
+TEMPFILE_BASE=/tmp/tmpzeronetavahibase.txt
46 51
 TEMPFILE=/tmp/tmpzeronetavahi.txt
47
-avahi-browse -atr | grep "Workstation\|hostname =\|address =\|port =" > $TEMPFILE
52
+avahi-browse -atr > $TEMPFILE_BASE
53
+cat $TEMPFILE_BASE | grep "Workstation\|hostname =\|address =\|port =" > $TEMPFILE
48 54
 if [ ! -f $TEMPFILE ]; then
49 55
     exit 1
50 56
 fi
51 57
 
58
+if [ -f $BOOTSTRAP_FILE.new ]; then
59
+    rm -f $BOOTSTRAP_FILE.new
60
+fi
61
+
52 62
 state=0
53 63
 address=""
54 64
 peer=""
@@ -71,11 +81,95 @@ while IFS='' read -r line || [[ -n "$line" ]]; do
71 81
     fi
72 82
 done < "$TEMPFILE"
73 83
 
84
+# detect blogs in the mesh
85
+if [ -f $BLOGS_FILE.new ]; then
86
+    rm -f $BLOGS_FILE.new
87
+fi
88
+
89
+cat $TEMPFILE_BASE | grep "ZeroNet Blog\|hostname =\|address =\|port =\|txt-record =" > $TEMPFILE
90
+
91
+state=0
92
+address=""
93
+peer=""
94
+while IFS='' read -r line || [[ -n "$line" ]]; do
95
+    if [ ${state} -eq "3" ]; then
96
+        if [[ $line == *"txt-record ="* ]]; then
97
+            blog_url=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
98
+            echo "$peer $blog_url" >> $BLOGS_FILE.new
99
+            state=0
100
+        fi
101
+    fi
102
+    if [ ${state} -eq "2" ]; then
103
+        if [[ $line == *"address ="* ]]; then
104
+            address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
105
+            state=3
106
+        fi
107
+    fi
108
+    if [ ${state} -eq "1" ]; then
109
+        if [[ $line == *"hostname ="* ]]; then
110
+            peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
111
+            state=2
112
+        fi
113
+    fi
114
+    if [[ $line == *"ZeroNet Blog"* && $line == "= "* ]]; then
115
+        state=1
116
+    fi
117
+done < "$TEMPFILE"
118
+
119
+# detect fora in the mesh
120
+if [ -f $FORUM_FILE.new ]; then
121
+    rm -f $FORUM_FILE.new
122
+fi
123
+
124
+cat $TEMPFILE_BASE | grep "ZeroNet Forum\|hostname =\|address =\|port =\|txt-record =" > $TEMPFILE
125
+
126
+state=0
127
+address=""
128
+peer=""
129
+while IFS='' read -r line || [[ -n "$line" ]]; do
130
+    if [ ${state} -eq "3" ]; then
131
+        if [[ $line == *"txt-record ="* ]]; then
132
+            forum_url=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
133
+            echo "$peer $forum_url" >> $FORUM_FILE.new
134
+            state=0
135
+        fi
136
+    fi
137
+    if [ ${state} -eq "2" ]; then
138
+        if [[ $line == *"address ="* ]]; then
139
+            address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
140
+            state=3
141
+        fi
142
+    fi
143
+    if [ ${state} -eq "1" ]; then
144
+        if [[ $line == *"hostname ="* ]]; then
145
+            peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
146
+            state=2
147
+        fi
148
+    fi
149
+    if [[ $line == *"ZeroNet Forum"* && $line == "= "* ]]; then
150
+        state=1
151
+    fi
152
+done < "$TEMPFILE"
153
+
154
+rm -f $TEMPFILE_BASE
74 155
 rm -f $TEMPFILE
156
+
75 157
 cp -f $BOOTSTRAP_FILE.new $BOOTSTRAP_FILE
76 158
 rm -f $BOOTSTRAP_FILE.new
77 159
 if [ -d /home/zeronet ]; then
78 160
     sudo chown zeronet:zeronet $BOOTSTRAP_FILE
79 161
 fi
80 162
 
163
+cp -f $BLOGS_FILE.new $BLOGS_FILE
164
+rm -f $BLOGS_FILE.new
165
+if [ -d /home/zeronet ]; then
166
+    sudo chown zeronet:zeronet $BLOGS_FILE
167
+fi
168
+
169
+cp -f $FORUM_FILE.new $FORUM_FILE
170
+rm -f $FORUM_FILE.new
171
+if [ -d /home/zeronet ]; then
172
+    sudo chown zeronet:zeronet $FORUM_FILE
173
+fi
174
+
81 175
 exit 0