aa-rss-to-discord 2.3.32.3.3__tar.gz → 2.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/.gitignore +2 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/PKG-INFO +11 -9
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/README.md +3 -3
- aa_rss_to_discord-2.4.0/aa_rss_to_discord/__init__.py +10 -0
- aa_rss_to_discord-2.4.0/aa_rss_to_discord/apps.py +22 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/constants.py +1 -1
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/cs_CZ/LC_MESSAGES/django.po +2 -2
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/de/LC_MESSAGES/django.po +2 -2
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/django.pot +3 -3
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/es/LC_MESSAGES/django.po +2 -2
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/fr_FR/LC_MESSAGES/django.po +2 -2
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/it_IT/LC_MESSAGES/django.po +2 -2
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/ja/LC_MESSAGES/django.po +2 -2
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/ko_KR/LC_MESSAGES/django.po +2 -2
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/nl_NL/LC_MESSAGES/django.po +2 -2
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/pl_PL/LC_MESSAGES/django.po +2 -2
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/ru/LC_MESSAGES/django.po +2 -2
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/sk/LC_MESSAGES/django.po +2 -2
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/uk/LC_MESSAGES/django.mo +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/uk/LC_MESSAGES/django.po +7 -7
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/zh_Hans/LC_MESSAGES/django.po +2 -2
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/managers.py +1 -1
- aa_rss_to_discord-2.4.0/aa_rss_to_discord/providers.py +43 -0
- aa_rss_to_discord-2.4.0/aa_rss_to_discord/tasks.py +131 -0
- aa_rss_to_discord-2.4.0/aa_rss_to_discord/tests/__init__.py +41 -0
- aa_rss_to_discord-2.4.0/aa_rss_to_discord/tests/test_auth_hooks.py +49 -0
- aa_rss_to_discord-2.4.0/aa_rss_to_discord/tests/test_managers.py +32 -0
- aa_rss_to_discord-2.4.0/aa_rss_to_discord/tests/test_models.py +165 -0
- aa_rss_to_discord-2.4.0/aa_rss_to_discord/tests/test_providers.py +99 -0
- aa_rss_to_discord-2.4.0/aa_rss_to_discord/tests/test_tasks.py +176 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/pyproject.toml +7 -5
- aa_rss_to_discord-2.3.32.3.3/aa_rss_to_discord/__init__.py +0 -9
- aa_rss_to_discord-2.3.32.3.3/aa_rss_to_discord/apps.py +0 -19
- aa_rss_to_discord-2.3.32.3.3/aa_rss_to_discord/tasks.py +0 -207
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/LICENSE +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/admin.py +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/auth_hooks.py +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/discordbot/cogs/__init__.py +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/discordbot/cogs/rss.py +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/de/LC_MESSAGES/django.mo +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/es/LC_MESSAGES/django.mo +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/it_IT/LC_MESSAGES/django.mo +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/ja/LC_MESSAGES/django.mo +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/ru/LC_MESSAGES/django.mo +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/sk/LC_MESSAGES/django.mo +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/migrations/0001_initial.py +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/migrations/0002_enable_disable_rss_feeds.py +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/migrations/__init__.py +0 -0
- {aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/models.py +0 -0
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aa-rss-to-discord
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.4.0
|
|
4
4
|
Summary: Alliance Auth module to post news from RSS feeds to your Discord
|
|
5
5
|
Project-URL: Changelog, https://github.com/ppfeufer/aa-rss-to-discord/blob/master/CHANGELOG.md
|
|
6
|
+
Project-URL: Codecov, https://codecov.io/gh/ppfeufer/aa-rss-to-discord
|
|
7
|
+
Project-URL: Discord, https://discord.gg/fjnHAmk
|
|
6
8
|
Project-URL: Documentation, https://github.com/ppfeufer/aa-rss-to-discord/blob/master/README.md
|
|
7
|
-
Project-URL:
|
|
8
|
-
Project-URL:
|
|
9
|
-
Project-URL: Source, https://github.com/ppfeufer/aa-rss-to-discord.git
|
|
9
|
+
Project-URL: Donation, https://ko-fi.com/ppfeufer
|
|
10
|
+
Project-URL: GitHub, https://github.com/ppfeufer/aa-rss-to-discord
|
|
10
11
|
Project-URL: Tracker, https://github.com/ppfeufer/aa-rss-to-discord/issues
|
|
12
|
+
Project-URL: Translation, https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-rss-to-discord/
|
|
11
13
|
Author-email: Peter Pfeufer <develop@ppfeufer.de>
|
|
12
14
|
License: GNU GENERAL PUBLIC LICENSE
|
|
13
15
|
Version 3, 29 June 2007
|
|
@@ -699,11 +701,11 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
699
701
|
Classifier: Programming Language :: Python :: 3.13
|
|
700
702
|
Classifier: Topic :: Internet :: WWW/HTTP
|
|
701
703
|
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
|
702
|
-
Requires-Python:
|
|
703
|
-
Requires-Dist: allianceauth-app-utils>=1.14.2
|
|
704
|
+
Requires-Python: <3.14,>=3.10
|
|
704
705
|
Requires-Dist: allianceauth-discordbot>=3.0.5
|
|
705
706
|
Requires-Dist: allianceauth<5,>=4.3.1
|
|
706
707
|
Requires-Dist: feedparser
|
|
708
|
+
Requires-Dist: py-cord>=2.7.0rc2; python_version == '3.13'
|
|
707
709
|
Provides-Extra: tests-allianceauth-latest
|
|
708
710
|
Requires-Dist: coverage; extra == 'tests-allianceauth-latest'
|
|
709
711
|
Requires-Dist: django-webtest; extra == 'tests-allianceauth-latest'
|
|
@@ -718,7 +720,7 @@ Description-Content-Type: text/markdown
|
|
|
718
720
|

|
|
719
721
|
[](https://results.pre-commit.ci/latest/github/ppfeufer/aa-rss-to-discord/master)
|
|
720
722
|
[](http://black.readthedocs.io/en/latest/)
|
|
721
|
-
[](https://discord.gg/fjnHAmk)
|
|
722
724
|
[](https://github.com/ppfeufer/aa-rss-to-discord/actions/workflows/automated-checks.yml)
|
|
723
725
|
[](https://codecov.io/gh/ppfeufer/aa-rss-to-discord)
|
|
724
726
|
[![Badge: Translation Status]][weblate engage]
|
|
@@ -771,7 +773,7 @@ Make sure you're in the virtual environment (venv) of your Alliance Auth
|
|
|
771
773
|
installation Then install the latest release directly from PyPi.
|
|
772
774
|
|
|
773
775
|
```shell
|
|
774
|
-
pip install aa-rss-to-discord
|
|
776
|
+
pip install aa-rss-to-discord==2.4.0
|
|
775
777
|
```
|
|
776
778
|
|
|
777
779
|
### Step 2: Configure Alliance Auth<a name="step-2-configure-alliance-auth"></a>
|
|
@@ -826,7 +828,7 @@ To update your existing installation of Alliance Auth RSS to Discord, first enab
|
|
|
826
828
|
virtual environment (venv) of your Alliance Auth installation.
|
|
827
829
|
|
|
828
830
|
```bash
|
|
829
|
-
pip install
|
|
831
|
+
pip install aa-rss-to-discord==2.4.0
|
|
830
832
|
|
|
831
833
|
python manage.py migrate
|
|
832
834
|
```
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|

|
|
8
8
|
[](https://results.pre-commit.ci/latest/github/ppfeufer/aa-rss-to-discord/master)
|
|
9
9
|
[](http://black.readthedocs.io/en/latest/)
|
|
10
|
-
[](https://discord.gg/fjnHAmk)
|
|
11
11
|
[](https://github.com/ppfeufer/aa-rss-to-discord/actions/workflows/automated-checks.yml)
|
|
12
12
|
[](https://codecov.io/gh/ppfeufer/aa-rss-to-discord)
|
|
13
13
|
[![Badge: Translation Status]][weblate engage]
|
|
@@ -60,7 +60,7 @@ Make sure you're in the virtual environment (venv) of your Alliance Auth
|
|
|
60
60
|
installation Then install the latest release directly from PyPi.
|
|
61
61
|
|
|
62
62
|
```shell
|
|
63
|
-
pip install aa-rss-to-discord
|
|
63
|
+
pip install aa-rss-to-discord==2.4.0
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
### Step 2: Configure Alliance Auth<a name="step-2-configure-alliance-auth"></a>
|
|
@@ -115,7 +115,7 @@ To update your existing installation of Alliance Auth RSS to Discord, first enab
|
|
|
115
115
|
virtual environment (venv) of your Alliance Auth installation.
|
|
116
116
|
|
|
117
117
|
```bash
|
|
118
|
-
pip install
|
|
118
|
+
pip install aa-rss-to-discord==2.4.0
|
|
119
119
|
|
|
120
120
|
python manage.py migrate
|
|
121
121
|
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"""
|
|
2
|
+
app config
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
# Django
|
|
6
|
+
from django.apps import AppConfig
|
|
7
|
+
from django.utils.text import format_lazy
|
|
8
|
+
|
|
9
|
+
# AA RSS to Discord
|
|
10
|
+
from aa_rss_to_discord import __title_translated__, __version__
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class AaRssToDiscordConfig(AppConfig):
|
|
14
|
+
"""
|
|
15
|
+
application config
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
name = "aa_rss_to_discord"
|
|
19
|
+
label = "aa_rss_to_discord"
|
|
20
|
+
verbose_name = format_lazy(
|
|
21
|
+
"{app_title} v{version}", app_title=__title_translated__, version=__version__
|
|
22
|
+
)
|
|
@@ -9,7 +9,7 @@ from feedparser import USER_AGENT as feedparser_user_agent
|
|
|
9
9
|
from aa_rss_to_discord import __version__
|
|
10
10
|
|
|
11
11
|
APP_NAME = "aa-rss-to-discord"
|
|
12
|
-
APP_NAME_USERAGENT = "
|
|
12
|
+
APP_NAME_USERAGENT = "AaRssToDiscord"
|
|
13
13
|
GITHUB_URL = f"https://github.com/ppfeufer/{APP_NAME}"
|
|
14
14
|
USER_AGENT = (
|
|
15
15
|
f"{APP_NAME_USERAGENT}/{__version__} (+{GITHUB_URL}) via {feedparser_user_agent}"
|
|
@@ -7,7 +7,7 @@ msgid ""
|
|
|
7
7
|
msgstr ""
|
|
8
8
|
"Project-Id-Version: AA RSS to Discord 2.2.0\n"
|
|
9
9
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-rss-to-discord/issues\n"
|
|
10
|
-
"POT-Creation-Date: 2025-
|
|
10
|
+
"POT-Creation-Date: 2025-12-02 08:06+0100\n"
|
|
11
11
|
"PO-Revision-Date: 2024-05-10 14:10+0000\n"
|
|
12
12
|
"Last-Translator: Anonymous <noreply@weblate.org>\n"
|
|
13
13
|
"Language-Team: Czech <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-rss-to-discord/cs/>\n"
|
|
@@ -18,7 +18,7 @@ msgstr ""
|
|
|
18
18
|
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
|
|
19
19
|
"X-Generator: Weblate 5.5.3\n"
|
|
20
20
|
|
|
21
|
-
#: aa_rss_to_discord/__init__.py:
|
|
21
|
+
#: aa_rss_to_discord/__init__.py:10
|
|
22
22
|
msgid "RSS to Discord"
|
|
23
23
|
msgstr ""
|
|
24
24
|
|
|
@@ -6,7 +6,7 @@ msgid ""
|
|
|
6
6
|
msgstr ""
|
|
7
7
|
"Project-Id-Version: AA RSS to Discord 2.2.0\n"
|
|
8
8
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-rss-to-discord/issues\n"
|
|
9
|
-
"POT-Creation-Date: 2025-
|
|
9
|
+
"POT-Creation-Date: 2025-12-02 08:06+0100\n"
|
|
10
10
|
"PO-Revision-Date: 2025-04-25 14:24+0000\n"
|
|
11
11
|
"Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
|
|
12
12
|
"Language-Team: German <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-rss-to-discord/de/>\n"
|
|
@@ -17,7 +17,7 @@ msgstr ""
|
|
|
17
17
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
|
18
18
|
"X-Generator: Weblate 5.11\n"
|
|
19
19
|
|
|
20
|
-
#: aa_rss_to_discord/__init__.py:
|
|
20
|
+
#: aa_rss_to_discord/__init__.py:10
|
|
21
21
|
msgid "RSS to Discord"
|
|
22
22
|
msgstr "RSS zu Discord"
|
|
23
23
|
|
{aa_rss_to_discord-2.3.32.3.3 → aa_rss_to_discord-2.4.0}/aa_rss_to_discord/locale/django.pot
RENAMED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
#, fuzzy
|
|
7
7
|
msgid ""
|
|
8
8
|
msgstr ""
|
|
9
|
-
"Project-Id-Version: AA RSS to Discord 2.
|
|
9
|
+
"Project-Id-Version: AA RSS to Discord 2.4.0\n"
|
|
10
10
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-rss-to-discord/issues\n"
|
|
11
|
-
"POT-Creation-Date: 2025-
|
|
11
|
+
"POT-Creation-Date: 2025-12-02 08:06+0100\n"
|
|
12
12
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
13
13
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
14
14
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
@@ -17,7 +17,7 @@ msgstr ""
|
|
|
17
17
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
18
18
|
"Content-Transfer-Encoding: 8bit\n"
|
|
19
19
|
|
|
20
|
-
#: aa_rss_to_discord/__init__.py:
|
|
20
|
+
#: aa_rss_to_discord/__init__.py:10
|
|
21
21
|
msgid "RSS to Discord"
|
|
22
22
|
msgstr ""
|
|
23
23
|
|
|
@@ -6,7 +6,7 @@ msgid ""
|
|
|
6
6
|
msgstr ""
|
|
7
7
|
"Project-Id-Version: AA RSS to Discord 2.2.0\n"
|
|
8
8
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-rss-to-discord/issues\n"
|
|
9
|
-
"POT-Creation-Date: 2025-
|
|
9
|
+
"POT-Creation-Date: 2025-12-02 08:06+0100\n"
|
|
10
10
|
"PO-Revision-Date: 2024-05-10 14:10+0000\n"
|
|
11
11
|
"Last-Translator: Zigor Fernandez Moreno <sietehierros@gmail.com>\n"
|
|
12
12
|
"Language-Team: Spanish <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-rss-to-discord/es/>\n"
|
|
@@ -17,7 +17,7 @@ msgstr ""
|
|
|
17
17
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
|
18
18
|
"X-Generator: Weblate 5.5.3\n"
|
|
19
19
|
|
|
20
|
-
#: aa_rss_to_discord/__init__.py:
|
|
20
|
+
#: aa_rss_to_discord/__init__.py:10
|
|
21
21
|
msgid "RSS to Discord"
|
|
22
22
|
msgstr ""
|
|
23
23
|
|
|
@@ -9,7 +9,7 @@ msgid ""
|
|
|
9
9
|
msgstr ""
|
|
10
10
|
"Project-Id-Version: AA RSS to Discord 2.2.0\n"
|
|
11
11
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-rss-to-discord/issues\n"
|
|
12
|
-
"POT-Creation-Date: 2025-
|
|
12
|
+
"POT-Creation-Date: 2025-12-02 08:06+0100\n"
|
|
13
13
|
"PO-Revision-Date: 2025-08-03 04:24+0000\n"
|
|
14
14
|
"Last-Translator: The “Devcutter” Guy <mick162534@gmail.com>\n"
|
|
15
15
|
"Language-Team: French <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-rss-to-discord/fr/>\n"
|
|
@@ -20,7 +20,7 @@ msgstr ""
|
|
|
20
20
|
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
|
21
21
|
"X-Generator: Weblate 5.12.2\n"
|
|
22
22
|
|
|
23
|
-
#: aa_rss_to_discord/__init__.py:
|
|
23
|
+
#: aa_rss_to_discord/__init__.py:10
|
|
24
24
|
msgid "RSS to Discord"
|
|
25
25
|
msgstr "RSS vers Discord"
|
|
26
26
|
|
|
@@ -7,7 +7,7 @@ msgid ""
|
|
|
7
7
|
msgstr ""
|
|
8
8
|
"Project-Id-Version: AA RSS to Discord 2.2.0\n"
|
|
9
9
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-rss-to-discord/issues\n"
|
|
10
|
-
"POT-Creation-Date: 2025-
|
|
10
|
+
"POT-Creation-Date: 2025-12-02 08:06+0100\n"
|
|
11
11
|
"PO-Revision-Date: 2024-05-10 14:10+0000\n"
|
|
12
12
|
"Last-Translator: Anonymous <noreply@weblate.org>\n"
|
|
13
13
|
"Language-Team: Italian <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-rss-to-discord/it/>\n"
|
|
@@ -18,7 +18,7 @@ msgstr ""
|
|
|
18
18
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
|
19
19
|
"X-Generator: Weblate 5.5.3\n"
|
|
20
20
|
|
|
21
|
-
#: aa_rss_to_discord/__init__.py:
|
|
21
|
+
#: aa_rss_to_discord/__init__.py:10
|
|
22
22
|
msgid "RSS to Discord"
|
|
23
23
|
msgstr ""
|
|
24
24
|
|
|
@@ -6,7 +6,7 @@ msgid ""
|
|
|
6
6
|
msgstr ""
|
|
7
7
|
"Project-Id-Version: AA RSS to Discord 2.2.0\n"
|
|
8
8
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-rss-to-discord/issues\n"
|
|
9
|
-
"POT-Creation-Date: 2025-
|
|
9
|
+
"POT-Creation-Date: 2025-12-02 08:06+0100\n"
|
|
10
10
|
"PO-Revision-Date: 2024-08-05 10:10+0000\n"
|
|
11
11
|
"Last-Translator: Anata_no_Usiro <yt23542354m@gmail.com>\n"
|
|
12
12
|
"Language-Team: Japanese <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-rss-to-discord/ja/>\n"
|
|
@@ -17,7 +17,7 @@ msgstr ""
|
|
|
17
17
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
|
18
18
|
"X-Generator: Weblate 5.6.2\n"
|
|
19
19
|
|
|
20
|
-
#: aa_rss_to_discord/__init__.py:
|
|
20
|
+
#: aa_rss_to_discord/__init__.py:10
|
|
21
21
|
msgid "RSS to Discord"
|
|
22
22
|
msgstr "RSS から Discord へ"
|
|
23
23
|
|
|
@@ -7,7 +7,7 @@ msgid ""
|
|
|
7
7
|
msgstr ""
|
|
8
8
|
"Project-Id-Version: AA RSS to Discord 2.2.0\n"
|
|
9
9
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-rss-to-discord/issues\n"
|
|
10
|
-
"POT-Creation-Date: 2025-
|
|
10
|
+
"POT-Creation-Date: 2025-12-02 08:06+0100\n"
|
|
11
11
|
"PO-Revision-Date: 2024-05-10 14:10+0000\n"
|
|
12
12
|
"Last-Translator: Hue Radient <seataoji@gmail.com>\n"
|
|
13
13
|
"Language-Team: Korean <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-rss-to-discord/ko/>\n"
|
|
@@ -18,7 +18,7 @@ msgstr ""
|
|
|
18
18
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
|
19
19
|
"X-Generator: Weblate 5.5.3\n"
|
|
20
20
|
|
|
21
|
-
#: aa_rss_to_discord/__init__.py:
|
|
21
|
+
#: aa_rss_to_discord/__init__.py:10
|
|
22
22
|
msgid "RSS to Discord"
|
|
23
23
|
msgstr "디스코드로 RSS피드보내기"
|
|
24
24
|
|
|
@@ -7,7 +7,7 @@ msgid ""
|
|
|
7
7
|
msgstr ""
|
|
8
8
|
"Project-Id-Version: AA RSS to Discord 2.2.0\n"
|
|
9
9
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-rss-to-discord/issues\n"
|
|
10
|
-
"POT-Creation-Date: 2025-
|
|
10
|
+
"POT-Creation-Date: 2025-12-02 08:06+0100\n"
|
|
11
11
|
"PO-Revision-Date: 2024-05-10 14:10+0000\n"
|
|
12
12
|
"Last-Translator: Anonymous <noreply@weblate.org>\n"
|
|
13
13
|
"Language-Team: Dutch <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-rss-to-discord/nl/>\n"
|
|
@@ -18,7 +18,7 @@ msgstr ""
|
|
|
18
18
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
|
19
19
|
"X-Generator: Weblate 5.5.3\n"
|
|
20
20
|
|
|
21
|
-
#: aa_rss_to_discord/__init__.py:
|
|
21
|
+
#: aa_rss_to_discord/__init__.py:10
|
|
22
22
|
msgid "RSS to Discord"
|
|
23
23
|
msgstr ""
|
|
24
24
|
|
|
@@ -7,7 +7,7 @@ msgid ""
|
|
|
7
7
|
msgstr ""
|
|
8
8
|
"Project-Id-Version: AA RSS to Discord 2.2.0\n"
|
|
9
9
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-rss-to-discord/issues\n"
|
|
10
|
-
"POT-Creation-Date: 2025-
|
|
10
|
+
"POT-Creation-Date: 2025-12-02 08:06+0100\n"
|
|
11
11
|
"PO-Revision-Date: 2024-05-10 14:10+0000\n"
|
|
12
12
|
"Last-Translator: Anonymous <noreply@weblate.org>\n"
|
|
13
13
|
"Language-Team: Polish <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-rss-to-discord/pl/>\n"
|
|
@@ -18,7 +18,7 @@ msgstr ""
|
|
|
18
18
|
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
|
19
19
|
"X-Generator: Weblate 5.5.3\n"
|
|
20
20
|
|
|
21
|
-
#: aa_rss_to_discord/__init__.py:
|
|
21
|
+
#: aa_rss_to_discord/__init__.py:10
|
|
22
22
|
msgid "RSS to Discord"
|
|
23
23
|
msgstr ""
|
|
24
24
|
|
|
@@ -7,7 +7,7 @@ msgid ""
|
|
|
7
7
|
msgstr ""
|
|
8
8
|
"Project-Id-Version: AA RSS to Discord 2.2.0\n"
|
|
9
9
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-rss-to-discord/issues\n"
|
|
10
|
-
"POT-Creation-Date: 2025-
|
|
10
|
+
"POT-Creation-Date: 2025-12-02 08:06+0100\n"
|
|
11
11
|
"PO-Revision-Date: 2024-05-10 14:10+0000\n"
|
|
12
12
|
"Last-Translator: Dromiel <dimhry@yandex.ru>\n"
|
|
13
13
|
"Language-Team: Russian <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-rss-to-discord/ru/>\n"
|
|
@@ -18,7 +18,7 @@ msgstr ""
|
|
|
18
18
|
"Plural-Forms: nplurals=4; plural=n==1 ? 3 : (n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
|
19
19
|
"X-Generator: Weblate 5.5.3\n"
|
|
20
20
|
|
|
21
|
-
#: aa_rss_to_discord/__init__.py:
|
|
21
|
+
#: aa_rss_to_discord/__init__.py:10
|
|
22
22
|
msgid "RSS to Discord"
|
|
23
23
|
msgstr "RSS к Дискорду"
|
|
24
24
|
|
|
@@ -7,7 +7,7 @@ msgid ""
|
|
|
7
7
|
msgstr ""
|
|
8
8
|
"Project-Id-Version: AA RSS to Discord 2.2.0\n"
|
|
9
9
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-rss-to-discord/issues\n"
|
|
10
|
-
"POT-Creation-Date: 2025-
|
|
10
|
+
"POT-Creation-Date: 2025-12-02 08:06+0100\n"
|
|
11
11
|
"PO-Revision-Date: 2024-05-10 14:10+0000\n"
|
|
12
12
|
"Last-Translator: Anonymous <noreply@weblate.org>\n"
|
|
13
13
|
"Language-Team: Slovak <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-rss-to-discord/sk/>\n"
|
|
@@ -18,7 +18,7 @@ msgstr ""
|
|
|
18
18
|
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"
|
|
19
19
|
"X-Generator: Weblate 5.5.3\n"
|
|
20
20
|
|
|
21
|
-
#: aa_rss_to_discord/__init__.py:
|
|
21
|
+
#: aa_rss_to_discord/__init__.py:10
|
|
22
22
|
msgid "RSS to Discord"
|
|
23
23
|
msgstr ""
|
|
24
24
|
|
|
Binary file
|
|
@@ -7,8 +7,8 @@ msgid ""
|
|
|
7
7
|
msgstr ""
|
|
8
8
|
"Project-Id-Version: AA RSS to Discord 2.2.0\n"
|
|
9
9
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-rss-to-discord/issues\n"
|
|
10
|
-
"POT-Creation-Date: 2025-
|
|
11
|
-
"PO-Revision-Date: 2025-
|
|
10
|
+
"POT-Creation-Date: 2025-12-02 08:06+0100\n"
|
|
11
|
+
"PO-Revision-Date: 2025-08-27 20:43+0000\n"
|
|
12
12
|
"Last-Translator: s0k0l -_- <salarysalo@gmail.com>\n"
|
|
13
13
|
"Language-Team: Ukrainian <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-rss-to-discord/uk/>\n"
|
|
14
14
|
"Language: uk\n"
|
|
@@ -16,19 +16,19 @@ msgstr ""
|
|
|
16
16
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
17
17
|
"Content-Transfer-Encoding: 8bit\n"
|
|
18
18
|
"Plural-Forms: nplurals=4; plural=n==1 ? 3 : (n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
|
19
|
-
"X-Generator: Weblate 5.
|
|
19
|
+
"X-Generator: Weblate 5.13\n"
|
|
20
20
|
|
|
21
|
-
#: aa_rss_to_discord/__init__.py:
|
|
21
|
+
#: aa_rss_to_discord/__init__.py:10
|
|
22
22
|
msgid "RSS to Discord"
|
|
23
23
|
msgstr "RSS до Діскорду"
|
|
24
24
|
|
|
25
25
|
#: aa_rss_to_discord/models.py:44
|
|
26
26
|
msgid "RSS Feed"
|
|
27
|
-
msgstr "RSS
|
|
27
|
+
msgstr "RSS-фід"
|
|
28
28
|
|
|
29
29
|
#: aa_rss_to_discord/models.py:45
|
|
30
30
|
msgid "RSS Feeds"
|
|
31
|
-
msgstr "RSS
|
|
31
|
+
msgstr "RSS-фіди"
|
|
32
32
|
|
|
33
33
|
#: aa_rss_to_discord/models.py:72
|
|
34
34
|
msgid "Last Item"
|
|
@@ -36,4 +36,4 @@ msgstr "Останній елемент"
|
|
|
36
36
|
|
|
37
37
|
#: aa_rss_to_discord/models.py:73
|
|
38
38
|
msgid "Last Items"
|
|
39
|
-
msgstr "Останні
|
|
39
|
+
msgstr "Останні Елементи"
|
|
@@ -7,7 +7,7 @@ msgid ""
|
|
|
7
7
|
msgstr ""
|
|
8
8
|
"Project-Id-Version: AA RSS to Discord 2.2.0\n"
|
|
9
9
|
"Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-rss-to-discord/issues\n"
|
|
10
|
-
"POT-Creation-Date: 2025-
|
|
10
|
+
"POT-Creation-Date: 2025-12-02 08:06+0100\n"
|
|
11
11
|
"PO-Revision-Date: 2024-05-10 14:10+0000\n"
|
|
12
12
|
"Last-Translator: Anonymous <noreply@weblate.org>\n"
|
|
13
13
|
"Language-Team: Chinese (Simplified) <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-rss-to-discord/zh_Hans/>\n"
|
|
@@ -18,7 +18,7 @@ msgstr ""
|
|
|
18
18
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
|
19
19
|
"X-Generator: Weblate 5.5.3\n"
|
|
20
20
|
|
|
21
|
-
#: aa_rss_to_discord/__init__.py:
|
|
21
|
+
#: aa_rss_to_discord/__init__.py:10
|
|
22
22
|
msgid "RSS to Discord"
|
|
23
23
|
msgstr ""
|
|
24
24
|
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Providers for the AA RSS to Discord app.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
# Standard Library
|
|
6
|
+
import logging
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class AppLogger(logging.LoggerAdapter):
|
|
10
|
+
"""
|
|
11
|
+
Custom logger adapter that adds a prefix to log messages.
|
|
12
|
+
|
|
13
|
+
Taken from the `allianceauth-app-utils` package.
|
|
14
|
+
Credits to: Erik Kalkoken
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
def __init__(self, my_logger, prefix):
|
|
18
|
+
"""
|
|
19
|
+
Initializes the AppLogger with a logger and a prefix.
|
|
20
|
+
|
|
21
|
+
:param my_logger: Logger instance
|
|
22
|
+
:type my_logger: logging.Logger
|
|
23
|
+
:param prefix: Prefix string to add to log messages
|
|
24
|
+
:type prefix: str
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
super().__init__(my_logger, {})
|
|
28
|
+
|
|
29
|
+
self.prefix = prefix
|
|
30
|
+
|
|
31
|
+
def process(self, msg, kwargs):
|
|
32
|
+
"""
|
|
33
|
+
Prepares the log message by adding the prefix.
|
|
34
|
+
|
|
35
|
+
:param msg: Log message
|
|
36
|
+
:type msg: str
|
|
37
|
+
:param kwargs: Additional keyword arguments
|
|
38
|
+
:type kwargs: dict
|
|
39
|
+
:return: Prefixed log message and kwargs
|
|
40
|
+
:rtype: tuple
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
return f"[{self.prefix}] {msg}", kwargs
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"""
|
|
2
|
+
AA RSS To Discord Tasks
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
# Standard Library
|
|
6
|
+
import re
|
|
7
|
+
|
|
8
|
+
# Third Party
|
|
9
|
+
import feedparser
|
|
10
|
+
from aadiscordbot.tasks import send_message
|
|
11
|
+
from celery import shared_task
|
|
12
|
+
|
|
13
|
+
# Alliance Auth
|
|
14
|
+
from allianceauth.services.hooks import get_extension_logger
|
|
15
|
+
from allianceauth.services.tasks import QueueOnce
|
|
16
|
+
|
|
17
|
+
# AA RSS to Discord
|
|
18
|
+
from aa_rss_to_discord import __title__
|
|
19
|
+
from aa_rss_to_discord.constants import USER_AGENT
|
|
20
|
+
from aa_rss_to_discord.models import LastItem, RssFeeds
|
|
21
|
+
from aa_rss_to_discord.providers import AppLogger
|
|
22
|
+
|
|
23
|
+
logger = AppLogger(get_extension_logger(__name__), __title__)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def remove_emoji(string):
|
|
27
|
+
"""
|
|
28
|
+
Removing these dumb as fuck emojis from the title string.
|
|
29
|
+
Like honestly, who in the hell needs that shit?
|
|
30
|
+
|
|
31
|
+
:param string:
|
|
32
|
+
:type string:
|
|
33
|
+
:return:
|
|
34
|
+
:rtype:
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
emoji_pattern = re.compile(
|
|
38
|
+
pattern="["
|
|
39
|
+
"\U0001f600-\U0001f64f" # Emoticons
|
|
40
|
+
"\U0001f300-\U0001f5ff" # Symbols & pictographs
|
|
41
|
+
"\U0001f680-\U0001f6ff" # Transport & map symbols
|
|
42
|
+
"\U0001f1e0-\U0001f1ff" # Flags (iOS)
|
|
43
|
+
"\U00002500-\U00002bef" # Chinese char
|
|
44
|
+
"\U00002702-\U000027b0"
|
|
45
|
+
"\U00002702-\U000027b0"
|
|
46
|
+
"\U000024c2-\U0001f251"
|
|
47
|
+
"\U0001f926-\U0001f937"
|
|
48
|
+
"\U00010000-\U0010ffff"
|
|
49
|
+
"\u2640-\u2642"
|
|
50
|
+
"\u2600-\u2b55"
|
|
51
|
+
"\u200d"
|
|
52
|
+
"\u23cf"
|
|
53
|
+
"\u23e9"
|
|
54
|
+
"\u231a"
|
|
55
|
+
"\ufe0f" # Dingbats
|
|
56
|
+
"\u3030"
|
|
57
|
+
"]+",
|
|
58
|
+
flags=re.UNICODE,
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
return emoji_pattern.sub(repl=r"", string=string)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
@shared_task(**{"base": QueueOnce})
|
|
65
|
+
def fetch_rss() -> None:
|
|
66
|
+
"""
|
|
67
|
+
Fetch RSS feeds and post new entries to Discord channels.
|
|
68
|
+
|
|
69
|
+
:return:
|
|
70
|
+
:rtype:
|
|
71
|
+
"""
|
|
72
|
+
|
|
73
|
+
rss_feeds = RssFeeds.objects.select_enabled()
|
|
74
|
+
|
|
75
|
+
if not rss_feeds:
|
|
76
|
+
logger.debug("No RSS feeds found to parse.")
|
|
77
|
+
|
|
78
|
+
return
|
|
79
|
+
|
|
80
|
+
for rss_feed in rss_feeds:
|
|
81
|
+
logger.info(f'Fetching RSS Feed "{rss_feed.name}"')
|
|
82
|
+
feed = feedparser.parse(rss_feed.url, agent=USER_AGENT)
|
|
83
|
+
|
|
84
|
+
try:
|
|
85
|
+
latest_entry = feed.entries[0]
|
|
86
|
+
feed_entry_title = remove_emoji(latest_entry.get("title", "No title"))
|
|
87
|
+
feed_entry_link = latest_entry.get("link")
|
|
88
|
+
feed_entry_time = latest_entry.get("published", latest_entry.updated)
|
|
89
|
+
feed_entry_guid = latest_entry.get("id")
|
|
90
|
+
except (AttributeError, IndexError) as exc:
|
|
91
|
+
logger.debug(f'Error processing feed "{rss_feed.name}": {exc}')
|
|
92
|
+
|
|
93
|
+
continue
|
|
94
|
+
|
|
95
|
+
try:
|
|
96
|
+
last_item = LastItem.objects.get(rss_feed=rss_feed)
|
|
97
|
+
is_duplicate = (
|
|
98
|
+
last_item.rss_item_time == feed_entry_time
|
|
99
|
+
and last_item.rss_item_title == feed_entry_title
|
|
100
|
+
and last_item.rss_item_link == feed_entry_link
|
|
101
|
+
and last_item.rss_item_guid == feed_entry_guid
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
if is_duplicate:
|
|
105
|
+
logger.debug(
|
|
106
|
+
f'News item "{feed_entry_title}" for RSS Feed "{rss_feed.name}" '
|
|
107
|
+
"has already been posted to your Discord"
|
|
108
|
+
)
|
|
109
|
+
|
|
110
|
+
continue
|
|
111
|
+
except LastItem.DoesNotExist:
|
|
112
|
+
logger.debug("This seems to be a completely new RSS feed.")
|
|
113
|
+
|
|
114
|
+
logger.info(
|
|
115
|
+
f"New entry found, posting to Discord channel {rss_feed.discord_channel}"
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
LastItem.objects.update_or_create(
|
|
119
|
+
rss_feed=rss_feed,
|
|
120
|
+
defaults={
|
|
121
|
+
"rss_item_time": feed_entry_time,
|
|
122
|
+
"rss_item_title": feed_entry_title,
|
|
123
|
+
"rss_item_link": feed_entry_link,
|
|
124
|
+
"rss_item_guid": feed_entry_guid,
|
|
125
|
+
},
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
send_message(
|
|
129
|
+
channel_id=rss_feed.discord_channel.channel,
|
|
130
|
+
message=f"**{rss_feed.name}**\n{feed_entry_link}",
|
|
131
|
+
)
|