An easy way to visit ipfs mesh sites

This commit is contained in:
Bob Mottram 2016-09-04 18:50:13 +01:00
parent 045453e9ec
commit c1debe2a20
4 changed files with 93 additions and 5 deletions

BIN
img/avatars/ipfs.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -775,6 +775,16 @@ if [ \$no_of_users -gt 0 ]; then
chmod +x /home/$MY_USERNAME/Desktop/Users.desktop
chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Desktop/Users.desktop
if [ -f /home/$MY_USERNAME/.ipfs-users ]; then
echo 'Type=Application' >> /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

79
src/freedombone-mesh-visit-site Executable file
View File

@ -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 <http://www.gnu.org/licenses/>.
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

View File

@ -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