diff --git a/Dockerfile b/Dockerfile index 5719a30..cae079c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,19 @@ +# DiscoRSS Dockerfile +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + FROM python:3.13.2-alpine3.21 WORKDIR /usr/src/app COPY discorss.py ./ -COPY discorss.conf /etc/ +RUN mkdir /root/.config +RUN mkdir /root/.config/discorss +COPY discorss.conf /root/.config/discorss RUN pip install --no-cache-dir requests feedparser -CMD [ "python", "discorss.py" ] \ No newline at end of file +CMD [ "python", "discorss.py" ] + +LABEL author="A.M. Rowsell " diff --git a/discorss.py b/discorss.py index 2d3afd0..5ad3ad0 100755 --- a/discorss.py +++ b/discorss.py @@ -8,7 +8,7 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. # DiscoRSS: A simple RSS feed reader for Discord. Takes RSS feeds and then sends them to -# webhooks. Intended to run using systemd timers. +# webhooks. Intended to run using systemd timers, or as a Docker container. import requests import feedparser @@ -53,7 +53,6 @@ def get_description(feed, length=250, min_length=150, addons=None): break else: length -= 1 - desc = temporary_string[:length] except KeyError: temporary_string = str(feed["description"]) temporary_string = html_filter.sub("", temporary_string) @@ -62,7 +61,10 @@ def get_description(feed, length=250, min_length=150, addons=None): break else: length -= 1 - desc = temporary_string[:length] + + desc = temporary_string[:length] + if addons is not None: + desc = desc + str(addons) return desc @@ -101,7 +103,7 @@ def setupPaths(): logging.basicConfig( filename=str(log_dir + log_file_path), encoding="utf-8", - level=logging.INFO, + level=logging.WARNING, datefmt="%m/%d/%Y %H:%M:%S", format="%(asctime)s: %(levelname)s: %(message)s", ) @@ -136,7 +138,7 @@ def main(): else: continue if bad_time is True: - logger.warning( + logger.info( "Feed %s doesn't supply a published time, using updated time instead", hook["name"], ) @@ -210,9 +212,10 @@ def main(): if __name__ == "__main__": - if os.environ["INVOCATION_ID"]: - main() - else: + try: + if os.environ["INVOCATION_ID"]: + main() + except KeyError: try: while True: main()