aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2023-09-10 11:19:57 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2023-09-10 19:01:00 +0300
commitbead581a92c51ab1e7f18161972d73c6ffa3eb3f (patch)
treed32d3b6ac80c3b8260ccc8045473b5dddcdbba59 /plugins
parent0b1712bf34ddd0bfe54a0f19eab7ef7c31e7f444 (diff)
Add dotenv and env var in config support
Diffstat (limited to 'plugins')
-rw-r--r--plugins/DigestPlugin.py16
-rw-r--r--plugins/FacebookSourcePlugin.py10
-rw-r--r--plugins/FeedSinkPlugin.py10
-rw-r--r--plugins/FeedSourcePlugin.py4
-rw-r--r--plugins/FilterPlugin.py4
-rw-r--r--plugins/MapPlugin.py4
6 files changed, 25 insertions, 23 deletions
diff --git a/plugins/DigestPlugin.py b/plugins/DigestPlugin.py
index d6e8eb4..b56af0d 100644
--- a/plugins/DigestPlugin.py
+++ b/plugins/DigestPlugin.py
@@ -7,7 +7,7 @@ from tinydb import Query
from app.Item import Item
from app.PluginInterface import Params, PluginInterface
from app.DatabaseManager import database_manager
-from app.utils import dict_to_item, get_param, item_to_dict
+from app.utils import dict_to_item, get_config_or_default, item_to_dict, get_config
def add_days(start: datetime, days: int):
@@ -99,14 +99,16 @@ def parse_interval(interval: str) -> tuple[int, str]:
class Plugin(PluginInterface):
def __init__(self, id: str, params: Params) -> None:
super().__init__(id, params)
- self.digest_title_prefix = get_param("digest_title_prefix", params)
- self.digest_description = params.get("digest_description", None)
- self.digest_link = params.get("digest_link", None)
- from_datatime_str = get_param("from_datetime", params)
+ self.digest_title_prefix = get_config(params, "digest_title_prefix")
+ self.digest_description = get_config_or_default(
+ params, "digest_description", None
+ )
+ self.digest_link = get_config_or_default(params, "digest_link", None)
+ from_datatime_str = get_config(params, "from_datetime")
self.from_datetime = datetime.fromisoformat(from_datatime_str)
- interval = get_param("interval", params)
+ interval = get_config(params, "interval")
self.interval_pair = parse_interval(interval)
- self.max_length = int(params.get("max_length", "1000"))
+ self.max_length = int(get_config_or_default(params, "max_length", "1000"))
print(f"[DigestPlugin#{self.id}] initialized")
def process(self, source_id: str | None, items: list[Item]) -> list[Item]:
diff --git a/plugins/FacebookSourcePlugin.py b/plugins/FacebookSourcePlugin.py
index d4f6f16..e7ce1ab 100644
--- a/plugins/FacebookSourcePlugin.py
+++ b/plugins/FacebookSourcePlugin.py
@@ -7,7 +7,7 @@ from datetime import datetime, timedelta
from bs4 import BeautifulSoup, Tag
from app.Item import Item
from app.PluginInterface import Params, PluginInterface
-from app.utils import get_param
+from app.utils import get_config, get_config_or_default
def replace_lm_links(text: str) -> str:
@@ -201,10 +201,10 @@ def fetch_page_posts(email: str, password: str, page_id: str, limit: int) -> lis
class Plugin(PluginInterface):
def __init__(self, id: str, params: Params) -> None:
super().__init__(id, params)
- self.login_email = get_param("login_email", params)
- self.login_password = get_param("login_password", params)
- self.page_id = get_param("page_id", params)
- self.limit = int(params.get("limit", "10"))
+ self.login_email = get_config(params, "login_email")
+ self.login_password = get_config(params, "login_password")
+ self.page_id = get_config(params, "page_id")
+ self.limit = int(get_config_or_default(params, "limit", "10"))
print(f"[FacebookSourcePlugin#{self.id}] initialized")
diff --git a/plugins/FeedSinkPlugin.py b/plugins/FeedSinkPlugin.py
index 02e20e9..623bb49 100644
--- a/plugins/FeedSinkPlugin.py
+++ b/plugins/FeedSinkPlugin.py
@@ -5,17 +5,17 @@ from tinydb import Query
from app.Item import Item
from app.PluginInterface import PluginInterface
-from app.utils import get_param
+from app.utils import get_config, get_config_or_default
from app.DatabaseManager import database_manager
class Plugin(PluginInterface):
def __init__(self, id: str, params: dict[str, Any]) -> None:
super().__init__(id, params)
- self.feed_id: str = get_param("feed_id", params)
- self.feed_title: str = get_param("feed_title", params)
- self.feed_link: str | None = params.get("feed_link", None)
- self.feed_description: str = get_param("feed_description", params)
+ self.feed_id: str = get_config(params, "feed_id")
+ self.feed_title: str = get_config(params, "feed_title")
+ self.feed_link: str | None = get_config_or_default(params, "feed_link", None)
+ self.feed_description: str = get_config(params, "feed_description")
print(f"[FeedSinkPlugin#{self.id}] initialized")
print(f"[FeedSinkPlugin#{self.id}] feed will be served at path /{self.feed_id}")
diff --git a/plugins/FeedSourcePlugin.py b/plugins/FeedSourcePlugin.py
index 2f0aa94..fd27081 100644
--- a/plugins/FeedSourcePlugin.py
+++ b/plugins/FeedSourcePlugin.py
@@ -4,7 +4,7 @@ from datetime import datetime, timezone
from typing import Any
from app.Item import Item, ItemEnclosure
from app.PluginInterface import Params, PluginInterface
-from app.utils import ItemDict, get_param
+from app.utils import ItemDict, get_config
def struct_time_to_utc_datetime(struct_time: time.struct_time) -> datetime:
@@ -17,7 +17,7 @@ def struct_time_to_utc_datetime(struct_time: time.struct_time) -> datetime:
class Plugin(PluginInterface):
def __init__(self, id: str, params: Params) -> None:
super().__init__(id, params)
- self.feed_url: str = get_param("feed_url", params)
+ self.feed_url: str = get_config(params, "feed_url")
print(f"[FeedSourcePlugin#{self.id}] initialized")
diff --git a/plugins/FilterPlugin.py b/plugins/FilterPlugin.py
index 0f2b500..11cbc68 100644
--- a/plugins/FilterPlugin.py
+++ b/plugins/FilterPlugin.py
@@ -1,12 +1,12 @@
from app.Item import Item
from app.PluginInterface import Params, PluginInterface
-from app.utils import get_param
+from app.utils import get_config
class Plugin(PluginInterface):
def __init__(self, id: str, params: Params) -> None:
super().__init__(id, params)
- self.filter_expr: str = get_param("filter_expr", params)
+ self.filter_expr: str = get_config(params, "filter_expr")
print(f"[FilterPlugin#{self.id}] initialized")
def process(self, source_id: str | None, items: list[Item]) -> list[Item]:
diff --git a/plugins/MapPlugin.py b/plugins/MapPlugin.py
index 8b5dae7..d924f2f 100644
--- a/plugins/MapPlugin.py
+++ b/plugins/MapPlugin.py
@@ -2,7 +2,7 @@ from dataclasses import fields
from typing import Any
from app.Item import Item
from app.PluginInterface import Params, PluginInterface
-from app.utils import get_param
+from app.utils import get_config
def set_field(item: Item, k: str, v: Any):
@@ -17,7 +17,7 @@ def set_field(item: Item, k: str, v: Any):
class Plugin(PluginInterface):
def __init__(self, id: str, params: Params) -> None:
super().__init__(id, params)
- self.map_expr: str = get_param("map_expr", params)
+ self.map_expr: str = get_config(params, "map_expr")
print(f"[MapItemPlugin#{self.id}] initialized")
def process(self, source_id: str | None, items: list[Item]) -> list[Item]: