bump requirements and adapt todoist module accordingly
This commit is contained in:
parent
49741f9618
commit
9dff6e88cf
@ -111,6 +111,10 @@ class Feeds(inkycal_module):
|
||||
if "summary" in posts:
|
||||
summary = posts["summary"]
|
||||
parsed_feeds.append(f"•{posts.title}: {re.sub('<[^<]+?>', '', posts.summary)}")
|
||||
# if "description" in posts:
|
||||
|
||||
parsed_feeds = [i.split("\n") for i in parsed_feeds][0]
|
||||
parsed_feeds = [i for i in parsed_feeds if i]
|
||||
|
||||
self._parsed_feeds = parsed_feeds
|
||||
|
||||
|
@ -1,14 +1,15 @@
|
||||
#!python3
|
||||
|
||||
"""
|
||||
todoist module for Inky-Calendar Project
|
||||
Inkycal Todoist Module
|
||||
Copyright by aceisace
|
||||
"""
|
||||
|
||||
from inkycal.modules.template import inkycal_module
|
||||
from inkycal.custom import *
|
||||
|
||||
import todoist
|
||||
from todoist_api_python.api_async import TodoistAPIAsync
|
||||
from todoist_api_python.api import TodoistAPI
|
||||
|
||||
filename = os.path.basename(__file__).split('.py')[0]
|
||||
logger = logging.getLogger(filename)
|
||||
@ -16,7 +17,7 @@ logger = logging.getLogger(filename)
|
||||
|
||||
class Todoist(inkycal_module):
|
||||
"""Todoist api class
|
||||
parses todos from api-key
|
||||
parses todo's from api-key
|
||||
"""
|
||||
|
||||
name = "Todoist API - show your todos from todoist"
|
||||
@ -55,8 +56,7 @@ class Todoist(inkycal_module):
|
||||
else:
|
||||
self.project_filter = config['project_filter']
|
||||
|
||||
self._api = todoist.TodoistAPI(config['api_key'])
|
||||
self._api.sync()
|
||||
self._api = TodoistAPI(config['api_key'])
|
||||
|
||||
# give an OK message
|
||||
print(f'{filename} loaded')
|
||||
@ -82,7 +82,6 @@ class Todoist(inkycal_module):
|
||||
# Check if internet is available
|
||||
if internet_available():
|
||||
logger.info('Connection test passed')
|
||||
self._api.sync()
|
||||
else:
|
||||
raise NetworkNotReachableError
|
||||
|
||||
@ -100,44 +99,40 @@ class Todoist(inkycal_module):
|
||||
(0, spacing_top + _ * line_height) for _ in range(max_lines)]
|
||||
|
||||
# Get all projects by name and id
|
||||
all_projects = {project['id']: project['name']
|
||||
for project in self._api.projects.all()}
|
||||
all_projects = self._api.get_projects()
|
||||
filtered_project_ids_and_names = {project.id: project.name for project in all_projects}
|
||||
all_active_tasks = self._api.get_tasks()
|
||||
|
||||
logger.debug(f"all_projects: {all_projects}")
|
||||
|
||||
# Filter entries in all_projects if filter was given
|
||||
if self.project_filter:
|
||||
for project_id in list(all_projects):
|
||||
if all_projects[project_id] not in self.project_filter:
|
||||
del all_projects[project_id]
|
||||
filtered_projects = [project for project in all_projects if project.name in self.project_filter]
|
||||
filtered_project_ids_and_names = {project.id: project.name for project in filtered_projects}
|
||||
filtered_project_ids = [project for project in filtered_project_ids_and_names]
|
||||
logger.debug(f"filtered projects: {filtered_projects}")
|
||||
|
||||
logger.debug(f"all_project: {all_projects}")
|
||||
|
||||
# If filter was activated and no roject was found with that name,
|
||||
# If filter was activated and no project was found with that name,
|
||||
# raise an exception to avoid showing a blank image
|
||||
if all_projects == {}:
|
||||
if not filtered_projects:
|
||||
logger.error('No project found from project filter!')
|
||||
logger.error('Please double check spellings in project_filter')
|
||||
raise Exception('No matching project found in filter. Please '
|
||||
'double check spellings in project_filter or leave'
|
||||
'empty')
|
||||
|
||||
# Create single-use generator to filter undone and non-deleted tasks
|
||||
tasks = (task.data for task in self._api.state['items'] if
|
||||
task['checked'] == 0 and task['is_deleted'] == 0)
|
||||
# filtered version of all active tasks
|
||||
all_active_tasks = [task for task in all_active_tasks if task.project_id in filtered_project_ids]
|
||||
|
||||
# Simplify the tasks for faster processing
|
||||
simplified = [
|
||||
{
|
||||
'name': task['content'],
|
||||
'due': task['due']['string'] if task['due'] is not None else "",
|
||||
'priority': task['priority'],
|
||||
'project': all_projects[task['project_id']] if task['project_id'] in all_projects else "deleted"
|
||||
'name': task.content,
|
||||
'due': task.due,
|
||||
'priority': task.priority,
|
||||
'project': filtered_project_ids_and_names[task.project_id]
|
||||
}
|
||||
for task in tasks]
|
||||
|
||||
# remove groups that have been deleted
|
||||
simplified = [task for task in simplified if task['project'] != "deleted"]
|
||||
for task in all_active_tasks
|
||||
]
|
||||
|
||||
logger.debug(f'simplified: {simplified}')
|
||||
|
||||
|
@ -6,7 +6,6 @@ feedparser==6.0.8
|
||||
fonttools==4.32.0
|
||||
geojson==2.5.0
|
||||
icalendar==4.0.9
|
||||
idna==3.3
|
||||
kiwisolver==1.4.2
|
||||
lxml==4.8.0
|
||||
matplotlib==3.5.1
|
||||
@ -14,7 +13,7 @@ multitasking==0.0.10
|
||||
numpy==1.22.3
|
||||
packaging==21.3
|
||||
pandas==1.3.5
|
||||
Pillow==9.1.0
|
||||
Pillow==9.2.0
|
||||
pyowm==3.3.0
|
||||
pyparsing==3.0.7
|
||||
PySocks==1.7.1
|
||||
@ -26,7 +25,7 @@ RPi.GPIO==0.7.1
|
||||
sgmllib3k==1.0.0
|
||||
six==1.16.0
|
||||
spidev==3.5
|
||||
todoist-python==8.1.3
|
||||
todoist-api-python==2.0.0
|
||||
typing_extensions==4.1.1
|
||||
urllib3==1.26.9
|
||||
yfinance==0.1.70
|
Loading…
Reference in New Issue
Block a user