Compare commits

...

3 commits

Author SHA1 Message Date
A.M. Rowsell
686decaccf
docker: improved Dockerfile, changed logging 2025-03-14 12:04:40 -04:00
A.M. Rowsell
b22ce29ae1
Merge branch 'main' into docker 2025-03-06 20:16:06 -05:00
A.M. Rowsell
457e2c3315
feat: rewrote get_description to allow extra text
Now if you want to add something to the end of the description,
you can pass it via the addons parameter. Also moved a line
that was duplicated to reduce the function length.
2025-03-06 20:11:51 -05:00
2 changed files with 22 additions and 10 deletions

View file

@ -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" ]
CMD [ "python", "discorss.py" ]
LABEL author="A.M. Rowsell <https://frzn.dev/~amr>"

View file

@ -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()