From c1debe2a205e9d760ece4aaa8c7833945b267e58 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sun, 4 Sep 2016 18:50:13 +0100 Subject: [PATCH] An easy way to visit ipfs mesh sites --- img/avatars/ipfs.jpg | Bin 0 -> 1164 bytes src/freedombone-image-customise | 13 ++++++ src/freedombone-mesh-visit-site | 79 ++++++++++++++++++++++++++++++++ src/zeronetavahi | 6 +-- 4 files changed, 93 insertions(+), 5 deletions(-) create mode 100644 img/avatars/ipfs.jpg create mode 100755 src/freedombone-mesh-visit-site diff --git a/img/avatars/ipfs.jpg b/img/avatars/ipfs.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cfd19a8e56115ac5304064d383419d11a56569b3 GIT binary patch literal 1164 zcmex=WD3_L&$OajaT3=E8p_Zh@3yRI!@R7o$&EbdsAwJ-aCOpHXF4%5Pv%ktLg%forg zXUx@go$OQdcG}z+v$%w)Nup;BKW~e=Tby0=GAm@|&RgxJjmgu>?YPx81c2-U+N>#LiFbp&R+YFSlXS|tUAi1&L)I$E2 zdDiT@t7dmsln)c<>#Of6hsd}Mh69m2}~dpmYhDg8mLSO7?P|kj0oQX z16Dv#k%?Ksph!r`FfbA7TQ+;92;m;~mDMgQ%>?YaQ|hd?L_J+}T_yQwM{xM!(uQMF zGlkcK%>%{{FaTMYVd2NfAShs{=$NQb*tpOja3U=9>=n;Vbbs3!`18v(-p!|eypnd* z>=d5k9ldwk)0qhsu1<;#b1#S2USGf2#BoM^aK!>=rL_UtV$dk*D2{nGS{(eo0^ zqJ>FuCLf=<+j_kJE@RjxIP009)AEk_=GXn@o$_Y)U05la`tou5*{_%O_ck1V#x7j3 z+*sw~> /home/$MY_USERNAME/Desktop/sites.desktop + echo 'Comment=Visit a site' >> /home/$MY_USERNAME/Desktop/sites.desktop + echo 'Exec=bash /usr/local/bin/freedombone-mesh-visit-site' >> /home/$MY_USERNAME/Desktop/sites.desktop + echo 'Icon=/usr/share/freedombone/avatars/ipfs.jpg' >> /home/$MY_USERNAME/Desktop/sites.desktop + echo 'StartupNotify=false' >> /home/$MY_USERNAME/Desktop/sites.desktop + chmod +x /home/$MY_USERNAME/Desktop/sites.desktop + chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Desktop/sites.desktop + fi + if [ ! -f /home/$MY_USERNAME/runtox ]; then echo 'qtox_running=\$(ps aux | grep qtox | grep data)' > /home/$MY_USERNAME/runtox echo 'if [ \${#qtox_running} -eq 0 ]; then' >> /home/$MY_USERNAME/runtox @@ -801,6 +811,9 @@ else if [ -f /home/$MY_USERNAME/Desktop/Users.desktop ]; then rm /home/$MY_USERNAME/Desktop/Users.desktop fi + if [ -f /home/$MY_USERNAME/Desktop/sites.desktop ]; then + rm /home/$MY_USERNAME/Desktop/sites.desktop + fi if [ -f /home/$MY_USERNAME/Desktop/tox.desktop ]; then rm /home/$MY_USERNAME/Desktop/tox.desktop fi diff --git a/src/freedombone-mesh-visit-site b/src/freedombone-mesh-visit-site new file mode 100755 index 00000000..a23bb645 --- /dev/null +++ b/src/freedombone-mesh-visit-site @@ -0,0 +1,79 @@ +#!/bin/bash +# +# .---. . . +# | | | +# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-. +# | | (.-' (.-' ( | ( )| | | | )( )| | (.-' +# ' ' --' --' -' - -' ' ' -' -' -' ' - --' +# +# Freedom in the Cloud +# +# Visit ipfs sites by entering a username +# +# License +# ======= +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +PROJECT_NAME='freedombone' + +export TEXTDOMAIN=${PROJECT_NAME}-mesh-visit-site +export TEXTDOMAINDIR="/usr/share/locale" + +IPFS_URL='http://127.0.0.1:8080/ipns' + +# The browser application to use +BROWSER=iceweasel + +IPFS_USERS_FILE=/home/$USER/.ipfs-users +if [ ! -f $IPFS_USERS_FILE ]; then + exit 0 +fi +USERS_FILE=/home/$USER/Users.txt +if [ ! -f $USERS_FILE ]; then + exit 0 +fi + +data=$(tempfile 2>/dev/null) +trap "rm -f $data" 0 1 2 5 15 +dialog --title $"Visit IPFS site" \ + --backtitle $"Freedombone mesh" \ + --inputbox $"Enter the username for the site you wish to visit" 8 60 2>$data +sel=$? +case $sel in + 0) + TOX_USERNAME=$(<$data) + if [ ${#TOX_USERNAME} -gt 0 ]; then + if ! grep -q "$TOX_USERNAME" $USERS_FILE; then + dialog --title $"Visit IPFS site" \ + --backtitle $"Freedombone mesh" \ + --msgbox $"The user '$TOX_USERNAME' was not found on the mesh" 8 60 + exit 2 + fi + TOX_ID=$(cat "$USERS_FILE" | grep "$TOX_USERNAME" | head -n 1 | awk -F ' ' '{print $2}') + if ! grep -q "$TOX_ID" $IPFS_USERS_FILE; then + dialog --title $"Visit IPFS site" \ + --backtitle $"Freedombone mesh" \ + --msgbox $"An IPFS site was not found for the user '$TOX_USERNAME'" 8 60 + exit 3 + fi + IPFS_FULL_URL=${IPFS_URL}/$(cat "$IPFS_USERS_FILE" | grep $TOX_ID | head -n 1 | awk -F ':' '{print $2}') + $BROWSER $IPFS_FULL_URL + else + exit 1 + fi + ;; +esac + +exit 0 diff --git a/src/zeronetavahi b/src/zeronetavahi index 94f18641..e4345aea 100755 --- a/src/zeronetavahi +++ b/src/zeronetavahi @@ -56,7 +56,6 @@ IPFS_PATH=/usr/bin IPFS_COMMAND=$IPFS_PATH/ipfs IPFS_USERS_FILE=/home/$MY_USERNAME/.ipfs-users IPFS_PUBLIC=/home/$MY_USERNAME/.ipfs-public -IPFS_URL='http://127.0.0.1:8080/ipns' MY_BLOG_STR=$"My Blog" MY_MAIL_STR=$"My Mail" @@ -133,10 +132,7 @@ function ipfs_bootstrap { ipfs_tox_id=$(echo "$ipfs_txt" | awk -F ':' '{print $2}') $IPFS_COMMAND bootstrap add /ip4/${address}/tcp/${IPFS_PORT}/ipfs/${ipfs_peer_id} if [ -d /home/$MY_USERNAME/Desktop ]; then - if grep -q "$ipfs_tox_id" $TOX_USERS_FILE; then - ipfs_tox_nick=$(cat $TOX_USERS_FILE | grep $ipfs_tox_id | awk -F ' ' '{print $1}') - echo "$ipfs_tox_nick:${IPFS_URL}/$ipfs_peer_id" >> ${IPFS_USERS_FILE}.new - fi + echo "$ipfs_tox_id:$ipfs_peer_id" >> ${IPFS_USERS_FILE}.new fi state=0 fi