Compare commits

..

No commits in common. "686decaccf1501f5d3d5ec80852e4a64b93098f6" and "5c8f6b563ab8a9107745cc96a97aa4471c1761e8" have entirely different histories.

2 changed files with 10 additions and 22 deletions

View file

@ -1,19 +1,10 @@
# 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 FROM python:3.13.2-alpine3.21
WORKDIR /usr/src/app WORKDIR /usr/src/app
COPY discorss.py ./ COPY discorss.py ./
RUN mkdir /root/.config COPY discorss.conf /etc/
RUN mkdir /root/.config/discorss
COPY discorss.conf /root/.config/discorss
RUN pip install --no-cache-dir requests feedparser 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/. # 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 # DiscoRSS: A simple RSS feed reader for Discord. Takes RSS feeds and then sends them to
# webhooks. Intended to run using systemd timers, or as a Docker container. # webhooks. Intended to run using systemd timers.
import requests import requests
import feedparser import feedparser
@ -53,6 +53,7 @@ def get_description(feed, length=250, min_length=150, addons=None):
break break
else: else:
length -= 1 length -= 1
desc = temporary_string[:length]
except KeyError: except KeyError:
temporary_string = str(feed["description"]) temporary_string = str(feed["description"])
temporary_string = html_filter.sub("", temporary_string) temporary_string = html_filter.sub("", temporary_string)
@ -61,10 +62,7 @@ def get_description(feed, length=250, min_length=150, addons=None):
break break
else: else:
length -= 1 length -= 1
desc = temporary_string[:length]
desc = temporary_string[:length]
if addons is not None:
desc = desc + str(addons)
return desc return desc
@ -103,7 +101,7 @@ def setupPaths():
logging.basicConfig( logging.basicConfig(
filename=str(log_dir + log_file_path), filename=str(log_dir + log_file_path),
encoding="utf-8", encoding="utf-8",
level=logging.WARNING, level=logging.INFO,
datefmt="%m/%d/%Y %H:%M:%S", datefmt="%m/%d/%Y %H:%M:%S",
format="%(asctime)s: %(levelname)s: %(message)s", format="%(asctime)s: %(levelname)s: %(message)s",
) )
@ -138,7 +136,7 @@ def main():
else: else:
continue continue
if bad_time is True: if bad_time is True:
logger.info( logger.warning(
"Feed %s doesn't supply a published time, using updated time instead", "Feed %s doesn't supply a published time, using updated time instead",
hook["name"], hook["name"],
) )
@ -212,10 +210,9 @@ def main():
if __name__ == "__main__": if __name__ == "__main__":
try: if os.environ["INVOCATION_ID"]:
if os.environ["INVOCATION_ID"]: main()
main() else:
except KeyError:
try: try:
while True: while True:
main() main()