81 lines
2.5 KiB
Python
81 lines
2.5 KiB
Python
#!/usr/bin/python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
E-Paper Software (main script) for the 3-colour and 2-Colour E-Paper display
|
|
A full and detailed breakdown for this code can be found in the wiki.
|
|
If you have any questions, feel free to open an issue at Github.
|
|
|
|
Copyright by aceisace
|
|
"""
|
|
from datetime import datetime
|
|
from time import sleep
|
|
from Assets import datetime_locals
|
|
import locale
|
|
from DebugConsole import DebugConsole
|
|
from settings import *
|
|
from MonthOvPanel import MonthOvPanel
|
|
import OwmForecasts
|
|
import IcalEvents
|
|
import RssParserPosts
|
|
|
|
locale.setlocale(locale.LC_ALL, datetime_locals[language])
|
|
debug = DebugConsole()
|
|
output_adapters = []
|
|
|
|
if render_to_file:
|
|
import ImageFileAdapter
|
|
epd = ImageFileAdapter.ImageFileAdapter()
|
|
output_adapters.append(epd)
|
|
|
|
if render_to_display:
|
|
if display_colours == "bwr":
|
|
import Epd7in5bAdapter
|
|
epd = Epd7in5bAdapter.Epd7in5bAdapter()
|
|
output_adapters.append(epd)
|
|
elif display_colours == "bw":
|
|
import Epd7in5Adapter
|
|
epd = Epd7in5Adapter.Epd7in5Adapter()
|
|
output_adapters.append(epd)
|
|
|
|
"""Main loop starts from here"""
|
|
def main ():
|
|
while True:
|
|
|
|
time = datetime.now()
|
|
hour = int(time.strftime("%H"))
|
|
month = int(time.now().strftime('%m'))
|
|
year = int(time.now().strftime('%Y'))
|
|
|
|
for i in range(1):
|
|
debug.print_line('_________Starting new loop___________')
|
|
debug.print_line('Date: '+ time.strftime('%a %d %b %y') + ', time: ' + time.strftime('%H:%M') + '\n')
|
|
|
|
if hour in calibrate_hours:
|
|
for output in output_adapters:
|
|
output.calibrate()
|
|
|
|
design = MonthOvPanel((epd.width, epd.height))
|
|
|
|
debug.print_line("Fetching weather information from open weather map'")
|
|
owm = OwmForecasts.OwmForecasts(api_key)
|
|
design.add_weather(OwmForecasts.OwmForecasts(api_key))
|
|
|
|
#debug.print_line('Fetching events from your calendar')
|
|
#events_cal = IcalEvents.IcalEvents(ical_urls)
|
|
#design.add_calendar(events_cal)
|
|
|
|
debug.print_line('Fetching posts from your rss-feeds')
|
|
rss = RssParserPosts.RssParserPosts(rss_feeds)
|
|
design.add_rssfeed(rss)
|
|
|
|
for output in output_adapters:
|
|
output.render(design)
|
|
|
|
debug.print_line("=> Finished rendering" + "\n")
|
|
|
|
for i in range(1):
|
|
nexthour = ((60 - int(time.strftime("%M"))) * 60) - (int(time.strftime("%S")))
|
|
sleep(nexthour)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|