diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-10-10 08:01:08 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-02-19 14:43:48 +0100 |
commit | 175f1e5bfe427511d0d4d93457f24137bf94c644 (patch) | |
tree | b0bdf4f6d642f20bbd1455870ef5cbdad8299911 /ishtar_common/utils.py | |
parent | 2a28770954bd2eb699995e5e106109601f87fd1e (diff) | |
download | Ishtar-175f1e5bfe427511d0d4d93457f24137bf94c644.tar.bz2 Ishtar-175f1e5bfe427511d0d4d93457f24137bf94c644.zip |
✨ display forum entries: activate/deactivate by user profile - profile form: edit news/forum display
Diffstat (limited to 'ishtar_common/utils.py')
-rw-r--r-- | ishtar_common/utils.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py index 9b84804e8..09e83714b 100644 --- a/ishtar_common/utils.py +++ b/ishtar_common/utils.py @@ -2854,12 +2854,22 @@ def get_news_feed(): news_feed = cache.get(cache_key) if news_feed is None: news_feed = update_news_feed() - cache.set(cache_key, news_feed, timeout=settings.CACHE_TIMEOUT) + # "" could be a temporary unavailability of the forum re-test 5 minutes later + timeout = settings.CACHE_TIMEOUT if news_feed != "" else 60 * 5 + cache.set(cache_key, news_feed, timeout=timeout) return news_feed def update_news_feed(): - feed = feedparser.parse(settings.ISHTAR_FEED_URL) + try: + response = requests.get(settings.ISHTAR_FEED_URL, timeout=5) + except requests.ReadTimeout: + logger.warning(f"Timeout when reading RSS {settings.ISHTAR_FEED_URL}") + return "" + + # Put it to memory stream object universal feedparser + content = io.BytesIO(response.content) + feed = feedparser.parse(content) news_feed = [] if "entries" in feed: for entry in feed["entries"][:5]: |