diff options
| -rw-r--r-- | aggro.py | 4 | ||||
| -rw-r--r-- | app/DatabaseManager.py | 6 | ||||
| -rw-r--r-- | app/PluginManager.py | 2 | ||||
| -rw-r--r-- | app/server.py | 13 | ||||
| -rw-r--r-- | app/utils.py | 2 | ||||
| -rw-r--r-- | plugins/ConcatPlugin.py | 4 | ||||
| -rw-r--r-- | plugins/DigestPlugin.py | 4 | ||||
| -rw-r--r-- | plugins/FacebookSourcePlugin.py | 5 | ||||
| -rw-r--r-- | plugins/FeedSinkPlugin.py | 3 | ||||
| -rw-r--r-- | plugins/FeedSourcePlugin.py | 20 |
10 files changed, 33 insertions, 30 deletions
@@ -51,7 +51,7 @@ if __name__ == "__main__": aggrofile_hash_q = Query().key == "aggrofile_hash" aggrofile_stored_hash: str | None if database_manager.meta_info.contains(aggrofile_hash_q): - aggrofile_stored_hash_obj: Any = database_manager.meta_info.get( # type: ignore + aggrofile_stored_hash_obj: Any = database_manager.meta_info.get( aggrofile_hash_q ) aggrofile_stored_hash = aggrofile_stored_hash_obj["value"] @@ -69,7 +69,7 @@ if __name__ == "__main__": print("Aggrofile has been changed. Truncating plugin states in DB...") database_manager.plugin_states.truncate() - database_manager.meta_info.upsert( # type: ignore + database_manager.meta_info.upsert( {"key": "aggrofile_hash", "value": aggrofile_current_hash_dig}, aggrofile_hash_q, ) diff --git a/app/DatabaseManager.py b/app/DatabaseManager.py index 0ef3b49..c890354 100644 --- a/app/DatabaseManager.py +++ b/app/DatabaseManager.py @@ -9,9 +9,9 @@ class DatabaseManager: def setup(self, config: AggroConfig): self.db = TinyDB(config.db_path) - self.plugin_states = self.db.table("plugin_states") # type: ignore - self.feeds = self.db.table("feeds") # type: ignore - self.meta_info = self.db.table("meta_info") # type: ignore + self.plugin_states = self.db.table("plugin_states") + self.feeds = self.db.table("feeds") + self.meta_info = self.db.table("meta_info") database_manager: DatabaseManager = DatabaseManager() diff --git a/app/PluginManager.py b/app/PluginManager.py index 03535cc..cd810b0 100644 --- a/app/PluginManager.py +++ b/app/PluginManager.py @@ -52,7 +52,7 @@ class PluginManager: if schedule_expr is not None: job: schedule.Job = eval(schedule_expr, {"schedule": schedule}) - job.do(self.run_plugin_job, id, None) # type: ignore + job.do(self.run_plugin_job, id, None) self.scheduled_plugin_ids.append(id) PluginClass: Any = self._plugins[plugin_name] diff --git a/app/server.py b/app/server.py index 3ff981e..038760e 100644 --- a/app/server.py +++ b/app/server.py @@ -1,5 +1,5 @@ -from typing import Any -import bottle # type: ignore +from typing import Any, cast +import bottle from tinydb import Query from app.DatabaseManager import database_manager @@ -19,7 +19,10 @@ def feed_to_tr(feed: dict[str, str]) -> str: def feeds_to_table(feeds: list[dict[str, str]]) -> str: if len(feeds) == 0: - return "No feeds (yet). Add feeds by defining them in your Aggrofile. If you did that already, you might have to wait a bit for the data to propagate." + return ( + "No feeds (yet). Add feeds by defining them in your Aggrofile. " + + "If you did that already, you might have to wait a bit for the data to propagate." + ) trs: list[str] = [feed_to_tr(feed) for feed in feeds] thead = f"<thead><tr><td>Feed</td><td>Last build date</td></tr></thead>" @@ -34,7 +37,7 @@ def index(): Q = Query() _feeds = database_manager.feeds.all() - feeds: list[dict[str, str]] = _feeds # type: ignore + feeds = cast(list[dict[str, str]], _feeds) bottle.response.set_header("content-type", "text/html") page = f""" @@ -106,7 +109,7 @@ def feed(feed_id: str): bottle.response.set_header("content-type", "application/xml") - feed: Any = res[0] # type: ignore + feed: Any = res[0] feed_xml: str = feed["feed_xml"] return feed_xml diff --git a/app/utils.py b/app/utils.py index f0c175f..6deb147 100644 --- a/app/utils.py +++ b/app/utils.py @@ -10,7 +10,7 @@ ItemDict: TypeAlias = dict[str, ItemDictValue] def evaluate_env_ref(v: Any) -> str: if type(v) == str and v.startswith("${") and v.endswith("}"): - return os.environ[v[2:-1]] # type: ignore + return os.environ[v[2:-1]] else: return v diff --git a/plugins/ConcatPlugin.py b/plugins/ConcatPlugin.py index 3c48728..71bbc60 100644 --- a/plugins/ConcatPlugin.py +++ b/plugins/ConcatPlugin.py @@ -25,7 +25,7 @@ class Plugin(PluginInterface): raise Exception(f"{self.log_prefix} can not be scheduled") plugin_state_q = Query().plugin_id == self.id - _d: Any = database_manager.plugin_states.get(plugin_state_q) # type: ignore + _d: Any = database_manager.plugin_states.get(plugin_state_q) data: dict[str, Any] = ( _d if _d is not None else {"plugin_id": self.id, "state": {}} ) @@ -34,7 +34,7 @@ class Plugin(PluginInterface): items_as_dicts = list(map(item_to_dict, items)) state[source_id] = items_as_dicts - database_manager.plugin_states.upsert( # type: ignore + database_manager.plugin_states.upsert( {"plugin_id": self.id, "state": state}, plugin_state_q ) diff --git a/plugins/DigestPlugin.py b/plugins/DigestPlugin.py index 3675264..8f2b745 100644 --- a/plugins/DigestPlugin.py +++ b/plugins/DigestPlugin.py @@ -117,7 +117,7 @@ class Plugin(PluginInterface): raise Exception(f"{self.log_prefix} can not be scheduled") plugin_state_q = Query().plugin_id == self.id - _d: Any = database_manager.plugin_states.get(plugin_state_q) # type: ignore + _d: Any = database_manager.plugin_states.get(plugin_state_q) data: dict[str, Any] = ( _d if _d is not None else {"plugin_id": self.id, "state": {}} ) @@ -126,7 +126,7 @@ class Plugin(PluginInterface): items_as_dicts = list(map(item_to_dict, items)) state[source_id] = items_as_dicts - database_manager.plugin_states.upsert( # type: ignore + database_manager.plugin_states.upsert( {"plugin_id": self.id, "state": state}, plugin_state_q ) diff --git a/plugins/FacebookSourcePlugin.py b/plugins/FacebookSourcePlugin.py index ea33615..9e91f84 100644 --- a/plugins/FacebookSourcePlugin.py +++ b/plugins/FacebookSourcePlugin.py @@ -1,5 +1,6 @@ import random import time +from typing import cast import requests import re import urllib.parse @@ -162,9 +163,9 @@ def fetch_page_posts(email: str, password: str, page_id: str, limit: int) -> lis posts = timeline.select("section > article") for post in posts: - time_tag: Tag = post.find("abbr") # type: ignore + time_tag = cast(Tag, post.find("abbr")) - link_tag: Tag | None = post.find("a", string="Full Story") # type: ignore + link_tag = cast(Tag | None, post.find("a", string="Full Story")) if link_tag is not None: link = f"{base_url}{link_tag['href']}" # drop tracking parameters that change at a whim diff --git a/plugins/FeedSinkPlugin.py b/plugins/FeedSinkPlugin.py index a49e0ae..d72127f 100644 --- a/plugins/FeedSinkPlugin.py +++ b/plugins/FeedSinkPlugin.py @@ -119,7 +119,6 @@ class Plugin(PluginInterface): ret = self.build_xml(items) - Q = Query() - database_manager.feeds.upsert(ret, Q.feed_id == self.feed_id) # type: ignore + database_manager.feeds.upsert(ret, Query().feed_id == self.feed_id) self.log(f'build complete for feed id "{self.feed_id}"') return [] diff --git a/plugins/FeedSourcePlugin.py b/plugins/FeedSourcePlugin.py index 2b27ade..2c5a20d 100644 --- a/plugins/FeedSourcePlugin.py +++ b/plugins/FeedSourcePlugin.py @@ -1,7 +1,7 @@ -import feedparser # type: ignore +import feedparser import time from datetime import datetime, timezone -from typing import Any +from typing import Any, cast from app.Item import Item, ItemEnclosure, ItemGUID, ItemMediaContent from app.PluginInterface import Params, PluginInterface from app.utils import ItemDict, get_config @@ -28,7 +28,7 @@ class Plugin(PluginInterface): ) self.log(f'fetching feed "{self.feed_url}"') - feed: Any = feedparser.parse(self.feed_url) # type: ignore + feed: Any = feedparser.parse(self.feed_url) result_items: list[Item] = [] if "bozo" in feed and feed["bozo"] == 1: raise Exception(f"{self.log_prefix} malformed XML in feed {self.feed_url}") @@ -46,7 +46,7 @@ class Plugin(PluginInterface): d: ItemDict = _d item_enclosures: list[ItemEnclosure] = [] for _e in d["enclosures"]: - e: dict[str, str] = _e # type: ignore + e = cast(dict[str, str], _e) item_enclosures.append( ItemEnclosure( length=e["length"], @@ -63,17 +63,17 @@ class Plugin(PluginInterface): else datetime_1970 ) - link: str = d["link"] # type: ignore + link = cast(str, d["link"]) result_items.append( Item( - title=d.get("title", None), # type: ignore + title=cast(str, d.get("title", None)), link=link, - description=d.get("description", None), # type: ignore - author=d.get("author", None), # type: ignore + description=cast(str, d.get("description", None)), + author=cast(str, d.get("author", None)), pub_date=published_datetime, - category=d.get("category", None), # type: ignore - comments=d.get("comments"), # type: ignore + category=cast(str, d.get("category", None)), + comments=cast(str, d.get("comments")), enclosures=item_enclosures, guid=ItemGUID(link, is_perma_link=True), media_content=media_content, |
