diff --git a/requirements.txt b/requirements.txt index e69de29..6b62a17 100644 --- a/requirements.txt +++ b/requirements.txt @@ -0,0 +1,2 @@ +todoist-python==8.1.1 +urlextract==0.14.0 diff --git a/scripts/run.sh b/scripts/run.sh index 2aab8c2..5accbd0 100755 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -4,4 +4,4 @@ set -e PATH=env/bin:${PATH} -python3 todoist-github/cli.py +python3 -m todoist-github diff --git a/todoist-github/__init__.py b/todoist-github/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/todoist-github/__main__.py b/todoist-github/__main__.py new file mode 100644 index 0000000..4e28416 --- /dev/null +++ b/todoist-github/__main__.py @@ -0,0 +1,3 @@ +from .cli import main + +main() diff --git a/todoist-github/cli.py b/todoist-github/cli.py index e5a0d9b..767f68b 100755 --- a/todoist-github/cli.py +++ b/todoist-github/cli.py @@ -1 +1,22 @@ #!/usr/bin/env python3 +from .clients import todoist +from .utils import get_github_task + + +def get_relevant_todoist_tasks(): + todoist.items.sync() + tasks = {} + for task in todoist.items.all(): + if get_github_task(task["content"]): + tasks[task['content']] = task + return tasks + + +def main(): + todoist_tasks = get_relevant_todoist_tasks() + + + + +if __name__ == "__main__": + main() diff --git a/todoist-github/clients.py b/todoist-github/clients.py new file mode 100644 index 0000000..5a31eec --- /dev/null +++ b/todoist-github/clients.py @@ -0,0 +1,4 @@ +from todoist import TodoistAPI +import os + +todoist = TodoistAPI(os.environ["TODOIST_TOKEN"]) diff --git a/todoist-github/utils.py b/todoist-github/utils.py new file mode 100644 index 0000000..6eb62ce --- /dev/null +++ b/todoist-github/utils.py @@ -0,0 +1,14 @@ +from typing import Optional +from urlextract import URLExtract +from urllib.parse import urlparse + + +extractor = URLExtract() + + +def get_github_task(content) -> Optional[str]: + if "github" not in content.lower(): + return None + for url in extractor.gen_urls(content): + if urlparse(url).netloc == "github.com": + return url