Skip to content
Snippets Groups Projects
Unverified Commit 09ef5205 authored by Bob Mottram's avatar Bob Mottram
Browse files

Desktop icon for blog functions

parent efea22a2
No related branches found
No related tags found
No related merge requests found
img/avatars/blog.jpg

2.18 KiB

......@@ -789,6 +789,16 @@ if [ \$no_of_users -gt 0 ]; then
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
echo '[Desktop Entry]' > /home/$MY_USERNAME/Desktop/blog.desktop
echo 'Type=Application' >> /home/$MY_USERNAME/Desktop/blog.desktop
echo "Name=Blog" >> /home/$MY_USERNAME/Desktop/blog.desktop
echo 'Comment=View or create blog entries' >> /home/$MY_USERNAME/Desktop/blog.desktop
echo 'Exec=mate-terminal -e /usr/local/bin/freedombone-mesh-blog' >> /home/$MY_USERNAME/Desktop/blog.desktop
echo 'Icon=/usr/share/freedombone/avatars/blog.jpg' >> /home/$MY_USERNAME/Desktop/blog.desktop
echo 'StartupNotify=false' >> /home/$MY_USERNAME/Desktop/blog.desktop
chmod +x /home/$MY_USERNAME/Desktop/blog.desktop
chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Desktop/blog.desktop
fi
if [ ! -f /home/$MY_USERNAME/runtox ]; then
......@@ -820,6 +830,9 @@ else
if [ -f /home/$MY_USERNAME/Desktop/sites.desktop ]; then
rm /home/$MY_USERNAME/Desktop/sites.desktop
fi
if [ -f /home/$MY_USERNAME/Desktop/blog.desktop ]; then
rm /home/$MY_USERNAME/Desktop/blog.desktop
fi
if [ -f /home/$MY_USERNAME/Desktop/tox.desktop ]; then
rm /home/$MY_USERNAME/Desktop/tox.desktop
fi
......
......@@ -80,6 +80,8 @@ ENABLE_ZERONET=
IPFS_PORT=4001
CURRENT_BLOG_INDEX=/home/$MY_USERNAME/.blog-index
function create_avahi_mesh_service {
service_name=$1
service_type=$2
......@@ -756,6 +758,10 @@ function setup_ipfs {
su -c "systemctl --user enable ipfs" - $MY_USERNAME
su -c "systemctl --user start ipfs" - $MY_USERNAME
if [ -f $CURRENT_BLOG_INDEX ]; then
shred -zu $CURRENT_BLOG_INDEX
fi
if [ -d /home/$MY_USERNAME/Public ]; then
rm /home/$MY_USERNAME/Desktop/Public
rm -rf /home/$MY_USERNAME/Public
......
#!/bin/bash
#
# .---. . .
# | | |
# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
#
# Freedom in the Cloud
#
# Blogging functions for mesh clients
#
# 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-blog
export TEXTDOMAINDIR="/usr/share/locale"
BLOG_PATH=~/CreateBlog
BLOG_CONTENT_PATH=$BLOG_PATH/content
CURRENT_BLOG_INDEX=/home/$USER/.blog-index
BLOG_EDITOR='pluma'
function regenerate_blog {
OLD_STAT_FILE=/home/$USER/.old_stat.txt
if [ -f $OLD_STAT_FILE ]; then
rm $OLD_STAT_FILE
fi
cd $BLOG_PATH
make html
}
function view_blog {
freedombone-mesh-visit-site '/Blog'
exit 0
}
function new_blog {
echo $'Blog Post Title' > ~/.new-blog-entry
echo $'###############' >> ~/.new-blog-entry
echo '' >> ~/.new-blog-entry
echo $':date: 2020-01-01' >> ~/.new-blog-entry
echo $":author: $(toxid --showuser)" >> ~/.new-blog-entry
echo $':category: default' >> ~/.new-blog-entry
echo $':tags: blog, tag' >> ~/.new-blog-entry
echo '' >> ~/.new-blog-entry
echo $'Add your text here' >> ~/.new-blog-entry
echo '' >> ~/.new-blog-entry
$BLOG_EDITOR ~/.new-blog-entry
if grep -q $"Add your text here" ~/.new-blog-entry; then
return
fi
if grep -q $"Blog Post Title" ~/.new-blog-entry; then
return
fi
if [ ! -f $CURRENT_BLOG_INDEX ]; then
echo '0' > $CURRENT_BLOG_INDEX
fi
# move to the content directory
CURRENT_INDEX=$(cat $CURRENT_BLOG_INDEX)
mv ~/.new-blog-entry $BLOG_CONTENT_PATH/${CURRENT_INDEX}_post.rst
# increment the index
CURRENT_INDEX=$((CURRENT_INDEX + 1))
echo "$CURRENT_INDEX" > $CURRENT_BLOG_INDEX
regenerate_blog
}
function edit_blog {
if [ ! -f $CURRENT_BLOG_INDEX ]; then
return
fi
CURRENT_INDEX=$(cat $CURRENT_BLOG_INDEX)
LAST_BLOG_ENTRY=$BLOG_CONTENT_PATH/${CURRENT_INDEX}_post.rst
if [ ! -f $LAST_BLOG_ENTRY ]; then
return
fi
$BLOG_EDITOR $LAST_BLOG_ENTRY
regenerate_blog
}
function delete_blog {
if [ ! -f $CURRENT_BLOG_INDEX ]; then
return
fi
CURRENT_INDEX=$(cat $CURRENT_BLOG_INDEX)
LAST_BLOG_ENTRY=$BLOG_CONTENT_PATH/${CURRENT_INDEX}_post.rst
if [ ! -f $LAST_BLOG_ENTRY ]; then
return
fi
dialog --title $"Delete the previous blog entry" \
--backtitle $"Freedombone Mesh" \
--defaultno \
--yesno $"\nAre you sure that you wish to delete the previous blog entry?" 8 60
sel=$?
case $sel in
0) rm $LAST_BLOG_ENTRY
if [ $CURRENT_INDEX -gt 0 ]; then
CURRENT_INDEX=$((CURRENT_INDEX - 1))
echo "$CURRENT_INDEX" > $CURRENT_BLOG_INDEX
fi
regenerate_blog
;;
esac
}
function change_theme {
THEMES=()
for d in $BLOG_PATH/themes/*/ ; do
THEME_NAME=$(echo "$d" | awk -F '/' '{print $5}')
THEMES+=("$THEME_NAME")
done
themelist=""
n=1
theme_index=0
for a in "${THEMES[@]}"
do
if [[ $a == "basic" ]]; then
themelist="$applist $n $a on"
else
themelist="$applist $n $a off"
fi
n=$[n+1]
theme_index=$[theme_index+1]
done
data=$(tempfile 2>/dev/null)
trap "rm -f $data" 0 1 2 5 15
dialog --stdout --backtitle $"Freedombone Mesh" \
--title $"Select Blog Theme" \
--radiolist $'Choose:' \
80 40 20 $themelist 2> $data
sel=$?
case $sel in
1) exit 1;;
255) exit 1;;
esac
CHOSEN_THEME_INDEX=$(cat $data)
CHOSEN_THEME_INDEX=$((CHOSEN_THEME_INDEX - 1))
CHOSEN_THEME=${THEMES[$CHOSEN_THEME_INDEX]}
if grep -q "THEME=" $BLOG_PATH/pelicanconf.py; then
sed -i "s|THEME=.*|THEME='themes/${CHOSEN_THEME}'|g"
else
echo "THEME='themes/${CHOSEN_THEME}'" >> $BLOG_PATH/pelicanconf.py
fi
regenerate_blog
}
function menu_blog {
data=$(tempfile 2>/dev/null)
trap "rm -f $data" 0 1 2 5 15
dialog --backtitle $"Freedombone Mesh" \
--title $"Blogging" \
--radiolist $"Choose an operation:" 19 50 12 \
1 $"View a blog" on \
2 $"New blog entry" off \
3 $"Edit the previous blog entry" off \
4 $"Delete the previous blog entry" off \
5 $"Change theme" off \
6 $"Exit" off 2> $data
sel=$?
case $sel in
1) exit 1;;
255) exit 1;;
esac
case $(cat $data) in
1) view_blog;;
2) new_blog;;
3) edit_blog;;
4) delete_blog;;
6) change_theme;;
7) break;;
esac
}
menu_blog
exit 0
......@@ -36,6 +36,9 @@ IPFS_URL='http://127.0.0.1:8080/ipns'
# The browser application to use
BROWSER=midori
# An optional suffix to be appended to the URL
SUFFIX=$1
IPFS_USERS_FILE=/home/$USER/.ipfs-users
if [ ! -f $IPFS_USERS_FILE ]; then
exit 0
......@@ -71,7 +74,7 @@ case $sel in
IPFS_FULL_URL=${IPFS_URL}/$(cat "$IPFS_USERS_FILE" | grep $TOX_ID | head -n 1 | awk -F ':' '{print $2}')
clear
echo $'Opening browser. Please wait...'
$BROWSER $IPFS_FULL_URL &
$BROWSER $IPFS_FULL_URL$SUFFIX &
fi
else
exit 1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment