From 0455800fdb796f580c6dd15ca46df07ccb9d56b9 Mon Sep 17 00:00:00 2001 From: Ace Date: Sun, 31 Mar 2019 11:38:38 +0200 Subject: [PATCH 01/37] Deleted outdated file --- developers/rss.py | 39 --------------------------------------- 1 file changed, 39 deletions(-) delete mode 100644 developers/rss.py diff --git a/developers/rss.py b/developers/rss.py deleted file mode 100644 index edf97a5..0000000 --- a/developers/rss.py +++ /dev/null @@ -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') From c47e05ef76879fb47a5a0e02197774a77c5380da Mon Sep 17 00:00:00 2001 From: Ace Date: Wed, 3 Apr 2019 01:59:24 +0200 Subject: [PATCH 02/37] Added info about the new settings.py web-ui All credit to TobyChui for his great work and time to create a web-ui for easily modifying the settings in the programm. The modified version is now up-to-date and has extended to support all new functions. Instructions on usage have also been added. --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6c35a1d..b823458 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ 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). ## News: +* **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** ## Preview @@ -63,7 +64,16 @@ If the Installer should fail for any reason, kindly open an issue and paste the ## 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 +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/E-Paper-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/E-Paper-Calendar/Calendar (the same path where the settings.py file is) and try starting the main script with: +python3.5 /home/pi/E-Paper-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 '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: `nano /home/pi/E-Paper-Calendar/Calendar/settings.py` in the Terminal. | Parameter | Description | From 007c23ac08b9c45e688c4c607764be2a37e63478 Mon Sep 17 00:00:00 2001 From: Ace Date: Wed, 3 Apr 2019 22:49:48 +0200 Subject: [PATCH 03/37] Add files via upload --- Gallery/Inky-Calendar-logo.png | Bin 0 -> 22142 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Gallery/Inky-Calendar-logo.png diff --git a/Gallery/Inky-Calendar-logo.png b/Gallery/Inky-Calendar-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f39dd16ef2f0c2e96acb044793b23e921e749c70 GIT binary patch literal 22142 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 literal 0 HcmV?d00001 From 84f0d6940f68d829b1620f1d763649503babe0f7 Mon Sep 17 00:00:00 2001 From: Ace Date: Wed, 3 Apr 2019 22:50:15 +0200 Subject: [PATCH 04/37] updated logo for better readability --- Gallery/E-Paper-Calendar Software-logo.png | Bin 133300 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Gallery/E-Paper-Calendar Software-logo.png diff --git a/Gallery/E-Paper-Calendar Software-logo.png b/Gallery/E-Paper-Calendar Software-logo.png deleted file mode 100644 index 69d44f8744d9509dd8a78d3cbda456d01253a01e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133300 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 Date: Wed, 3 Apr 2019 22:51:04 +0200 Subject: [PATCH 05/37] Updated logo Updated logo for better readability --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b823458..fd7e3b5 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- +

From 996e9e4254755dd3e67fb1fe5fe300ec9e621475 Mon Sep 17 00:00:00 2001 From: Ace Date: Tue, 9 Apr 2019 01:26:11 +0200 Subject: [PATCH 06/37] Some minor improvements Added logo, added info about multiple iCalendar URLs, multiple RSS-feeds, added default option for radio checkboxes --- Calendar/Settings-Web-UI.html | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/Calendar/Settings-Web-UI.html b/Calendar/Settings-Web-UI.html index 30b6ac5..572b61a 100644 --- a/Calendar/Settings-Web-UI.html +++ b/Calendar/Settings-Web-UI.html @@ -19,7 +19,10 @@ body{

@@ -66,7 +69,7 @@ body{
- +
@@ -85,7 +88,7 @@ body{
- +
@@ -109,7 +112,7 @@ body{
- +
@@ -123,7 +126,7 @@ body{
- +
@@ -141,7 +144,7 @@ body{
- +
@@ -159,7 +162,7 @@ body{
- +
@@ -300,4 +303,4 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI - \ No newline at end of file + From 2a039d2d112cfcae142e30276a9d2fbb5ce1491c Mon Sep 17 00:00:00 2001 From: Ace Date: Tue, 16 Apr 2019 00:31:29 +0200 Subject: [PATCH 07/37] Progress update Added some more features for nexxt version and updated the state of some features for the next release. --- New-version-planning.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/New-version-planning.md b/New-version-planning.md index 125abe7..ddb65b9 100644 --- a/New-version-planning.md +++ b/New-version-planning.md @@ -3,22 +3,24 @@ # For version 1.6 ## 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 | Feature | Status | | -- | -- | -|Implement daily view (will take some more time)| Not yet started | +|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| -|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 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| |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 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 | |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) | Feature | Status | @@ -29,10 +31,10 @@ ## Settings file | 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 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) From 700f0be7918e8a7d0992b2e33601eeddacc8802c Mon Sep 17 00:00:00 2001 From: Ace Date: Tue, 16 Apr 2019 00:42:10 +0200 Subject: [PATCH 08/37] Update --- New-version-planning.md | 1 + 1 file changed, 1 insertion(+) diff --git a/New-version-planning.md b/New-version-planning.md index ddb65b9..4c42b51 100644 --- a/New-version-planning.md +++ b/New-version-planning.md @@ -9,6 +9,7 @@ ## Main script | Feature | Status | | -- | -- | +|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| |Implement feature to fetch tasks| canceled as Google Calendar does not support VTODO (Tasks)| From c520db31f2693e8fc8fca74606eaba4cb883dbec Mon Sep 17 00:00:00 2001 From: Ace Date: Wed, 17 Apr 2019 17:05:13 +0200 Subject: [PATCH 09/37] Fixed paths to Inky-Calendar folder bugfix --- Installer-with-debug.sh | 50 ++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/Installer-with-debug.sh b/Installer-with-debug.sh index 6dc1a01..43027d8 100644 --- a/Installer-with-debug.sh +++ b/Installer-with-debug.sh @@ -1,5 +1,5 @@ #!/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) # Stability status of this installer: Confirmed with Raspbain Stretch Lite on 12th March 2019 # Copyright by aceisace @@ -26,28 +26,28 @@ if [ "$option" = 3 ]; then sudo rm /etc/supervisor/conf.d/E-Paper.conf fi echo -e "The libraries have been removed successfully" - echo -e "Removing the E-Paper-Calendar folder if it exists" - if [ -d "/home/pi/E-Paper-Calendar" ]; then - sudo rm -r /home/pi/E-Paper-Calendar/ + echo -e "Removing the Inky-Calendar folder if it exists" + if [ -d "/home/pi/Inky-Calendar" ]; then + sudo rm -r /home/pi/Inky-Calendar/ fi fi if [ "$option" = 1 ]; then echo "Checking if the settings.py exists..." - 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." sleep 2 echo "Backing up the current settings file in the home directory." 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" sleep 2 - cp -r /home/pi/E-Paper-Calendar /home/pi/E-Paper-Calendar-old - sudo rm -r /home/pi/E-Paper-Calendar + cp -r /home/pi/Inky-Calendar /home/pi/Inky-Calendar-old + sudo rm -r /home/pi/Inky-Calendar echo "Updating now..." cd else - echo -e "Could not find any settings.py file in /home/pi/E-Paper-Calendar/Calendar" + echo -e "Could not find any settings.py file in /home/pi/Inky-Calendar/Calendar" echo -e "Please uninstall the software first and then use the install option" echo -e "Exiting now" exit @@ -88,18 +88,18 @@ if [ "$option" = 2 ]; then fi if [ "$option" = 1 ] || [ "$option" = 2 ]; then - echo -e "\e[1;36m"Installing the E-Paper-Calendar Software for your display"\e[0m" + echo -e "\e[1;36m"Installing the Inky-Calendar Software for your display"\e[0m" cd git clone https://github.com/aceisace/Inky-Calendar - mkdir E-Paper-Calendar + mkdir Inky-Calendar cd Inky-Calendar - cp -r Calendar /home/pi/E-Paper-Calendar/ - cp README.md /home/pi/E-Paper-Calendar/ - cp LICENSE /home/pi/E-Paper-Calendar/ - cp -r .git /home/pi/E-Paper-Calendar/ + cp -r Calendar /home/pi/Inky-Calendar/ + cp README.md /home/pi/Inky-Calendar/ + cp LICENSE /home/pi/Inky-Calendar/ + cp -r .git /home/pi/Inky-Calendar/ # 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 cd @@ -107,15 +107,15 @@ if [ "$option" = 1 ] || [ "$option" = 2 ]; then sudo rm -r Inky-Calendar # add a short info - cat > /home/pi/E-Paper-Calendar/Info.txt << EOF -This document contains a short info of the E-Paper-Calendar software version + cat > /home/pi/Inky-Calendar/Info.txt << EOF +This document contains a short info of the Inky-Calendar software version Version: 1.5 Installer version: 1.5 (Early February 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: EOF - echo "$(date)" >> /home/pi/E-Paper-Calendar/Info.txt + echo "$(date)" >> /home/pi/Inky-Calendar/Info.txt echo "" # Setting up supervisor @@ -124,10 +124,10 @@ EOF sudo bash -c 'cat > /etc/supervisor/conf.d/E-Paper.conf' << EOF [program:E-Paper] -command = sudo /usr/bin/python3.5 /home/pi/E-Paper-Calendar/Calendar/E-Paper.py -stdout_logfile = /home/pi/E-Paper-Calendar/E-Paper.log +command = sudo /usr/bin/python3.5 /home/pi/Inky-Calendar/Calendar/E-Paper.py +stdout_logfile = /home/pi/Inky-Calendar/E-Paper.log 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 EOF @@ -147,7 +147,7 @@ EOF 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"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"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 From 254674c77466d419afd3196dbd6842c57ca6acd9 Mon Sep 17 00:00:00 2001 From: Ace Date: Wed, 17 Apr 2019 19:44:12 +0200 Subject: [PATCH 10/37] Added note on bug in installer --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index fd7e3b5..39cdc2c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +# Attention: +## A bug has been reported by some of the new users. It is being fixed right now. Please don't attemt to use the installer until this message has disappeared. Thanks for understanding. +

From b325d823c36e7f91ae3401bfa4ca630b1c603c5e Mon Sep 17 00:00:00 2001 From: Ace Date: Wed, 17 Apr 2019 22:32:06 +0200 Subject: [PATCH 11/37] Fixed incorrect installer link Since the changes last month, the installer-link was not updated and was pointing to the master branch, though it should be pointing at the stable branch. This has been fixed just now. More testing is still taking place... --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 39cdc2c..f38505b 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ This software fully supports the 3-Colour **and** 2-Colour version of the 7.5" E ## 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. -**`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. From 0ea6eb128026b7fe60a4ee42c849ed1a5ced3480 Mon Sep 17 00:00:00 2001 From: Ace Date: Wed, 17 Apr 2019 23:16:45 +0200 Subject: [PATCH 12/37] Created template for a new installer --- prototype.sh | 82 +++++++++++++++++++++++++++++----------------------- 1 file changed, 46 insertions(+), 36 deletions(-) diff --git a/prototype.sh b/prototype.sh index f8cd47c..43027d8 100644 --- a/prototype.sh +++ b/prototype.sh @@ -1,15 +1,13 @@ -# Please do not use this file. It is only intended for testing new features and can potentially damage the system. #!/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) -# Stability status of this installer: pending +# Stability status of this installer: Confirmed with Raspbain Stretch Lite on 12th March 2019 # Copyright by aceisace 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[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[1mNote: Updating will back up just the settings.py file." echo -e "\e[97mConfirm your selection with [ENTER]" read -r -p 'Waiting for input... ' option @@ -28,29 +26,28 @@ if [ "$option" = 3 ]; then sudo rm /etc/supervisor/conf.d/E-Paper.conf fi echo -e "The libraries have been removed successfully" - echo -e "Removing the E-Paper-Calendar folder if it exists" - if [ -d "/home/pi/E-Paper-Master" ]; then - sudo rm -r /home/pi/E-Paper-Master/ + echo -e "Removing the Inky-Calendar folder if it exists" + if [ -d "/home/pi/Inky-Calendar" ]; then + sudo rm -r /home/pi/Inky-Calendar/ fi fi if [ "$option" = 1 ]; then echo "Checking if the settings.py exists..." - 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." sleep 2 echo "Backing up the current settings file in the home directory." 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" sleep 2 - cp -r /home/pi/E-Paper-Master /home/pi/E-Paper-Master-old - sudo rm -r /home/pi/E-Paper-Master + cp -r /home/pi/Inky-Calendar /home/pi/Inky-Calendar-old + sudo rm -r /home/pi/Inky-Calendar echo "Updating now..." - echo -e "\e[1;36m"Installing the E-Paper-Calendar Software for your display"\e[0m" cd else - echo -e "Could not find any settings.py file in /home/pi/E-Paper-Master" + echo -e "Could not find any settings.py file in /home/pi/Inky-Calendar/Calendar" echo -e "Please uninstall the software first and then use the install option" echo -e "Exiting now" exit @@ -69,9 +66,7 @@ if [ "$option" = 2 ]; then # 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" - 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 - pip3 install Pillow==5.3.0 - sudo pip3 install Pillow==5.3.0 + 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 echo "" # Running apt-get clean and apt-get autoremove @@ -82,35 +77,45 @@ if [ "$option" = 2 ]; then # 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 if [ "$option" = 1 ] || [ "$option" = 2 ]; then - echo -e "\e[1;36m"Installing the E-Paper-Calendar Software for your display"\e[0m" + echo -e "\e[1;36m"Installing the Inky-Calendar Software for your display"\e[0m" cd - git clone https://github.com/aceisace/E-Paper-Calendar-with-iCal-sync-and-live-weather - mkdir E-Paper-Master - cd E-Paper-Calendar-with-iCal-sync-and-live-weather - cp -r Calendar /home/pi/E-Paper-Master/ - cp README.md /home/pi/E-Paper-Master/ - cp LICENSE /home/pi/E-Paper-Master/ - cp -r .git /home/pi/E-Paper-Master/ + git clone https://github.com/aceisace/Inky-Calendar + mkdir Inky-Calendar + cd Inky-Calendar + cp -r Calendar /home/pi/Inky-Calendar/ + cp README.md /home/pi/Inky-Calendar/ + cp LICENSE /home/pi/Inky-Calendar/ + 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 cd - sudo rm -r E-Paper-Calendar-with-iCal-sync-and-live-weather + + # Remove the downloaded (temporary) directory + sudo rm -r Inky-Calendar # add a short info - cat > /home/pi/E-Paper-Master/Info.txt << EOF -This document contains a short info of the E-Paper-Calendar software version + cat > /home/pi/Inky-Calendar/Info.txt << EOF +This document contains a short info of the Inky-Calendar software version Version: 1.5 Installer version: 1.5 (Early February 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: EOF - echo "$(date)" >> /home/pi/E-Paper-Master/Info.txt + echo "$(date)" >> /home/pi/Inky-Calendar/Info.txt echo "" # Setting up supervisor @@ -119,25 +124,30 @@ EOF sudo bash -c 'cat > /etc/supervisor/conf.d/E-Paper.conf' << EOF [program:E-Paper] -command = sudo /usr/bin/python3.5 /home/pi/E-Paper-Master/Calendar/E-Paper.py -stdout_logfile = /home/pi/E-Paper-Master/E-Paper.log +command = sudo /usr/bin/python3.5 /home/pi/Inky-Calendar/Calendar/E-Paper.py +stdout_logfile = /home/pi/Inky-Calendar/E-Paper.log 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 EOF 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 "" # Final words 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"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"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"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 From 68f1af48383392881caac5863ec14352e9a96edf Mon Sep 17 00:00:00 2001 From: Ace Date: Wed, 17 Apr 2019 23:33:48 +0200 Subject: [PATCH 13/37] Update prototype.sh --- prototype.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/prototype.sh b/prototype.sh index 43027d8..7dc68b2 100644 --- a/prototype.sh +++ b/prototype.sh @@ -91,12 +91,12 @@ if [ "$option" = 1 ] || [ "$option" = 2 ]; then echo -e "\e[1;36m"Installing the Inky-Calendar Software for your display"\e[0m" cd git clone https://github.com/aceisace/Inky-Calendar - mkdir Inky-Calendar - cd Inky-Calendar - cp -r Calendar /home/pi/Inky-Calendar/ - cp README.md /home/pi/Inky-Calendar/ - cp LICENSE /home/pi/Inky-Calendar/ - cp -r .git /home/pi/Inky-Calendar/ + #mkdir Inky-Calendar + #cd Inky-Calendar + #cp -r Calendar /home/pi/Inky-Calendar/ + #cp README.md /home/pi/Inky-Calendar/ + #cp LICENSE /home/pi/Inky-Calendar/ + #cp -r .git /home/pi/Inky-Calendar/ # Make a copy of the sample settings.py file cd /home/pi/Inky-Calendar/Calendar From eed4f110e4e76356df7400793ce34fccd5e8becf Mon Sep 17 00:00:00 2001 From: Ace Date: Wed, 17 Apr 2019 23:34:19 +0200 Subject: [PATCH 14/37] Bugfix --- Calendar/icon_positions_locations.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Calendar/icon_positions_locations.py b/Calendar/icon_positions_locations.py index ccc1354..324a423 100644 --- a/Calendar/icon_positions_locations.py +++ b/Calendar/icon_positions_locations.py @@ -9,7 +9,7 @@ from PIL import Image from settings import language im_open = Image.open -path = '/home/pi/Calendar/Calendar/' +path = '/home/pi/Inky-Calendar/Calendar/' wpath = path+'weather-icons/' mpath = path+'translations/'+language+'/months/' weekpath = path+'translations/'+language+'/week/' From e73da0fc62fb9b1e0344354147bc850d64acd4ec Mon Sep 17 00:00:00 2001 From: Ace Date: Wed, 17 Apr 2019 23:41:08 +0200 Subject: [PATCH 15/37] Bugfix+minor improvements --- Calendar/Settings-Web-UI.html | 522 +++++++++++++++++----------------- 1 file changed, 261 insertions(+), 261 deletions(-) diff --git a/Calendar/Settings-Web-UI.html b/Calendar/Settings-Web-UI.html index 572b61a..816ba47 100644 --- a/Calendar/Settings-Web-UI.html +++ b/Calendar/Settings-Web-UI.html @@ -9,298 +9,298 @@

-
-
-
- Setting Generator -
For Inky-Calendar Project of Ace-Innovation Laboratory (by aceisace)
- -
-
- If no value is filled in for any of the row, the default value will be used. -
- -
-
- -
- - -
+
+
+
+ Setting Generator +
For Inky-Calendar Project of Ace-Innovation Laboratory (by aceisace)
+ +
+
+ If no value is filled in for any of the row, the default value will be used. +
+ +
+
+ +
+ + +
- - -
+ + +
-
- -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
-
- -
-
- - -
-
- - -
-
-
+
+ +
+
+ + +
+
+ + +
+
+
-
- - -
-
- - -
- -
- -
-
- - -
-
- - -
-
-
+
+ + +
+
+ + +
+ +
+ +
+
+ + +
+
+ + +
+
+
-
- - -
+
+ + +
-
- - -
+
+ + +
-
- -
-
- - -
-
- - -
-
-
+
+ +
+
+ + +
+
+ + +
+
+
-
- -
-
- - -
-
- - -
-
- - -
-
-
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+
-
- -
-
- - -
-
- - -
-
-
+
+ +
+
+ + +
+
+ + +
+
+
-
- -
-
- - -
-
- - -
-
-
+
+ +
+
+ + +
+
+ + +
+
+
- -
- -

- Developed by Toby Chui for Inky-Calendar Project, modified by aceisace Licensed under MIT -
- - MIT License - -
-

Copyright 2019 Toby Chui
+ +
+ +

+ Developed by Toby Chui for Inky-Calendar Project, modified by aceisace Licensed under MIT +

+ + MIT License + +
+

Copyright 2019 Toby Chui
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-
-
-
-
-
- - + var hours = "24"; + if ($('#12_hours').is(':checked')){ + hours = "12"; + } + //console.log(ical_urls, rss_urls,update_interval, additional_feature, api_key, location, week_starts_on, events_max_range, calibration_hours, display_colours, language, units, hours); + createPythonSetting(ical_urls, rss_urls,update_interval, additional_feature, api_key, location, week_starts_on, events_max_range, calibration_hours, display_colours, language, units, hours); + } + + function rk(content,key,value){ + //Use to replace key-value pair in template string + return content.split("{" + key + "}").join(value); + } + + function createPythonSetting(a,b,c,d,e,f,g,h,i,j,k,l,m){ + var box = template; + box = rk(box,"ical_urls",a); + box = rk(box,"rss_urls",b); + box = rk(box,"update_interval",c); + box = rk(box,"additional_feature",d); + box = rk(box,"api_key",e); + box = rk(box,"location",f); + box = rk(box,"week_starts_on",g); + box = rk(box,"events_max_range",h); + box = rk(box,"calibration_hours",i); + box = rk(box,"display_colours",j); + box = rk(box,"language",k); + box = rk(box,"units",l); + box = rk(box,"hours",m); + var config = new Blob([box], {type : "text/plain"}); + var link = document.createElement('link'); + link.href = window.URL.createObjectURL(config); + var a = document.createElement('A'); + a.href = link.href; + a.download = link.href.substr(link.href.lastIndexOf('/') + 1); + document.body.appendChild(a); + $(a).attr('download','settings.py'); + a.click(); + document.body.removeChild(a); + } + + + From 3ffe644f8693cba6d3ff4f6706dcacb5037b42e6 Mon Sep 17 00:00:00 2001 From: Ace Date: Thu, 18 Apr 2019 00:07:49 +0200 Subject: [PATCH 16/37] Fixed some bugs --- Calendar/Settings-Web-UI.html | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Calendar/Settings-Web-UI.html b/Calendar/Settings-Web-UI.html index 816ba47..ea9337b 100644 --- a/Calendar/Settings-Web-UI.html +++ b/Calendar/Settings-Web-UI.html @@ -192,7 +192,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
Setting Generator -
For Inky-Calendar Project of Ace-Innovation Laboratory (by aceisace) Project
+
For Inky-Calendar Project of Ace-Innovation Laboratory (by aceisace)
+ +
+
If no value is filled in for any of the row, the default value will be used.
@@ -27,12 +30,12 @@ body{
- +
- +
@@ -52,7 +55,7 @@ body{
- +