Code cleanup, class naming improvements
This commit is contained in:
parent
33520a23fe
commit
c4bb24bef9
@ -1,4 +1,5 @@
|
|||||||
##from .inkycal_agenda import agenda
|
from .inkycal_agenda import Agenda
|
||||||
##from .inkycal_calendar import calendar
|
from .inkycal_calendar import Calendar
|
||||||
##from .inkycal_weather import weather
|
from .inkycal_weather import Weather
|
||||||
##from .inkycal_rss import rss
|
from .inkycal_rss import RSS
|
||||||
|
#from .inkycal_image import Image
|
||||||
|
@ -16,7 +16,7 @@ Copyright by aceisace
|
|||||||
import arrow
|
import arrow
|
||||||
from urllib.request import urlopen
|
from urllib.request import urlopen
|
||||||
import logging
|
import logging
|
||||||
import time # timezone, timing speed of execution
|
import time
|
||||||
import os
|
import os
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -36,7 +36,7 @@ filename = os.path.basename(__file__).split('.py')[0]
|
|||||||
logger = logging.getLogger(filename)
|
logger = logging.getLogger(filename)
|
||||||
logger.setLevel(level=logging.INFO)
|
logger.setLevel(level=logging.INFO)
|
||||||
|
|
||||||
class icalendar:
|
class iCalendar:
|
||||||
"""iCalendar parsing moudule for inkycal.
|
"""iCalendar parsing moudule for inkycal.
|
||||||
Parses events from given iCalendar URLs / paths"""
|
Parses events from given iCalendar URLs / paths"""
|
||||||
|
|
||||||
@ -108,7 +108,7 @@ class icalendar:
|
|||||||
t_start = timeline_start
|
t_start = timeline_start
|
||||||
t_end = timeline_end
|
t_end = timeline_end
|
||||||
else:
|
else:
|
||||||
raise Exception ('Please input a valid arrow object!')
|
raise Exception('Please input a valid arrow (time) object!')
|
||||||
|
|
||||||
# parse non-recurring events
|
# parse non-recurring events
|
||||||
events = [{
|
events = [{
|
||||||
@ -135,13 +135,15 @@ class icalendar:
|
|||||||
# Parse recurring events
|
# Parse recurring events
|
||||||
recurring_events = [recurring_ical_events.of(ical).between(
|
recurring_events = [recurring_ical_events.of(ical).between(
|
||||||
fmt(t_start),fmt(t_end)) for ical in self.icalendars]
|
fmt(t_start),fmt(t_end)) for ical in self.icalendars]
|
||||||
|
|
||||||
re_events = [{
|
re_events = [{
|
||||||
'title':events.get('SUMMARY').lstrip(),
|
'title':events.get('SUMMARY').lstrip(),
|
||||||
'begin':arrow.get(events.get('DTSTART').dt).to(timezone
|
'begin':arrow.get(events.get('DTSTART').dt).to(timezone
|
||||||
if arrow.get(events.get('dtstart').dt).format('HH:mm') != '00:00' else 'UTC'),
|
if arrow.get(events.get('dtstart').dt).format('HH:mm') != '00:00'
|
||||||
|
else 'UTC'),
|
||||||
'end':arrow.get(events.get("DTEND").dt).to(timezone
|
'end':arrow.get(events.get("DTEND").dt).to(timezone
|
||||||
if arrow.get(events.get('dtstart').dt).format('HH:mm') != '00:00' else 'UTC')
|
if arrow.get(events.get('dtstart').dt).format('HH:mm') != '00:00'
|
||||||
|
else 'UTC')
|
||||||
} for ical in recurring_events for events in ical]
|
} for ical in recurring_events for events in ical]
|
||||||
|
|
||||||
# if any recurring events were found, add them to parsed_events
|
# if any recurring events were found, add them to parsed_events
|
||||||
@ -214,20 +216,3 @@ class icalendar:
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
print('running {0} in standalone mode'.format(filename))
|
print('running {0} in standalone mode'.format(filename))
|
||||||
|
|
||||||
|
|
||||||
urls = [
|
|
||||||
# Default calendar
|
|
||||||
'https://calendar.google.com/calendar/ical/en.usa%23holiday%40group.v.calendar.google.com/public/basic.ics',
|
|
||||||
# inkycal debug calendar
|
|
||||||
'https://calendar.google.com/calendar/ical/6nqv871neid5l0t7hgk6jgr24c%40group.calendar.google.com/private-c9ab692c99fb55360cbbc28bf8dedb3a/basic.ics'
|
|
||||||
]
|
|
||||||
|
|
||||||
##a = icalendar()
|
|
||||||
##a.load_url(urls)
|
|
||||||
##a.get_events(arrow.now(), arrow.now().shift(weeks=4), timezone = a.get_system_tz())
|
|
||||||
##a.show_events()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,17 +7,17 @@ Copyright by aceisace
|
|||||||
|
|
||||||
from inkycal.modules.template import inkycal_module
|
from inkycal.modules.template import inkycal_module
|
||||||
from inkycal.custom import *
|
from inkycal.custom import *
|
||||||
from inkycal.modules.ical_parser import icalendar
|
from inkycal.modules.ical_parser import iCalendar
|
||||||
|
|
||||||
import calendar as cal
|
import calendar as cal
|
||||||
import arrow
|
import arrow
|
||||||
|
|
||||||
filename = os.path.basename(__file__).split('.py')[0]
|
filename = os.path.basename(__file__).split('.py')[0]
|
||||||
logger = logging.getLogger(filename)
|
logger = logging.getLogger(filename)
|
||||||
logger.setLevel(level=logging.INFO)
|
logger.setLevel(level=logging.ERROR)
|
||||||
|
|
||||||
|
|
||||||
class agenda(inkycal_module):
|
class Agenda(inkycal_module):
|
||||||
"""Agenda class
|
"""Agenda class
|
||||||
Create agenda and show events from given icalendars
|
Create agenda and show events from given icalendars
|
||||||
"""
|
"""
|
||||||
@ -94,7 +94,8 @@ class agenda(inkycal_module):
|
|||||||
for _ in range(max_lines)]
|
for _ in range(max_lines)]
|
||||||
|
|
||||||
# Load icalendar from config
|
# Load icalendar from config
|
||||||
parser = icalendar()
|
self.ical = iCalendar()
|
||||||
|
parser = self.parser
|
||||||
if self.ical_urls:
|
if self.ical_urls:
|
||||||
parser.load_url(self.ical_urls)
|
parser.load_url(self.ical_urls)
|
||||||
if self.ical_files:
|
if self.ical_files:
|
||||||
@ -202,7 +203,3 @@ class agenda(inkycal_module):
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
print('running {0} in standalone mode'.format(filename))
|
print('running {0} in standalone mode'.format(filename))
|
||||||
|
|
||||||
##size = (400, 520)
|
|
||||||
##config = {'week_starts_on': 'Monday', 'ical_urls': ['https://calendar.google.com/calendar/ical/en.usa%23holiday%40group.v.calendar.google.com/public/basic.ics']}
|
|
||||||
##a = agenda(size, config).generate_image()
|
|
||||||
|
@ -12,9 +12,9 @@ import arrow
|
|||||||
|
|
||||||
filename = os.path.basename(__file__).split('.py')[0]
|
filename = os.path.basename(__file__).split('.py')[0]
|
||||||
logger = logging.getLogger(filename)
|
logger = logging.getLogger(filename)
|
||||||
logger.setLevel(level=logging.INFO)
|
logger.setLevel(level=logging.ERROR)
|
||||||
|
|
||||||
class calendar(inkycal_module):
|
class Calendar(inkycal_module):
|
||||||
"""Calendar class
|
"""Calendar class
|
||||||
Create monthly calendar and show events from given icalendars
|
Create monthly calendar and show events from given icalendars
|
||||||
"""
|
"""
|
||||||
@ -40,10 +40,10 @@ class calendar(inkycal_module):
|
|||||||
fonts['NotoSans-SemiCondensed'], size = self.fontsize)
|
fonts['NotoSans-SemiCondensed'], size = self.fontsize)
|
||||||
self.weekstart = self.config['week_starts_on']
|
self.weekstart = self.config['week_starts_on']
|
||||||
self.show_events = True
|
self.show_events = True
|
||||||
self.date_format = 'D MMM' # used for dates
|
self.date_format = 'D MMM' # used for dates
|
||||||
self.time_format = "HH:mm" # used for timings
|
self.time_format = "HH:mm" # used for timings
|
||||||
self.language = 'en' # Grab from settings file?
|
self.language = 'en' # Grab from settings file?
|
||||||
|
|
||||||
self.timezone = get_system_tz()
|
self.timezone = get_system_tz()
|
||||||
self.ical_urls = self.config['ical_urls']
|
self.ical_urls = self.config['ical_urls']
|
||||||
self.ical_files = []
|
self.ical_files = []
|
||||||
@ -160,13 +160,13 @@ class calendar(inkycal_module):
|
|||||||
write(icon, (0,0), (icon_width, icon_height), str(now.day),
|
write(icon, (0,0), (icon_width, icon_height), str(now.day),
|
||||||
font=self.num_font, fill_height = 0.5, colour='white')
|
font=self.num_font, fill_height = 0.5, colour='white')
|
||||||
im_colour.paste(icon, current_day_pos, icon)
|
im_colour.paste(icon, current_day_pos, icon)
|
||||||
|
|
||||||
|
|
||||||
# If events should be loaded and shown...
|
# If events should be loaded and shown...
|
||||||
if self.show_events == True:
|
if self.show_events == True:
|
||||||
|
|
||||||
# import the ical-parser
|
# import the ical-parser
|
||||||
from inkycal.modules.ical_parser import icalendar
|
from inkycal.modules.ical_parser import iCalendar
|
||||||
|
|
||||||
# find out how many lines can fit at max in the event section
|
# find out how many lines can fit at max in the event section
|
||||||
line_spacing = 0
|
line_spacing = 0
|
||||||
@ -182,7 +182,9 @@ class calendar(inkycal_module):
|
|||||||
month_end = arrow.get(now.ceil('month'))
|
month_end = arrow.get(now.ceil('month'))
|
||||||
|
|
||||||
# fetch events from given icalendars
|
# fetch events from given icalendars
|
||||||
parser = icalendar()
|
self.ical = iCalendar()
|
||||||
|
parser = self.ical
|
||||||
|
|
||||||
if self.ical_urls:
|
if self.ical_urls:
|
||||||
parser.load_url(self.ical_urls)
|
parser.load_url(self.ical_urls)
|
||||||
if self.ical_files:
|
if self.ical_files:
|
||||||
@ -230,13 +232,13 @@ class calendar(inkycal_module):
|
|||||||
date_width = int(max([self.font.getsize(
|
date_width = int(max([self.font.getsize(
|
||||||
events['begin'].format(self.date_format,locale=lang))[0]
|
events['begin'].format(self.date_format,locale=lang))[0]
|
||||||
for events in upcoming_events]) * 1.1)
|
for events in upcoming_events]) * 1.1)
|
||||||
|
|
||||||
time_width = int(max([self.font.getsize(
|
time_width = int(max([self.font.getsize(
|
||||||
events['begin'].format(self.time_format, locale=lang))[0]
|
events['begin'].format(self.time_format, locale=lang))[0]
|
||||||
for events in upcoming_events]) * 1.1)
|
for events in upcoming_events]) * 1.1)
|
||||||
|
|
||||||
line_height = self.font.getsize('hg')[1] + line_spacing
|
line_height = self.font.getsize('hg')[1] + line_spacing
|
||||||
|
|
||||||
event_width_s = im_width - date_width - time_width
|
event_width_s = im_width - date_width - time_width
|
||||||
event_width_l = im_width - date_width
|
event_width_l = im_width - date_width
|
||||||
|
|
||||||
@ -282,9 +284,3 @@ class calendar(inkycal_module):
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
print('running {0} in standalone mode'.format(filename))
|
print('running {0} in standalone mode'.format(filename))
|
||||||
|
|
||||||
|
|
||||||
##size = (400, 520)
|
|
||||||
##config = {'week_starts_on': 'Monday', 'ical_urls': ['https://calendar.google.com/calendar/ical/en.usa%23holiday%40group.v.calendar.google.com/public/basic.ics']}
|
|
||||||
##a = calendar(size, config)
|
|
||||||
##a.generate_image()
|
|
||||||
|
@ -18,16 +18,16 @@ except ImportError:
|
|||||||
|
|
||||||
filename = os.path.basename(__file__).split('.py')[0]
|
filename = os.path.basename(__file__).split('.py')[0]
|
||||||
logger = logging.getLogger(filename)
|
logger = logging.getLogger(filename)
|
||||||
logger.setLevel(level=logging.INFO)
|
logger.setLevel(level=logging.ERROR)
|
||||||
|
|
||||||
class rss(inkycal_module):
|
class RSS(inkycal_module):
|
||||||
"""RSS class
|
"""RSS class
|
||||||
parses rss feeds from given urls
|
parses rss/atom feeds from given urls
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, section_size, section_config):
|
def __init__(self, section_size, section_config):
|
||||||
"""Initialize inkycal_rss module"""
|
"""Initialize inkycal_rss module"""
|
||||||
|
|
||||||
super().__init__(section_size, section_config)
|
super().__init__(section_size, section_config)
|
||||||
|
|
||||||
# Module specific parameters
|
# Module specific parameters
|
||||||
@ -130,20 +130,5 @@ class rss(inkycal_module):
|
|||||||
im_black.save(images+self.name+'.png', 'PNG')
|
im_black.save(images+self.name+'.png', 'PNG')
|
||||||
im_colour.save(images+self.name+'_colour.png', 'PNG')
|
im_colour.save(images+self.name+'_colour.png', 'PNG')
|
||||||
|
|
||||||
|
|
||||||
##def main():
|
|
||||||
## print('Main got executed just now~~~~')
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
print('running {0} in standalone/debug mode'.format(filename))
|
print('running {0} in standalone/debug mode'.format(filename))
|
||||||
##else:
|
|
||||||
## print(filename, 'imported')
|
|
||||||
## main()
|
|
||||||
|
|
||||||
##a = rss(size, config)
|
|
||||||
##a.generate_image()
|
|
||||||
##size = (384, 160)
|
|
||||||
##config = {'rss_urls': ['http://feeds.bbci.co.uk/news/world/rss.xml#']}
|
|
||||||
#config = {'rss_urls': ['http://www.tagesschau.de/xml/atom/']}
|
|
||||||
#https://www.tagesschau.de/xml/rss2 -> problematic feed
|
|
||||||
|
@ -4,12 +4,14 @@
|
|||||||
Weather module for Inky-Calendar software.
|
Weather module for Inky-Calendar software.
|
||||||
Copyright by aceisace
|
Copyright by aceisace
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from inkycal.modules.template import inkycal_module
|
from inkycal.modules.template import inkycal_module
|
||||||
from inkycal.custom import *
|
from inkycal.custom import *
|
||||||
|
|
||||||
import math, decimal
|
import math, decimal
|
||||||
import arrow
|
import arrow
|
||||||
from locale import getdefaultlocale as sys_locale
|
from locale import getdefaultlocale as sys_locale
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import pyowm
|
import pyowm
|
||||||
except ImportError:
|
except ImportError:
|
||||||
@ -18,16 +20,16 @@ except ImportError:
|
|||||||
|
|
||||||
filename = os.path.basename(__file__).split('.py')[0]
|
filename = os.path.basename(__file__).split('.py')[0]
|
||||||
logger = logging.getLogger(filename)
|
logger = logging.getLogger(filename)
|
||||||
logger.setLevel(level=logging.INFO)
|
logger.setLevel(level=logging.ERROR)
|
||||||
|
|
||||||
class weather(inkycal_module):
|
class Weather(inkycal_module):
|
||||||
"""weather class
|
"""Weather class
|
||||||
parses weather details from openweathermap
|
parses weather details from openweathermap
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, section_size, section_config):
|
def __init__(self, section_size, section_config):
|
||||||
"""Initialize inkycal_weather module"""
|
"""Initialize inkycal_weather module"""
|
||||||
|
|
||||||
super().__init__(section_size, section_config)
|
super().__init__(section_size, section_config)
|
||||||
|
|
||||||
# Module specific parameters
|
# Module specific parameters
|
||||||
@ -323,7 +325,7 @@ class weather(inkycal_module):
|
|||||||
}
|
}
|
||||||
|
|
||||||
for key,val in fc_data.items():
|
for key,val in fc_data.items():
|
||||||
logger.info((key,val))
|
logger.debug((key,val))
|
||||||
|
|
||||||
# Get some current weather details
|
# Get some current weather details
|
||||||
temperature = '{}°'.format(weather.get_temperature(unit=temp_unit)['temp'])
|
temperature = '{}°'.format(weather.get_temperature(unit=temp_unit)['temp'])
|
||||||
@ -426,10 +428,3 @@ class weather(inkycal_module):
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
print('running {0} in standalone mode'.format(filename))
|
print('running {0} in standalone mode'.format(filename))
|
||||||
|
|
||||||
|
|
||||||
##config = {'api_key': 'secret', 'location': 'Stuttgart, DE'}
|
|
||||||
##size = (384,80)
|
|
||||||
##a = weather(size, config)
|
|
||||||
##a.generate_image()
|
|
||||||
# Debug Data (not for production use!)
|
|
||||||
|
Loading…
Reference in New Issue
Block a user