Merge pull request #27 from aceisace/Stable

syncing changes
This commit is contained in:
Ace 2019-04-20 23:22:33 +02:00 committed by GitHub
commit cd8827f083
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 650 additions and 451 deletions

View File

@ -19,7 +19,10 @@ body{
<div class="ts segment"> <div class="ts segment">
<div class="ts header"> <div class="ts header">
Setting Generator Setting Generator
<div class="sub header"><a href="https://github.com/aceisace/Inky-Calendar">For Inky-Calendar Project of Ace-Innovation Laboratory (by aceisace)</a> Project<br> <div class="sub header"><a href="https://github.com/aceisace/Inky-Calendar">For Inky-Calendar Project of Ace-Innovation Laboratory (by aceisace)</a><br>
<img src="https://github.com/aceisace/Inky-Calendar/blob/Stable/Gallery/Inky-Calendar-logo.png?raw=true" width="800">
<div>
</div>
<ins>If no value is filled in for any of the row, the default value will be used.</ins> <ins>If no value is filled in for any of the row, the default value will be used.</ins>
</div> </div>
@ -27,12 +30,12 @@ body{
</div> </div>
<form class="ts form"> <form class="ts form">
<div class="field"> <div class="field">
<label>iCalendar URL/s</label> <label>iCalendar URL. If you want to add multiple URLs, seperate each one with a comma.</label>
<input id="ical_urls" type="text" placeholder="https://calendar.google.com/calendar/ical/en.usa%23holiday%40group.v.calendar.google.com/public/basic.ics"> <input id="ical_urls" type="text" placeholder="https://calendar.google.com/calendar/ical/en.usa%23holiday%40group.v.calendar.google.com/public/basic.ics">
</div> </div>
<div class="field"> <div class="field">
<label>RSS-Feed URLs</label> <label>RSS-Feed URL. To add more than one feed, seperate each URL with a comma.</label>
<input id="rss_urls" type="text" placeholder="http://feeds.bbci.co.uk/news/world/rss.xml#"> <input id="rss_urls" type="text" placeholder="http://feeds.bbci.co.uk/news/world/rss.xml#">
</div> </div>
@ -52,7 +55,7 @@ body{
<label for="update_30_mins">every 30 minutes</label> <label for="update_30_mins">every 30 minutes</label>
</div> </div>
<div class="ts radio checkbox"> <div class="ts radio checkbox">
<input id="update_60_mins" type="radio" name="aa"> <input id="update_60_mins" type="radio" name="aa" checked>
<label for="update_60_mins">every 60 minutes</label> <label for="update_60_mins">every 60 minutes</label>
</div> </div>
</div> </div>
@ -66,7 +69,7 @@ body{
<label for="event_feature">Events from my iCalendar</label> <label for="event_feature">Events from my iCalendar</label>
</div> </div>
<div class="ts radio checkbox"> <div class="ts radio checkbox">
<input id="rss_feature" type="radio" name="af"> <input id="rss_feature" type="radio" name="af" checked>
<label for="rss_feature">RSS-Feeds</label> <label for="rss_feature">RSS-Feeds</label>
</div> </div>
</div> </div>
@ -85,7 +88,7 @@ body{
<label>Week starts on</label> <label>Week starts on</label>
<div class="ts checkboxes"> <div class="ts checkboxes">
<div class="ts radio checkbox"> <div class="ts radio checkbox">
<input id="week_monday" type="radio" name="hr"> <input id="week_monday" type="radio" name="hr" checked>
<label for="week_monday">Monday</label> <label for="week_monday">Monday</label>
</div> </div>
<div class="ts radio checkbox"> <div class="ts radio checkbox">
@ -109,7 +112,7 @@ body{
<label>Which Colours does your E-Paper Display support?</label> <label>Which Colours does your E-Paper Display support?</label>
<div class="ts checkboxes"> <div class="ts checkboxes">
<div class="ts radio checkbox"> <div class="ts radio checkbox">
<input id="b_w_r" type="radio" name="dp"> <input id="b_w_r" type="radio" name="dp" checked>
<label for="b_w_r">Black-White-Red</label> <label for="b_w_r">Black-White-Red</label>
</div> </div>
<div class="ts radio checkbox"> <div class="ts radio checkbox">
@ -123,7 +126,7 @@ body{
<label>Which language do you prefer for the Calendar?</label> <label>Which language do you prefer for the Calendar?</label>
<div class="ts checkboxes"> <div class="ts checkboxes">
<div class="ts radio checkbox"> <div class="ts radio checkbox">
<input id="language_en" type="radio" name="la"> <input id="language_en" type="radio" name="la" checked>
<label for="language_en">English</label> <label for="language_en">English</label>
</div> </div>
<div class="ts radio checkbox"> <div class="ts radio checkbox">
@ -141,7 +144,7 @@ body{
<label>Which units are used in your country?</label> <label>Which units are used in your country?</label>
<div class="ts checkboxes"> <div class="ts checkboxes">
<div class="ts radio checkbox"> <div class="ts radio checkbox">
<input id="metric" type="radio" name="un"> <input id="metric" type="radio" name="un" checked>
<label for="metric">Metric</label> <label for="metric">Metric</label>
</div> </div>
<div class="ts radio checkbox"> <div class="ts radio checkbox">
@ -159,7 +162,7 @@ body{
<label for="12_hours">12-hour format</label> <label for="12_hours">12-hour format</label>
</div> </div>
<div class="ts radio checkbox"> <div class="ts radio checkbox">
<input id="24_hours" type="radio" name="tf"> <input id="24_hours" type="radio" name="tf" checked>
<label for="24_hours">24-hour format</label> <label for="24_hours">24-hour format</label>
</div> </div>
</div> </div>
@ -189,7 +192,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
<br> <br>
<script> <script>
var template = 'ical_urls = [\n"{ical_urls}"\n]\nrss_feeds = [\n"{rss_urls}"\n]\nupdate_interval = "{update_interval}"\nadditional_feature = "{additional_feature}"\napi_key = "{api_key}"\nlocation = "{location}"\nweek_starts_on = "{week_starts_on}"\nevents_max_range = "{events_max_range}"\ndisplay_colours = "{display_colours}"\nlanguage = "{language}"\nunits = "{units}"\nhours = "{hours}"'; var template = 'ical_urls = [\n"{ical_urls}"\n]\nrss_feeds = [\n"{rss_urls}"\n]\nupdate_interval = "{update_interval}"\nadditional_feature = "{additional_feature}"\napi_key = "{api_key}"\nlocation = "{location}"\nweek_starts_on = "{week_starts_on}"\nevents_max_range = "{events_max_range}"\ncalibration_hours = [{calibration_hours}]\ndisplay_colours = "{display_colours}"\nlanguage = "{language}"\nunits = "{units}"\nhours = "{hours}"';
function generate(){ function generate(){
var ical_urls = $("#ical_urls").val().trim(); var ical_urls = $("#ical_urls").val().trim();
@ -216,7 +219,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
var additional_feature = "events"; var additional_feature = "events";
if ($('#rss').is(':checked')){ if ($('#rss').is(':checked')){
hours = "rss"; additional_feature = "rss";
} }
var api_key = $("#api_key").val().trim(); var api_key = $("#api_key").val().trim();
@ -231,7 +234,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
var week_starts_on = "Monday"; var week_starts_on = "Monday";
if ($('#week_sunday').is(':checked')){ if ($('#week_sunday').is(':checked')){
hours = "Sunday"; week_starts_on = "Sunday";
} }
var events_max_range = $("#events_max_range").val().trim(); var events_max_range = $("#events_max_range").val().trim();
@ -239,6 +242,11 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
events_max_range = $("#events_max_range").attr("placeholder"); events_max_range = $("#events_max_range").attr("placeholder");
} }
var calibration_hours = $("#calibration_hours").val().trim();
if (calibration_hours == ""){
calibration_hours = $("#calibration_hours").attr("placeholder");
}
var display_colours = "bw"; var display_colours = "bw";
if ($('#b_w_r').is(':checked')){ if ($('#b_w_r').is(':checked')){
display_colours = "bwr"; display_colours = "bwr";
@ -292,7 +300,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
a.href = link.href; a.href = link.href;
a.download = link.href.substr(link.href.lastIndexOf('/') + 1); a.download = link.href.substr(link.href.lastIndexOf('/') + 1);
document.body.appendChild(a); document.body.appendChild(a);
$(a).attr('download','setting.py'); $(a).attr('download','settings.py');
a.click(); a.click();
document.body.removeChild(a); document.body.removeChild(a);
} }

View File

@ -9,7 +9,7 @@ from PIL import Image
from settings import language from settings import language
im_open = Image.open im_open = Image.open
path = '/home/pi/Calendar/Calendar/' path = '/home/pi/Inky-Calendar/Calendar/'
wpath = path+'weather-icons/' wpath = path+'weather-icons/'
mpath = path+'translations/'+language+'/months/' mpath = path+'translations/'+language+'/months/'
weekpath = path+'translations/'+language+'/week/' weekpath = path+'translations/'+language+'/week/'

View File

@ -1,20 +1,16 @@
""" To quickly get started, fill in the following details:"""
ical_urls = [ ical_urls = [
"https://calendar.google.com/calendar/ical/en.usa%23holiday%40group.v.calendar.google.com/public/basic.ics" "https://calendar.google.com/calendar/ical/en.usa%23holiday%40group.v.calendar.google.com/public/basic.ics"
] ]
rss_feeds = [ rss_feeds = [
"http://feeds.bbci.co.uk/news/world/rss.xml#" "http://feeds.bbci.co.uk/news/world/rss.xml#"
] ]
update_interval = "60" update_interval = "60"
additional_feature = "rss" additional_feature = "events"
api_key = "" api_key = ""
location = "Julich, DE" location = "Stuttgart, DE"
week_starts_on = "Monday" week_starts_on = "Monday"
events_max_range = "60" events_max_range = "60"
calibration_hours = [1,12,18] calibration_hours = [0,12,18]
display_colours = "bwr" display_colours = "bwr"
language = "en" language = "en"
units = "metric" units = "metric"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 870 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 KiB

View File

@ -1,8 +1,7 @@
#!/bin/bash #!/bin/bash
# E-Paper-Calendar software installer for the raspberry pi # E-Paper-Calendar software installer for Raspberry pi
# Version: 1.5 (Early Februrary 2019) # Version: 1.6 (Mid April 2019)
# Stability status of this installer: Confirmed with Raspbain Stretch Lite on 12th March 2019 # Stability status of this installer: Stable
# Copyright by aceisace
echo -e "\e[1mPlease select an option from below:" echo -e "\e[1mPlease select an option from below:"
echo -e "\e[97mEnter \e[91m1 \e[97m to update the E-Paper software" echo -e "\e[97mEnter \e[91m1 \e[97m to update the E-Paper software"
@ -20,49 +19,63 @@ if [ -z "$option" ]; then
exit exit
fi fi
if [ "$option" = 3 ]; then if [ "$option" = 3 ]; then
echo -e "Removing the E-Paper software now..." echo -e "\e[1;36m"Removing the E-Paper software now..."\e[0m"
pip3 uninstall Pillow -y && sudo pip3 uninstall Pillow -y && sudo pip3 uninstall pyowm -y&& sudo pip3 uninstall ics -y && pip3 uninstall pyowm -y && pip3 uninstall ics -y && sudo apt-get remove supervisor -y && sudo apt-get clean && sudo apt-get autoremove -y pip3 uninstall Pillow -y && sudo pip3 uninstall Pillow -y && sudo pip3 uninstall pyowm -y&& sudo pip3 uninstall ics -y && pip3 uninstall pyowm -y && pip3 uninstall ics -y && sudo apt-get remove supervisor -y && pip3 uninstall feedparser -y && sudo pip3 uninstall feedparser -y && sudo apt-get clean && sudo apt-get autoremove -y
if [ -e /etc/supervisor/conf.d/E-Paper.conf ]; then if [ -e /etc/supervisor/conf.d/E-Paper.conf ]; then
sudo rm /etc/supervisor/conf.d/E-Paper.conf sudo rm /etc/supervisor/conf.d/E-Paper.conf
fi fi
echo -e "The libraries have been removed successfully" echo -e "\e[1;36m"The libraries have been removed successfully"\e[0m"
echo -e "Removing the E-Paper-Calendar folder if it exists" sleep 1
if [ -d "/home/pi/E-Paper-Calendar" ]; then echo -e "Removing the Inky-Calendar folder if it exists"
sudo rm -r /home/pi/E-Paper-Calendar/ if [ -d "/home/pi/Inky-Calendar" ]; then
sudo rm -r /home/pi/Inky-Calendar/
echo -e "\e[1;36m"Found the E-Paper-software folder and deleted it"\e[0m"
fi fi
echo -e "\e[1;36m"All done!"\e[0m"
fi fi
if [ "$option" = 1 ]; then if [ "$option" = 1 ]; then
echo "Checking if the settings.py exists..." echo -e "\e[1;36m"Checking if the settings.py exists..."\e[0m"
if [ -e /home/pi/E-Paper-Calendar/Calendar/settings.py ]; then if [ -e /home/pi/Inky-Calendar/Calendar/settings.py ]; then
echo -e "Found an E-Paper settings file." echo -e "Found an E-Paper settings file."
sleep 2 sleep 2
echo "Backing up the current settings file in the home directory." echo "Backing up the current settings file in the home directory."
sleep 2 sleep 2
cp /home/pi/E-Paper-Calendar/Calendar/settings.py /home/pi/settings-old.py cp /home/pi/Inky-Calendar/Calendar/settings.py /home/pi/settings-old.py
echo -e "renaming the old E-Paper software folder" echo -e "renaming the old E-Paper software folder"
sleep 2 sleep 2
cp -r /home/pi/E-Paper-Calendar /home/pi/E-Paper-Calendar-old cp -r /home/pi/Inky-Calendar /home/pi/Inky-Calendar-old
sudo rm -r /home/pi/E-Paper-Calendar sudo rm -r /home/pi/Inky-Calendar
echo "Updating now..." echo "Updating now..."
cd cd
else else
echo -e "Could not find any settings.py file in /home/pi/E-Paper-Calendar/Calendar" # Ask to update anyway. May not work always, but can help with new versions.
echo -e "Please uninstall the software first and then use the install option" echo -e "\e[1;36m"Could not find the configuration file -settings.py- in /home/pi/Inky-Calendar/Calendar"\e[0m"
echo -e "Exiting now" sleep 2
echo -e "\e[1;36m"Would you like to update the Inky-Calendar software anyway?"\e[0m"
echo -e "\e[97mPlease type [y] for yes or [n] for no and confirm your selection with [ENTER]"
read -r -p 'Waiting for input... ' update_anyway
if [ "$update_anyway" != Y ] && [ "$update_anyway" != y ] && [ "$update_anyway" != N ] && [ "$update_anyway" != n ]; then
echo -e "invalid input, aborting now"
exit exit
fi fi
if [ -z "$update_anyway" ]; then
echo -e "You didn't enter anything, aborting now."
exit
fi
if [ "$update_anyway" = Y ] || [ "$update_anyway" = y ]; then
echo "Updating now..."
else
echo -e "Not attempting to update, exiting now."
exit
fi
fi
fi fi
if [ "$option" = 2 ]; then if [ "$option" = 2 ]; then
echo -e "\e[1;36m"The installer will finish the rest now. You can enjoy a break in the meanwhile."\e[0m" echo -e "\e[1;36m"Setting up the system by installing some required libraries for python3"\e[0m"
# Updating and upgrading the system, without taking too much space
echo -e "\e[1;36m"Running apt-get update and apt-get dist-upgrade for you..."\e[0m"
echo -e "\e[1;36m"This will take a while, sometimes up to 30 mins"\e[0m"
sudo apt-get update && sudo apt-get dist-upgrade -y
echo -e "\e[1;36m"System successfully updated and upgraded!"\e[0m"
echo ""
# Installing a few packages which are missing on Raspbian Stretch Lite # Installing a few packages which are missing on Raspbian Stretch Lite
echo -e "\e[1;36m"Installing a few packages that are missing on Raspbian Stretch Lite..."\e[0m" echo -e "\e[1;36m"Installing a few packages that are missing on Raspbian Stretch Lite..."\e[0m"
@ -73,49 +86,145 @@ if [ "$option" = 2 ]; then
echo -e "\e[1;36m"Cleaning a bit of mess to free up some space..."\e[0m" echo -e "\e[1;36m"Cleaning a bit of mess to free up some space..."\e[0m"
sudo apt-get clean && sudo apt-get autoremove -y sudo apt-get clean && sudo apt-get autoremove -y
echo "" echo ""
# Installing packages required by the main script
echo -e "\e[1;36m"Installing a few required packages for the E-Paper Software"\e[0m"
sudo pip3 install pyowm
sudo pip3 install Pillow==5.3.0
sudo pip3 install ics
sudo pip3 install feedparser
pip3 install pyowm
pip3 install ics
pip3 install feedparser
pip3 install Pillow==5.3.0
echo -e "\e[1;36m"Finished installing libraries"\e[0m"
fi fi
if [ "$option" = 1 ] || [ "$option" = 2 ]; then if [ "$option" = 1 ] || [ "$option" = 2 ]; then
echo -e "\e[1;36m"Installing the E-Paper-Calendar Software for your display"\e[0m" # Ask to update system
echo -e "\e[1;36m"Would you like to update and upgrade the operating system first?"\e[0m"
sleep 1
echo -e "\e[97mIt is not scrictly required, but highly recommended."
sleep 1
echo -e "\e[97mPlease note that updating may take quite some time, in rare cases up to 1 hour."
sleep 1
echo -e "\e[97mPlease type [y] for yes or [n] for no and confirm your selection with [ENTER]"
read -r -p 'Waiting for input... ' update
if [ "$update" != Y ] && [ "$update" != y ] && [ "$update" != N ] && [ "$update" != n ]; then
echo -e "invalid input, aborting now"
exit
fi
if [ -z "$update" ]; then
echo -e "You didn't enter anything, aborting now."
exit
fi
if [ "$update" = Y ] || [ "$update" = y ]; then
# Updating and upgrading the system, without taking too much space
echo -e "\e[1;36m"Running apt-get update and apt-get dist-upgrade for you..."\e[0m"
sleep 1
echo -e "\e[1;36m"This will take a while, sometimes up to 1 hour"\e[0m"
sudo apt-get update && sudo apt-get dist-upgrade -y
echo -e "\e[1;36m"System successfully updated and upgraded!"\e[0m"
echo ""
fi
# Installing dependencies
#PYOWM for user pi
echo -e "\e[1;36m"Installing dependencies for the Inky-Calendar software"\e[0m"
echo -e "\e[1;36m"Checking if pyowm is installed for user pi"\e[0m"
if python3.5 -c "import pyowm" &> /dev/null; then
echo 'pyowm is installed, skipping installation of this package.'
else
echo 'pywom is not installed, attempting to install now'
pip3 install pyowm
fi
#PYOWM for user sudo
echo -e "\e[1;36m"Checking if pyowm is installed for user sudo"\e[0m"
if sudo python3.5 -c "import pyowm" &> /dev/null; then
echo 'pyowm is installed, skipping installation of this package.'
else
echo 'pywom is not installed, attempting to install now'
sudo pip3 install pyowm
fi
#Pillow for user pi
echo -e "\e[1;36m"Checking if Pillow is installed for user pi"\e[0m"
if python3.5 -c "import PIL" &> /dev/null; then
echo 'Pillow is installed, skipping installation of this package.'
else
echo 'Pillow is not installed, attempting to install now'
pip3 install Pillow==5.3.0
fi
#Pillow for user sudo
echo -e "\e[1;36m"Checking if Pillow is installed for user sudo"\e[0m"
if sudo python3.5 -c "import PIL" &> /dev/null; then
echo 'Pillow is installed, skipping installation of this package.'
else
echo 'Pillow is not installed, attempting to install now'
sudo pip3 install Pillow==5.3.0
fi
#Ics.py for user pi
echo -e "\e[1;36m"Checking if ics is installed for user pi"\e[0m"
if python3.5 -c "import ics" &> /dev/null; then
echo 'ics is installed, skipping installation of this package.'
else
echo 'ics is not installed, attempting to install now'
pip3 install ics
fi
#Ics.py for user sudo
echo -e "\e[1;36m"Checking if ics is installed for user sudo"\e[0m"
if sudo python3.5 -c "import ics" &> /dev/null; then
echo 'ics is installed, skipping installation of this package.'
else
echo 'ics is not installed, attempting to install now'
sudo pip3 install ics
fi
#feedparser for user pi
echo -e "\e[1;36m"Checking if feedparser is installed for user pi"\e[0m"
if python3.5 -c "import feedparser" &> /dev/null; then
echo 'feedparser is installed, skipping installation of this package.'
else
echo 'feedparser is not installed, attempting to install now'
pip3 install feedparser
fi
#feedparser for user sudo
echo -e "\e[1;36m"Checking if feedparser is installed for user sudo"\e[0m"
if sudo python3.5 -c "import feedparser" &> /dev/null; then
echo 'feedparser is installed, skipping installation of this package.'
else
echo 'feedparser is not installed, attempting to install now'
sudo pip3 install feedparser
fi
echo -e "\e[1;36m"Finished installing all dependencies"\e[0m"
# Clone the repository, then delete some non-required files
echo -e "\e[1;36m"Installing the Inky-Calendar Software for your display"\e[0m"
cd cd
git clone https://github.com/aceisace/Inky-Calendar git clone https://github.com/aceisace/Inky-Calendar Inky-Calendar-temp
mkdir E-Paper-Calendar mkdir Inky-Calendar
cd Inky-Calendar cd Inky-Calendar-temp
cp -r Calendar /home/pi/E-Paper-Calendar/ cp -r Calendar /home/pi/Inky-Calendar/
cp README.md /home/pi/E-Paper-Calendar/ cp README.md /home/pi/Inky-Calendar/
cp LICENSE /home/pi/E-Paper-Calendar/ cp LICENSE /home/pi/Inky-Calendar/
cp -r .git /home/pi/E-Paper-Calendar/ cp -r .git /home/pi/Inky-Calendar/
# Make a copy of the sample settings.py file # Make a copy of the sample settings.py file
cd /home/pi/E-Paper-Calendar/Calendar cd /home/pi/Inky-Calendar/Calendar
cp settings.py.sample settings.py cp settings.py.sample settings.py
cd
# Remove the downloaded (temporary) directory # Remove the downloaded (temporary) directory
sudo rm -r Inky-Calendar cd
sudo rm -r Inky-Calendar-temp
# add a short info # add a short info
cat > /home/pi/E-Paper-Calendar/Info.txt << EOF cat > /home/pi/Inky-Calendar/Info.txt << EOF
This document contains a short info of the E-Paper-Calendar software version This document contains a short info of the Inky-Calendar software version
Version: 1.5 Version: 1.6
Installer version: 1.5 (Early February 2019) Installer version: 1.6 (Mid April 2019)
configuration file: /home/pi/E-Paper-Calendar/Calendar/settings.py configuration file: /home/pi/Inky-Calendar/Calendar/settings.py
If the time was set correctly, you installed this software on: If the time was set correctly, you installed this software on:
EOF EOF
echo "$(date)" >> /home/pi/E-Paper-Calendar/Info.txt echo "$(date)" >> /home/pi/Inky-Calendar/Info.txt
echo "" echo ""
# Setting up supervisor # Setting up supervisor
@ -124,20 +233,15 @@ EOF
sudo bash -c 'cat > /etc/supervisor/conf.d/E-Paper.conf' << EOF sudo bash -c 'cat > /etc/supervisor/conf.d/E-Paper.conf' << EOF
[program:E-Paper] [program:E-Paper]
command = sudo /usr/bin/python3.5 /home/pi/E-Paper-Calendar/Calendar/E-Paper.py command = sudo /usr/bin/python3.5 /home/pi/Inky-Calendar/Calendar/E-Paper.py
stdout_logfile = /home/pi/E-Paper-Calendar/E-Paper.log stdout_logfile = /home/pi/Inky-Calendar/E-Paper.log
stdout_logfile_maxbytes = 1MB stdout_logfile_maxbytes = 1MB
stderr_logfile = /home/pi/E-Paper-Calendar/E-Paper-err.log stderr_logfile = /home/pi/Inky-Calendar/E-Paper-err.log
stderr_logfile_maxbytes = 1MB stderr_logfile_maxbytes = 1MB
EOF EOF
sudo service supervisor start E-Paper sudo service supervisor start E-Paper
# Installing some new dependencies
echo "Installing some new dependencies"
sudo apt-get install python-numpy -y
sudo pip3 install feedparser
pip3 install feedparser
echo "" echo ""
# Final words # Final words
@ -147,7 +251,7 @@ EOF
echo -e "\e[1;31m"If this file is not modified, the programm will not start"\e[0m" echo -e "\e[1;31m"If this file is not modified, the programm will not start"\e[0m"
echo -e "\e[1;36m"To modify the settings file, enter:"\e[0m" echo -e "\e[1;36m"To modify the settings file, enter:"\e[0m"
echo -e "\e[1;36m"nano /home/pi/E-Paper-Calendar/Calendar/settings.py"\e[0m" echo -e "\e[1;36m"nano /home/pi/Inky-Calendar/Calendar/settings.py"\e[0m"
echo -e "\e[1;36m"You can test if the programm works by typing:"\e[0m" echo -e "\e[1;36m"You can test if the programm works by typing:"\e[0m"
echo -e "\e[1;36m"python3.5 /home/pi/E-Paper-Calendar/Calendar/E-Paper.py"\e[0m" echo -e "\e[1;36m"python3.5 /home/pi/Inky-Calendar/Calendar/E-Paper.py"\e[0m"
fi fi

View File

@ -1,24 +1,29 @@
## This file will be deleted soon as the progress of the next release has been shifted to 'Projects'
### This file contains features in planning for the next release ### This file contains features in planning for the next release
# For version 1.6 # For version 1.6
## Installer ## Installer
* Optimise the installer by adding a few more options when updating * Optimise the installer by adding a few more options when updating
* Add version number on both, the installer and the software version to allow automatic updates
## Main script ## Main script
| Feature | Status | | Feature | Status |
| -- | -- | | -- | -- |
|Implement daily view (will take some more time)| Not yet started | |Use relative path instead of explicit path| work in progress |
|Implement Agenda view (will take some more time)| Work in progress |
|Display more events when free space is available (below monthly calendar)| finished -> implemented in master branch| |Display more events when free space is available (below monthly calendar)| finished -> implemented in master branch|
|Implement feature to fetch tasks| work in progress. Problem encountered: Google Calendar does not support vtodo (tasks)| |Implement feature to fetch tasks| canceled as Google Calendar does not support VTODO (Tasks)|
|Add code in E-Paper.py for fixing errors related to the iCalendar (ics.py is pretty picky)| finished -> implemented in master branch | |Add code in E-Paper.py for fixing errors related to the iCalendar (ics.py is pretty picky)| finished -> implemented in master branch |
|Add support for recurring events found in iCalendars| finished -> implemented in master branch (credit to Hubert)| |Add support for recurring events found in iCalendars| finished -> implemented in master branch (credit to Hubert)|
|Truncate event names if they're too long to be displayed|finished -> implemented in master branch| |Truncate event names if they're too long to be displayed|finished -> implemented in master branch|
|Fix a bug where past events are shown along with ones in the future| finished -> implemented in master branch | |Fix a bug where past events are shown along with ones in the future| finished -> implemented in master branch |
|Add support for ics files along with iCalendar URLs| Not yet started | |Add support for ics files along with iCalendar URLs| Not yet started |
|Add feature to fetch rss-feeds and display it on the E-Paper| Work in progress, nearly finished.| |Add feature to fetch rss-feeds and display it on the E-Paper| finished -> implemented in master branch |
|Add 'pre-processing' operations on the generated image to greatly improve readablity| finished -> implemented in master branch | |Add 'pre-processing' operations on the generated image to greatly improve readablity| finished -> implemented in master branch |
|Fetch events in iCalendar if they are in the range specified by the settings.py file|finished -> implemented in master branch| |Fetch events in iCalendar if they are in the range specified by the settings.py file|finished -> implemented in master branch|
|Allow leaving some setting blank(iCalendar, api_key) in case users want to test the software first| -> work in progress|
## E-Paper files (epd7in5/epd7in5b) ## E-Paper files (epd7in5/epd7in5b)
| Feature | Status | | Feature | Status |
@ -29,10 +34,10 @@
## Settings file ## Settings file
| Feature | Status | | Feature | Status |
| -- | -- | | -- | -- |
| Add option to switch between the monthly and daily view | not yet started | | Add option to switch between the monthly and agenda-view | work in progress |
| Add option to display one of the following below the monthly Calendar section: Tasks, RSS-feed, events| work in progress | | Add option to display one of the following below the monthly Calendar section: Tasks, RSS-feed, events| work in progress |
| Add option to fetch events from a given time range in the future| finished -> implemented in master branch| | Add option to fetch events from a given time range in the future| finished -> implemented in master branch|
| Add option to choose the Display-update interval| work in progress | | Add option to choose the Display-update interval| finished -> implemented in master branch |
--------------------------- ---------------------------
## More feature suggestions (will not be implemented anytime soon) ## More feature suggestions (will not be implemented anytime soon)

View File

@ -1,5 +1,5 @@
<p align="center"> <p align="center">
<img src="https://github.com/aceisace/Inky-Calendar/blob/master/Gallery/E-Paper-Calendar%20Software-logo.png" width="800"> <img src="https://github.com/aceisace/Inky-Calendar/blob/Stable/Gallery/Inky-Calendar-logo.png" width="800">
</p> </p>
<p align="center"> <p align="center">
@ -15,6 +15,8 @@ A software written in python3 that allows you to transform an E-Paper display (l
This software fully supports the 3-Colour **and** 2-Colour version of the 7.5" E-Paper display from waveshare/gooddisplay and works with Raspberry Pi 2, 3 and 0 (Zero, Zero W, Zero WH). This software fully supports the 3-Colour **and** 2-Colour version of the 7.5" E-Paper display from waveshare/gooddisplay and works with Raspberry Pi 2, 3 and 0 (Zero, Zero W, Zero WH).
## News: ## News:
* **Updated and optimised the installer for faster installation and updating (Mid April 2019)
* **Added a user-friendly Web-UI for adding details to the programm** (Credit to TobyChui for the template)
* **Version 1.5 released (Early February 2019) with a new layout, displayed events and many back-end improvements** * **Version 1.5 released (Early February 2019) with a new layout, displayed events and many back-end improvements**
## Preview ## Preview
@ -54,17 +56,26 @@ This software fully supports the 3-Colour **and** 2-Colour version of the 7.5" E
## Installing required packages for python 3.x ## Installing required packages for python 3.x
Execute the following command in the Terminal to install all required packages. This will work on both, Raspbian Stretch with Desktop and Raspbian Stretch lite. Execute the following command in the Terminal to install all required packages. This will work on both, Raspbian Stretch with Desktop and Raspbian Stretch lite.
**`bash -c "$(curl -sL https://raw.githubusercontent.com/aceisace/Inky-Calendar/master/Installer-with-debug.sh)"`** **`bash -c "$(curl -sL https://raw.githubusercontent.com/aceisace/Inky-Calendar/Stable/Installer-with-debug.sh)"`**
If the Installer should fail for any reason, kindly open an issue and paste the error. Thanks. If the Installer should fail for any reason, kindly open an issue and paste the error. Thanks.
**Screenshot of the installer:** **Screenshot of the installer:**
<img src="https://github.com/aceisace/Inky-Calendar/blob/master/Gallery/installer-v1-5-p1.png" width="650"><img src="https://github.com/aceisace/Inky-Calendar/blob/master/Gallery/installer-v1-5-p2.png" width="650"> <img src="https://github.com/aceisace/Inky-Calendar/blob/Stable/Gallery/installer-v1.6-part1.png" width="650"><img src="https://github.com/aceisace/Inky-Calendar/blob/Stable/Gallery/installer-v1.6-part2.png" width="650">
## Adding details to the programm ## Adding details to the programm
Once the packages are installed, navigate to the home directory, open 'E-Paper-Calendar' and open the file 'settings.py' inside the Calendar folder. Adjust the values using the list below as a reference. You can edit the settings.py file by typing: There are currently 2 ways to add details to the programm, the user-friendly method and the legacy method. It's recommended to use the
`nano /home/pi/E-Paper-Calendar/Calendar/settings.py` in the Terminal. user-friendly option first. If you encounter any bugs, please use the legacy method and write a comment describing the bug.
1) **User-friendly method**
To use the new WEB-UI (Web-User-Interface), simply double-click the file Settings-Web-UI.html located in /home/pi/Inky-Calendar/Calendar/ to open up the document with the browser (Chrome etc.). Next, fill in the details (you can use the table below for a reference) and click on generate to create your settings.py file. Lastly, copy the generated 'settings.py' file to /home/pi/Inky-Calendar/Calendar (the same path where the settings.py file is) and try starting the main script with:
python3.5 /home/pi/Inky-Calendar/Calendar/E-Paper.py.
If you encounter any issues, please leave a comment here or via email. Thanks in advance.
2) **Legacy method**
Navigate to the home directory, open 'Inky-Calendar' and open the file 'settings.py' inside the Calendar folder. Adjust the values using the list below as a reference. You can edit the settings.py file by typing:
`nano /home/pi/Inky-Calendar/Calendar/settings.py` in the Terminal.
| Parameter | Description | | Parameter | Description |
| :---: | :---: | | :---: | :---: |
@ -94,9 +105,9 @@ If you encounter errors related to your iCalendar, please feel free to report th
## Updating ## Updating
If you want to update to the latest version, run the Installer from above again and select the 'update' option. If you want to update to the latest version, run the Installer from above again and select the 'update' option.
Before updating, the Installer checks if the settings file (/home/pi/E-Paper-Calendar/Calendar/settings.py) exists. This is done to test if a previous version was installed correctly. If the settings file exists, it is copied to the home directory and renamed as 'settings.py.old'. The old software folder 'E-Paper-Calendar' is renamed to 'E-Paper-Calendar-old'. Lastly, the latest version of the software is copied to the Raspberry as 'E-Paper-Calendar'. Before updating, the Installer checks if the settings file (/home/pi/Inky-Calendar/Calendar/settings.py) exists. This is done to test if a previous version was installed correctly. If the settings file exists, it is copied to the home directory and renamed as 'settings.py.old'. The old software folder 'Inky-Calendar' is renamed to 'Inky-Calendar-old'. Lastly, the latest version of the software is copied to the Raspberry as 'Inky-Calendar'.
After updating, copy the contents from your old settings file to the new one. There are usally more options in the new settings.py file so a 'template' is prepared with each update. This template can be found in /home/pi/E-Paper-Calendar/Calendar/settings.py.sample. After updating, copy the contents from your old settings file to the new one. There are usally more options in the new settings.py file so a 'template' is prepared with each update. This template can be found in /home/pi/Inky-Calendar/Calendar/settings.py.sample.
## Contributing ## Contributing
All sorts of contributions are most welcome and appreciated. To start contributing, please follow the [Contribution Guidelines](https://github.com/aceisace/Inky-Calendar/blob/master/CONTRIBUTING.md). All sorts of contributions are most welcome and appreciated. To start contributing, please follow the [Contribution Guidelines](https://github.com/aceisace/Inky-Calendar/blob/master/CONTRIBUTING.md).

View File

@ -1,39 +0,0 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
RSS-feed parser for multiple rss-feeds from URLs.
In development for the E-Paper-Calendar software.
Currently in alpha phase. Beta testers more than welcome. Please send me a mail to let me know what can be fixed/improved here. Thanks.
Copyright by aceisace
"""
import feedparser
import arrow
import datetime
rss_feeds=[
"http://feeds.bbci.co.uk/news/world/rss.xml#",
]
"""How old should the oldest posts be in days?"""
max_range = 14 # 2 weeks
today = datetime.date.today()
time_span = today - datetime.timedelta(days=max_range)
for feeds in rss_feeds:
parse = feedparser.parse(feeds)
print(parse['feed']['title'])
print('________________________')
for posts in parse.entries:
# RSS feeds may contain year as '2013' or just '13', hence the 2 options below
try:
post_dt = datetime.datetime.strptime(posts.published, '%a, %d %b %Y %H:%M:%S %Z')
except Exception as e:
post_dt = datetime.datetime.strptime(posts.published, '%a, %d %b %y %H:%M:%S %Z')
if post_dt.date() >= time_span:
print(arrow.get(post_dt).humanize(), '\n',posts.title)
#local.humanize(locale='ko_kr')

View File

@ -1,15 +1,12 @@
# Please do not use this file. It is only intended for testing new features and can potentially damage the system.
#!/bin/bash #!/bin/bash
# E-Paper-Calendar software installer for the raspberry pi # E-Paper-Calendar software installer for Raspberry pi
# Version: 1.5 (Early Februrary 2019) # Version: 1.6 (Mid April 2019)
# Stability status of this installer: pending # Stability status of this installer: Testing in progress
# Copyright by aceisace
echo -e "\e[1mPlease select an option from below:" echo -e "\e[1mPlease select an option from below:"
echo -e "\e[97mEnter \e[91m1 \e[97m to update the E-Paper software" echo -e "\e[97mEnter \e[91m1 \e[97m to update the E-Paper software"
echo -e "\e[97mEnter \e[91m2 \e[97m to install the E-Paper software" echo -e "\e[97mEnter \e[91m2 \e[97m to install the E-Paper software"
echo -e "\e[97mEnter \e[91m3 \e[97m to uninstall the E-Paper software" echo -e "\e[97mEnter \e[91m3 \e[97m to uninstall the E-Paper software"
echo -e "\e[1mNote: Updating will back up just the settings.py file."
echo -e "\e[97mConfirm your selection with [ENTER]" echo -e "\e[97mConfirm your selection with [ENTER]"
read -r -p 'Waiting for input... ' option read -r -p 'Waiting for input... ' option
@ -22,95 +19,212 @@ if [ -z "$option" ]; then
exit exit
fi fi
if [ "$option" = 3 ]; then if [ "$option" = 3 ]; then
echo -e "Removing the E-Paper software now..." echo -e "\e[1;36m"Removing the E-Paper software now..."\e[0m"
pip3 uninstall Pillow -y && sudo pip3 uninstall Pillow -y && sudo pip3 uninstall pyowm -y&& sudo pip3 uninstall ics -y && pip3 uninstall pyowm -y && pip3 uninstall ics -y && sudo apt-get remove supervisor -y && sudo apt-get clean && sudo apt-get autoremove -y pip3 uninstall Pillow -y && sudo pip3 uninstall Pillow -y && sudo pip3 uninstall pyowm -y&& sudo pip3 uninstall ics -y && pip3 uninstall pyowm -y && pip3 uninstall ics -y && sudo apt-get remove supervisor -y && pip3 uninstall feedparser -y && sudo pip3 uninstall feedparser -y && sudo apt-get clean && sudo apt-get autoremove -y
if [ -e /etc/supervisor/conf.d/E-Paper.conf ]; then if [ -e /etc/supervisor/conf.d/E-Paper.conf ]; then
sudo rm /etc/supervisor/conf.d/E-Paper.conf sudo rm /etc/supervisor/conf.d/E-Paper.conf
fi fi
echo -e "The libraries have been removed successfully" echo -e "\e[1;36m"The libraries have been removed successfully"\e[0m"
echo -e "Removing the E-Paper-Calendar folder if it exists" sleep 1
if [ -d "/home/pi/E-Paper-Master" ]; then echo -e "Removing the Inky-Calendar folder if it exists"
sudo rm -r /home/pi/E-Paper-Master/ if [ -d "/home/pi/Inky-Calendar" ]; then
sudo rm -r /home/pi/Inky-Calendar/
echo -e "\e[1;36m"Found the E-Paper-software folder and deleted it"\e[0m"
fi fi
echo -e "\e[1;36m"All done!"\e[0m"
fi fi
if [ "$option" = 1 ]; then if [ "$option" = 1 ]; then
echo "Checking if the settings.py exists..." echo -e "\e[1;36m"Checking if the settings.py exists..."\e[0m"
if [ -e /home/pi/E-Paper-Master/Calendar/settings.py ]; then if [ -e /home/pi/Inky-Calendar/Calendar/settings.py ]; then
echo -e "Found an E-Paper settings file." echo -e "Found an E-Paper settings file."
sleep 2 sleep 2
echo "Backing up the current settings file in the home directory." echo "Backing up the current settings file in the home directory."
sleep 2 sleep 2
cp /home/pi/E-Paper-Master/Calendar/settings.py /home/pi/settings-old.py cp /home/pi/Inky-Calendar/Calendar/settings.py /home/pi/settings-old.py
echo -e "renaming the old E-Paper software folder" echo -e "renaming the old E-Paper software folder"
sleep 2 sleep 2
cp -r /home/pi/E-Paper-Master /home/pi/E-Paper-Master-old cp -r /home/pi/Inky-Calendar /home/pi/Inky-Calendar-old
sudo rm -r /home/pi/E-Paper-Master sudo rm -r /home/pi/Inky-Calendar
echo "Updating now..." echo "Updating now..."
echo -e "\e[1;36m"Installing the E-Paper-Calendar Software for your display"\e[0m"
cd cd
else else
echo -e "Could not find any settings.py file in /home/pi/E-Paper-Master" # Ask to update anyway. May not work always, but can help with new versions.
echo -e "Please uninstall the software first and then use the install option" echo -e "\e[1;36m"Could not find the configuration file -settings.py- in /home/pi/Inky-Calendar/Calendar"\e[0m"
echo -e "Exiting now" sleep 2
echo -e "\e[1;36m"Would you like to update the Inky-Calendar software anyway?"\e[0m"
echo -e "\e[97mPlease type [y] for yes or [n] for no and confirm your selection with [ENTER]"
read -r -p 'Waiting for input... ' update_anyway
if [ "$update_anyway" != Y ] && [ "$update_anyway" != y ] && [ "$update_anyway" != N ] && [ "$update_anyway" != n ]; then
echo -e "invalid input, aborting now"
exit exit
fi fi
if [ -z "$update_anyway" ]; then
echo -e "You didn't enter anything, aborting now."
exit
fi
if [ "$update_anyway" = Y ] || [ "$update_anyway" = y ]; then
echo "Updating now..."
else
echo -e "Not attempting to update, exiting now."
exit
fi
fi
fi fi
if [ "$option" = 2 ]; then if [ "$option" = 2 ]; then
echo -e "\e[1;36m"The installer will finish the rest now. You can enjoy a break in the meanwhile."\e[0m" echo -e "\e[1;36m"Setting up the system by installing some required libraries for python3"\e[0m"
# Updating and upgrading the system, without taking too much space
echo -e "\e[1;36m"Running apt-get update and apt-get dist-upgrade for you..."\e[0m"
echo -e "\e[1;36m"This will take a while, sometimes up to 30 mins"\e[0m"
sudo apt-get update && sudo apt-get dist-upgrade -y
echo -e "\e[1;36m"System successfully updated and upgraded!"\e[0m"
echo ""
# Installing a few packages which are missing on Raspbian Stretch Lite # Installing a few packages which are missing on Raspbian Stretch Lite
echo -e "\e[1;36m"Installing a few packages that are missing on Raspbian Stretch Lite..."\e[0m" echo -e "\e[1;36m"Installing a few packages that are missing on Raspbian Stretch Lite..."\e[0m"
sudo apt-get install python3-pip python-rpi.gpio-dbgsym python3-rpi.gpio python-rpi.gpio python3-rpi.gpio-dbgsym python3-spidev git libopenjp2-7-dev libtiff5 -y sudo apt-get install python3-pip -y python-rpi.gpio-dbgsym -y python3-rpi.gpio -y python-rpi.gpio -y python3-rpi.gpio-dbgsym -y python3-spidev -y git -y libopenjp2-7-dev -y libtiff5 -y python3-numpy -y
pip3 install Pillow==5.3.0
sudo pip3 install Pillow==5.3.0
echo "" echo ""
# Running apt-get clean and apt-get autoremove # Running apt-get clean and apt-get autoremove
echo -e "\e[1;36m"Cleaning a bit of mess to free up some space..."\e[0m" echo -e "\e[1;36m"Cleaning a bit of mess to free up some space..."\e[0m"
sudo apt-get clean && sudo apt-get autoremove -y sudo apt-get clean && sudo apt-get autoremove -y
echo "" echo ""
# Installing packages required by the main script
echo -e "\e[1;36m"Installing a few required packages for the E-Paper Software"\e[0m"
sudo pip3 install pyowm
sudo pip3 install ics
pip3 install pyowm
pip3 install ics
echo -e "\e[1;36m"Finished installing libraries"\e[0m"
fi fi
if [ "$option" = 1 ] || [ "$option" = 2 ]; then if [ "$option" = 1 ] || [ "$option" = 2 ]; then
echo -e "\e[1;36m"Installing the E-Paper-Calendar Software for your display"\e[0m" # Ask to update system
echo -e "\e[1;36m"Would you like to update and upgrade the operating system first?"\e[0m"
sleep 1
echo -e "\e[97mIt is not scrictly required, but highly recommended."
sleep 1
echo -e "\e[97mPlease note that updating may take quite some time, in rare cases up to 1 hour."
sleep 1
echo -e "\e[97mPlease type [y] for yes or [n] for no and confirm your selection with [ENTER]"
read -r -p 'Waiting for input... ' update
if [ "$update" != Y ] && [ "$update" != y ] && [ "$update" != N ] && [ "$update" != n ]; then
echo -e "invalid input, aborting now"
exit
fi
if [ -z "$update" ]; then
echo -e "You didn't enter anything, aborting now."
exit
fi
if [ "$update" = Y ] || [ "$update" = y ]; then
# Updating and upgrading the system, without taking too much space
echo -e "\e[1;36m"Running apt-get update and apt-get dist-upgrade for you..."\e[0m"
sleep 1
echo -e "\e[1;36m"This will take a while, sometimes up to 1 hour"\e[0m"
sudo apt-get update && sudo apt-get dist-upgrade -y
echo -e "\e[1;36m"System successfully updated and upgraded!"\e[0m"
echo ""
fi
# Installing dependencies
#PYOWM for user pi
echo -e "\e[1;36m"Installing dependencies for the Inky-Calendar software"\e[0m"
echo -e "\e[1;36m"Checking if pyowm is installed for user pi"\e[0m"
if python3.5 -c "import pyowm" &> /dev/null; then
echo 'pyowm is installed, skipping installation of this package.'
else
echo 'pywom is not installed, attempting to install now'
pip3 install pyowm
fi
#PYOWM for user sudo
echo -e "\e[1;36m"Checking if pyowm is installed for user sudo"\e[0m"
if sudo python3.5 -c "import pyowm" &> /dev/null; then
echo 'pyowm is installed, skipping installation of this package.'
else
echo 'pywom is not installed, attempting to install now'
sudo pip3 install pyowm
fi
#Pillow for user pi
echo -e "\e[1;36m"Checking if Pillow is installed for user pi"\e[0m"
if python3.5 -c "import PIL" &> /dev/null; then
echo 'Pillow is installed, skipping installation of this package.'
else
echo 'Pillow is not installed, attempting to install now'
pip3 install Pillow==5.3.0
fi
#Pillow for user sudo
echo -e "\e[1;36m"Checking if Pillow is installed for user sudo"\e[0m"
if sudo python3.5 -c "import PIL" &> /dev/null; then
echo 'Pillow is installed, skipping installation of this package.'
else
echo 'Pillow is not installed, attempting to install now'
sudo pip3 install Pillow==5.3.0
fi
#Ics.py for user pi
echo -e "\e[1;36m"Checking if ics is installed for user pi"\e[0m"
if python3.5 -c "import ics" &> /dev/null; then
echo 'ics is installed, skipping installation of this package.'
else
echo 'ics is not installed, attempting to install now'
pip3 install ics
fi
#Ics.py for user sudo
echo -e "\e[1;36m"Checking if ics is installed for user sudo"\e[0m"
if sudo python3.5 -c "import ics" &> /dev/null; then
echo 'ics is installed, skipping installation of this package.'
else
echo 'ics is not installed, attempting to install now'
sudo pip3 install ics
fi
#feedparser for user pi
echo -e "\e[1;36m"Checking if feedparser is installed for user pi"\e[0m"
if python3.5 -c "import feedparser" &> /dev/null; then
echo 'feedparser is installed, skipping installation of this package.'
else
echo 'feedparser is not installed, attempting to install now'
pip3 install feedparser
fi
#feedparser for user sudo
echo -e "\e[1;36m"Checking if feedparser is installed for user sudo"\e[0m"
if sudo python3.5 -c "import feedparser" &> /dev/null; then
echo 'feedparser is installed, skipping installation of this package.'
else
echo 'feedparser is not installed, attempting to install now'
sudo pip3 install feedparser
fi
echo -e "\e[1;36m"Finished installing all dependencies"\e[0m"
# Clone the repository, then delete some non-required files
echo -e "\e[1;36m"Installing the Inky-Calendar Software for your display"\e[0m"
cd cd
git clone https://github.com/aceisace/E-Paper-Calendar-with-iCal-sync-and-live-weather git clone https://github.com/aceisace/Inky-Calendar Inky-Calendar-temp
mkdir E-Paper-Master mkdir Inky-Calendar
cd E-Paper-Calendar-with-iCal-sync-and-live-weather cd Inky-Calendar-temp
cp -r Calendar /home/pi/E-Paper-Master/ cp -r Calendar /home/pi/Inky-Calendar/
cp README.md /home/pi/E-Paper-Master/ cp README.md /home/pi/Inky-Calendar/
cp LICENSE /home/pi/E-Paper-Master/ cp LICENSE /home/pi/Inky-Calendar/
cp -r .git /home/pi/E-Paper-Master/ cp -r .git /home/pi/Inky-Calendar/
# Make a copy of the sample settings.py file
cd /home/pi/Inky-Calendar/Calendar
cp settings.py.sample settings.py
# Remove the downloaded (temporary) directory
cd cd
sudo rm -r E-Paper-Calendar-with-iCal-sync-and-live-weather sudo rm -r Inky-Calendar-temp
# add a short info # add a short info
cat > /home/pi/E-Paper-Master/Info.txt << EOF cat > /home/pi/Inky-Calendar/Info.txt << EOF
This document contains a short info of the E-Paper-Calendar software version This document contains a short info of the Inky-Calendar software version
Version: 1.5 Version: 1.6
Installer version: 1.5 (Early February 2019) Installer version: 1.6 (Mid April 2019)
configuration file: /home/pi/E-Paper-Master/Calendar/settings.py configuration file: /home/pi/Inky-Calendar/Calendar/settings.py
If the time was set correctly, you installed this software on: If the time was set correctly, you installed this software on:
EOF EOF
echo "$(date)" >> /home/pi/E-Paper-Master/Info.txt echo "$(date)" >> /home/pi/Inky-Calendar/Info.txt
echo "" echo ""
# Setting up supervisor # Setting up supervisor
@ -119,25 +233,25 @@ EOF
sudo bash -c 'cat > /etc/supervisor/conf.d/E-Paper.conf' << EOF sudo bash -c 'cat > /etc/supervisor/conf.d/E-Paper.conf' << EOF
[program:E-Paper] [program:E-Paper]
command = sudo /usr/bin/python3.5 /home/pi/E-Paper-Master/Calendar/E-Paper.py command = sudo /usr/bin/python3.5 /home/pi/Inky-Calendar/Calendar/E-Paper.py
stdout_logfile = /home/pi/E-Paper-Master/E-Paper.log stdout_logfile = /home/pi/Inky-Calendar/E-Paper.log
stdout_logfile_maxbytes = 1MB stdout_logfile_maxbytes = 1MB
stderr_logfile = /home/pi/E-Paper-Master/E-Paper-err.log stderr_logfile = /home/pi/Inky-Calendar/E-Paper-err.log
stderr_logfile_maxbytes = 1MB stderr_logfile_maxbytes = 1MB
EOF EOF
sudo service supervisor start E-Paper sudo service supervisor start E-Paper
echo "" echo ""
# Final words # Final words
echo -e "\e[1;36m"The install was successful"\e[0m" echo -e "\e[1;36m"The install was successful"\e[0m"
echo -e "\e[1;36m"The programm will now start at every boot."\e[0m" echo -e "\e[1;36m"The programm is set to start at every boot."\e[0m"
echo -e "\e[1;31m"Please enter your details in the file 'settings.py'."\e[0m" echo -e "\e[1;31m"Please enter your details in the file 'settings.py'."\e[0m"
echo -e "\e[1;31m"If this file is not modified, the programm will not start"\e[0m" echo -e "\e[1;31m"If this file is not modified, the programm will not start"\e[0m"
echo -e "\e[1;36m"To modify the settings file, enter:"\e[0m" echo -e "\e[1;36m"To modify the settings file, enter:"\e[0m"
echo -e "\e[1;36m"nano /home/pi/E-Paper-Master/Calendar/settings.py"\e[0m" echo -e "\e[1;36m"nano /home/pi/Inky-Calendar/Calendar/settings.py"\e[0m"
echo -e "\e[1;36m"You can test if the programm works by typing:"\e[0m" echo -e "\e[1;36m"You can test if the programm works by typing:"\e[0m"
echo -e "\e[1;36m"python3.5 /home/pi/E-Paper-Master/Calendar/E-Paper.py"\e[0m" echo -e "\e[1;36m"python3.5 /home/pi/Inky-Calendar/Calendar/E-Paper.py"\e[0m"
fi fi