Minor code improvements
This commit is contained in:
		| @@ -4,6 +4,15 @@ | ||||
| iCalendar (parsing) module for Inky-Calendar Project | ||||
| Copyright by aceisace | ||||
| """ | ||||
| import urllib | ||||
| import arrow | ||||
| from urllib.request import urlopen | ||||
| import logging | ||||
| import time | ||||
| import os | ||||
|  | ||||
| import recurring_ical_events | ||||
| from icalendar import Calendar | ||||
|  | ||||
| """               ---info about iCalendars--- | ||||
| • all day events start at midnight, ending at midnight of the next day | ||||
| @@ -13,24 +22,6 @@ Copyright by aceisace | ||||
|   local timezone. Converting all-day events to local timezone is a problem! | ||||
| """ | ||||
|  | ||||
| import arrow | ||||
| from urllib.request import urlopen | ||||
| import logging | ||||
| import time | ||||
| import os | ||||
|  | ||||
| try: | ||||
|     import recurring_ical_events | ||||
| except ModuleNotFoundError: | ||||
|     print('recurring-ical-events library could not be found.') | ||||
|     print('Please install this with: pip3 install recurring-ical-events') | ||||
|  | ||||
| try: | ||||
|     from icalendar import Calendar, Event | ||||
| except ModuleNotFoundError: | ||||
|     print('icalendar library could not be found. Please install this with:') | ||||
|     print('pip3 install icalendar') | ||||
|  | ||||
| filename = os.path.basename(__file__).split('.py')[0] | ||||
| logger = logging.getLogger(filename) | ||||
|  | ||||
| @@ -49,20 +40,6 @@ class iCalendar: | ||||
|         add username and password to access protected files | ||||
|         """ | ||||
|  | ||||
|         if type(url) == list: | ||||
|             if (username == None) and (password == None): | ||||
|                 ical = [Calendar.from_ical(str(urlopen(_).read().decode())) | ||||
|                         for _ in url] | ||||
|             else: | ||||
|                 ical = [auth_ical(each_url, username, password) for each_url in url] | ||||
|         elif type(url) == str: | ||||
|             if (username == None) and (password == None): | ||||
|                 ical = [Calendar.from_ical(str(urlopen(url).read().decode()))] | ||||
|             else: | ||||
|                 ical = [auth_ical(url, username, password)] | ||||
|         else: | ||||
|             raise Exception(f"Input: '{url}' is not a string or list!") | ||||
|  | ||||
|         def auth_ical(url, uname, passwd): | ||||
|             """Authorisation helper for protected ical files""" | ||||
|  | ||||
| @@ -74,6 +51,20 @@ class iCalendar: | ||||
|             ical = Calendar.from_ical(str(opener.open(url).read().decode())) | ||||
|             return ical | ||||
|  | ||||
|         if type(url) == list: | ||||
|             if (username is None) and (password is None): | ||||
|                 ical = [Calendar.from_ical(str(urlopen(_).read().decode())) | ||||
|                         for _ in url] | ||||
|             else: | ||||
|                 ical = [auth_ical(each_url, username, password) for each_url in url] | ||||
|         elif type(url) == str: | ||||
|             if (username is None) and (password is None): | ||||
|                 ical = [Calendar.from_ical(str(urlopen(url).read().decode()))] | ||||
|             else: | ||||
|                 ical = [auth_ical(url, username, password)] | ||||
|         else: | ||||
|             raise Exception(f"Input: '{url}' is not a string or list!") | ||||
|  | ||||
|         # Add the parsed icalendar/s to the self.icalendars list | ||||
|         if ical: self.icalendars += ical | ||||
|         logger.info('loaded iCalendars from URLs') | ||||
| @@ -106,7 +97,7 @@ class iCalendar: | ||||
|         Returns a list of events sorted by date | ||||
|         """ | ||||
|         if type(timeline_start) == arrow.arrow.Arrow: | ||||
|             if timezone == None: | ||||
|             if timezone is None: | ||||
|                 timezone = 'UTC' | ||||
|             t_start = timeline_start | ||||
|             t_end = timeline_end | ||||
|   | ||||
		Reference in New Issue
	
	Block a user