aa-rss-to-discord 2.3.32.3.3__py3-none-any.whl → 2.5.0__py3-none-any.whl
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/__init__.py +3 -2
- aa_rss_to_discord/apps.py +5 -2
- aa_rss_to_discord/constants.py +1 -1
- aa_rss_to_discord/locale/cs_CZ/LC_MESSAGES/django.po +2 -2
- aa_rss_to_discord/locale/de/LC_MESSAGES/django.po +2 -2
- aa_rss_to_discord/locale/django.pot +3 -3
- aa_rss_to_discord/locale/es/LC_MESSAGES/django.mo +0 -0
- aa_rss_to_discord/locale/es/LC_MESSAGES/django.po +8 -6
- aa_rss_to_discord/locale/fr_FR/LC_MESSAGES/django.po +2 -2
- aa_rss_to_discord/locale/it_IT/LC_MESSAGES/django.po +2 -2
- aa_rss_to_discord/locale/ja/LC_MESSAGES/django.po +2 -2
- aa_rss_to_discord/locale/ko_KR/LC_MESSAGES/django.po +2 -2
- aa_rss_to_discord/locale/nl_NL/LC_MESSAGES/django.po +2 -2
- aa_rss_to_discord/locale/pl_PL/LC_MESSAGES/django.po +2 -2
- aa_rss_to_discord/locale/ru/LC_MESSAGES/django.po +2 -2
- aa_rss_to_discord/locale/sk/LC_MESSAGES/django.po +2 -2
- aa_rss_to_discord/locale/uk/LC_MESSAGES/django.mo +0 -0
- aa_rss_to_discord/locale/uk/LC_MESSAGES/django.po +9 -8
- aa_rss_to_discord/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- aa_rss_to_discord/locale/zh_Hans/LC_MESSAGES/django.po +12 -13
- aa_rss_to_discord/managers.py +1 -1
- aa_rss_to_discord/providers.py +43 -0
- aa_rss_to_discord/tasks.py +94 -147
- aa_rss_to_discord/tests/__init__.py +41 -0
- aa_rss_to_discord/tests/test_auth_hooks.py +49 -0
- aa_rss_to_discord/tests/test_managers.py +32 -0
- aa_rss_to_discord/tests/test_models.py +165 -0
- aa_rss_to_discord/tests/test_providers.py +99 -0
- aa_rss_to_discord/tests/test_tasks.py +236 -0
- {aa_rss_to_discord-2.3.32.3.3.dist-info → aa_rss_to_discord-2.5.0.dist-info}/METADATA +11 -9
- aa_rss_to_discord-2.5.0.dist-info/RECORD +51 -0
- {aa_rss_to_discord-2.3.32.3.3.dist-info → aa_rss_to_discord-2.5.0.dist-info}/WHEEL +1 -1
- aa_rss_to_discord-2.3.32.3.3.dist-info/RECORD +0 -44
- {aa_rss_to_discord-2.3.32.3.3.dist-info → aa_rss_to_discord-2.5.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Test cases for the fetch_rss task
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
# Standard Library
|
|
6
|
+
from types import SimpleNamespace
|
|
7
|
+
from unittest.mock import MagicMock, patch
|
|
8
|
+
|
|
9
|
+
# AA RSS to Discord
|
|
10
|
+
from aa_rss_to_discord.constants import USER_AGENT
|
|
11
|
+
from aa_rss_to_discord.models import RssFeeds
|
|
12
|
+
from aa_rss_to_discord.tasks import _process_feed, fetch_rss
|
|
13
|
+
from aa_rss_to_discord.tests import BaseTestCase
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class TestFetchRss(BaseTestCase):
|
|
17
|
+
"""
|
|
18
|
+
Test cases for the fetch_rss task
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
def test_fetch_rss_logs_message_when_no_rss_feeds_found(self):
|
|
22
|
+
"""
|
|
23
|
+
Test that fetch_rss logs a message when no RSS feeds are found.
|
|
24
|
+
|
|
25
|
+
:return:
|
|
26
|
+
:rtype:
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
with (
|
|
30
|
+
patch(
|
|
31
|
+
"aa_rss_to_discord.tasks.RssFeeds.objects.select_enabled"
|
|
32
|
+
) as mock_select_enabled,
|
|
33
|
+
patch("aa_rss_to_discord.tasks.logger.debug") as mock_logger_debug,
|
|
34
|
+
):
|
|
35
|
+
mock_select_enabled.return_value = []
|
|
36
|
+
|
|
37
|
+
fetch_rss()
|
|
38
|
+
|
|
39
|
+
mock_logger_debug.assert_called_once_with("No RSS feeds found to parse.")
|
|
40
|
+
|
|
41
|
+
def test_fetch_rss_dispatches_tasks_for_enabled_feeds(self):
|
|
42
|
+
"""
|
|
43
|
+
Test that fetch_rss dispatches tasks for enabled RSS feeds.
|
|
44
|
+
|
|
45
|
+
:return:
|
|
46
|
+
:rtype:
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
with (
|
|
50
|
+
patch(
|
|
51
|
+
"aa_rss_to_discord.tasks.RssFeeds.objects.select_enabled"
|
|
52
|
+
) as mock_select_enabled,
|
|
53
|
+
patch("aa_rss_to_discord.tasks.group") as mock_group,
|
|
54
|
+
):
|
|
55
|
+
mock_rss_feed_1 = MagicMock(id=1)
|
|
56
|
+
mock_rss_feed_2 = MagicMock(id=2)
|
|
57
|
+
mock_select_enabled.return_value = [mock_rss_feed_1, mock_rss_feed_2]
|
|
58
|
+
|
|
59
|
+
fetch_rss()
|
|
60
|
+
|
|
61
|
+
mock_group.assert_called_once()
|
|
62
|
+
mock_group.return_value.apply_async.assert_called_once()
|
|
63
|
+
dispatched_tasks = mock_group.call_args[0][0]
|
|
64
|
+
dispatched_list = list(dispatched_tasks)
|
|
65
|
+
self.assertEqual(len(dispatched_list), 2)
|
|
66
|
+
self.assertEqual(dispatched_list[0].args[0], 1)
|
|
67
|
+
self.assertEqual(dispatched_list[1].args[0], 2)
|
|
68
|
+
|
|
69
|
+
def test_handles_empty_rss_feed_ids_gracefully(self):
|
|
70
|
+
"""
|
|
71
|
+
Test that fetch_rss handles an empty list of RSS feed IDs gracefully.
|
|
72
|
+
|
|
73
|
+
:return:
|
|
74
|
+
:rtype:
|
|
75
|
+
"""
|
|
76
|
+
|
|
77
|
+
with (
|
|
78
|
+
patch(
|
|
79
|
+
"aa_rss_to_discord.tasks.RssFeeds.objects.select_enabled"
|
|
80
|
+
) as mock_select_enabled,
|
|
81
|
+
patch("aa_rss_to_discord.tasks.group") as mock_group,
|
|
82
|
+
patch("aa_rss_to_discord.tasks.logger.debug") as mock_logger_debug,
|
|
83
|
+
):
|
|
84
|
+
mock_select_enabled.return_value = iter([])
|
|
85
|
+
|
|
86
|
+
fetch_rss()
|
|
87
|
+
|
|
88
|
+
mock_group.assert_not_called()
|
|
89
|
+
mock_logger_debug.assert_called_once_with("No RSS feed ids to dispatch.")
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
class TestHelperProcessRssFeed(BaseTestCase):
|
|
93
|
+
"""
|
|
94
|
+
Test cases for the _process_feed task
|
|
95
|
+
"""
|
|
96
|
+
|
|
97
|
+
def test_handles_missing_rss_feed_gracefully(self):
|
|
98
|
+
"""
|
|
99
|
+
Test that _process_feed handles a missing RSS feed gracefully.
|
|
100
|
+
|
|
101
|
+
:return:
|
|
102
|
+
:rtype:
|
|
103
|
+
"""
|
|
104
|
+
|
|
105
|
+
with patch(
|
|
106
|
+
"aa_rss_to_discord.tasks.RssFeeds.objects.select_related"
|
|
107
|
+
) as mock_select_related:
|
|
108
|
+
mock_select_related.return_value.get.side_effect = RssFeeds.DoesNotExist
|
|
109
|
+
|
|
110
|
+
_process_feed(1)
|
|
111
|
+
|
|
112
|
+
mock_select_related.return_value.get.assert_called_once_with(id=1)
|
|
113
|
+
|
|
114
|
+
def test_logs_and_skips_when_no_entries_in_feed(self):
|
|
115
|
+
"""
|
|
116
|
+
Test that _process_feed logs and skips processing when no entries are found in the feed.
|
|
117
|
+
|
|
118
|
+
:return:
|
|
119
|
+
:rtype:
|
|
120
|
+
"""
|
|
121
|
+
|
|
122
|
+
with (
|
|
123
|
+
patch(
|
|
124
|
+
"aa_rss_to_discord.tasks.RssFeeds.objects.select_related"
|
|
125
|
+
) as mock_select_related,
|
|
126
|
+
patch(
|
|
127
|
+
"aa_rss_to_discord.tasks.feedparser.parse", return_value={}
|
|
128
|
+
) as mock_parse,
|
|
129
|
+
):
|
|
130
|
+
mock_rss_feed = MagicMock(url="http://example.com", name="No Entries Feed")
|
|
131
|
+
mock_select_related.return_value.get.return_value = mock_rss_feed
|
|
132
|
+
|
|
133
|
+
_process_feed(1)
|
|
134
|
+
|
|
135
|
+
mock_parse.assert_called_once_with(mock_rss_feed.url, agent=USER_AGENT)
|
|
136
|
+
|
|
137
|
+
def test_posts_new_entry_to_discord(self):
|
|
138
|
+
"""
|
|
139
|
+
Test that _process_feed posts a new entry to Discord when it's not a duplicate.
|
|
140
|
+
|
|
141
|
+
:return:
|
|
142
|
+
:rtype:
|
|
143
|
+
"""
|
|
144
|
+
|
|
145
|
+
entry = {"title": "New Entry", "link": "http://example.com", "id": "123"}
|
|
146
|
+
|
|
147
|
+
with (
|
|
148
|
+
patch(
|
|
149
|
+
"aa_rss_to_discord.tasks.RssFeeds.objects.select_related"
|
|
150
|
+
) as mock_select_related,
|
|
151
|
+
patch(
|
|
152
|
+
"aa_rss_to_discord.tasks.feedparser.parse",
|
|
153
|
+
return_value=SimpleNamespace(entries=[entry]),
|
|
154
|
+
) as mock_parse,
|
|
155
|
+
patch("aa_rss_to_discord.tasks.LastItem.objects.filter") as mock_filter,
|
|
156
|
+
patch(
|
|
157
|
+
"aa_rss_to_discord.tasks.LastItem.objects.update_or_create"
|
|
158
|
+
) as mock_update_or_create,
|
|
159
|
+
patch("aa_rss_to_discord.tasks.send_message") as mock_send_message,
|
|
160
|
+
):
|
|
161
|
+
mock_rss_feed = MagicMock(
|
|
162
|
+
discord_channel=MagicMock(channel=12345),
|
|
163
|
+
name="Test Feed",
|
|
164
|
+
url="http://example.com",
|
|
165
|
+
)
|
|
166
|
+
mock_select_related.return_value.get.return_value = mock_rss_feed
|
|
167
|
+
mock_filter.return_value.first.return_value = None
|
|
168
|
+
mock_update_or_create.return_value = (MagicMock(), True)
|
|
169
|
+
|
|
170
|
+
_process_feed(1)
|
|
171
|
+
|
|
172
|
+
mock_parse.assert_called_once_with(mock_rss_feed.url, agent=USER_AGENT)
|
|
173
|
+
mock_update_or_create.assert_called_once()
|
|
174
|
+
self.assertTrue(
|
|
175
|
+
mock_send_message.called,
|
|
176
|
+
f"send_message not called. calls: {mock_send_message.call_args_list}",
|
|
177
|
+
)
|
|
178
|
+
|
|
179
|
+
call_args, call_kwargs = mock_send_message.call_args
|
|
180
|
+
called_channel = (
|
|
181
|
+
call_kwargs.get("channel_id")
|
|
182
|
+
if "channel_id" in call_kwargs
|
|
183
|
+
else (call_args[0] if len(call_args) > 0 else None)
|
|
184
|
+
)
|
|
185
|
+
called_message = (
|
|
186
|
+
call_kwargs.get("message")
|
|
187
|
+
if "message" in call_kwargs
|
|
188
|
+
else (
|
|
189
|
+
call_args[1]
|
|
190
|
+
if len(call_args) > 1
|
|
191
|
+
else (call_args[0] if len(call_args) == 1 else None)
|
|
192
|
+
)
|
|
193
|
+
)
|
|
194
|
+
|
|
195
|
+
self.assertEqual(called_channel, 12345)
|
|
196
|
+
self.assertIsNotNone(called_message)
|
|
197
|
+
self.assertIn(mock_rss_feed.url, called_message)
|
|
198
|
+
|
|
199
|
+
def test_skips_posting_duplicate_entry(self):
|
|
200
|
+
"""
|
|
201
|
+
Test that _process_feed skips posting a duplicate entry to Discord.
|
|
202
|
+
|
|
203
|
+
:return:
|
|
204
|
+
:rtype:
|
|
205
|
+
"""
|
|
206
|
+
|
|
207
|
+
entry = {"title": "Duplicate Entry", "link": "http://example.com", "id": "123"}
|
|
208
|
+
|
|
209
|
+
with (
|
|
210
|
+
patch(
|
|
211
|
+
"aa_rss_to_discord.tasks.RssFeeds.objects.select_related"
|
|
212
|
+
) as mock_select_related,
|
|
213
|
+
patch(
|
|
214
|
+
"aa_rss_to_discord.tasks.feedparser.parse",
|
|
215
|
+
return_value=SimpleNamespace(entries=[entry]),
|
|
216
|
+
),
|
|
217
|
+
patch("aa_rss_to_discord.tasks.LastItem.objects.filter") as mock_filter,
|
|
218
|
+
patch("aa_rss_to_discord.tasks.send_message") as mock_send_message,
|
|
219
|
+
):
|
|
220
|
+
mock_rss_feed = MagicMock(
|
|
221
|
+
discord_channel=MagicMock(channel=12345),
|
|
222
|
+
name="Dup Feed",
|
|
223
|
+
url="http://example.com",
|
|
224
|
+
)
|
|
225
|
+
mock_select_related.return_value.get.return_value = mock_rss_feed
|
|
226
|
+
mock_existing = MagicMock(
|
|
227
|
+
rss_item_time=None,
|
|
228
|
+
rss_item_title="Duplicate Entry",
|
|
229
|
+
rss_item_link="http://example.com",
|
|
230
|
+
rss_item_guid="123",
|
|
231
|
+
)
|
|
232
|
+
mock_filter.return_value.first.return_value = mock_existing
|
|
233
|
+
|
|
234
|
+
_process_feed(1)
|
|
235
|
+
|
|
236
|
+
mock_send_message.assert_not_called()
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aa-rss-to-discord
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.5.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.5.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.5.0
|
|
830
832
|
|
|
831
833
|
python manage.py migrate
|
|
832
834
|
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
aa_rss_to_discord/__init__.py,sha256=oRLjP5GxtTTBs3u8daT9UZGf9VY442AI9mO6fKlhOSM,177
|
|
2
|
+
aa_rss_to_discord/admin.py,sha256=bbvD0w0vFgD4kR4riWIwpOWpb9t8R6BI7ofYqTZbjDw,440
|
|
3
|
+
aa_rss_to_discord/apps.py,sha256=jtIy1uXn92yURf7QG7TxzLniSbOAL41OzqjCLxTwMbA,458
|
|
4
|
+
aa_rss_to_discord/auth_hooks.py,sha256=k5mLzQR1NwtA5MCedLzPyULEhv4ylwqvFpTPZ62eWJ0,273
|
|
5
|
+
aa_rss_to_discord/constants.py,sha256=SD5aSlRanXsE07tV5q4PxVJXH0Xgivr8DjfNgyTDaqk,383
|
|
6
|
+
aa_rss_to_discord/managers.py,sha256=oERpP9OXZNg3_SJCKiMZrt7aa_NGxKswZntfgYkpRdA,307
|
|
7
|
+
aa_rss_to_discord/models.py,sha256=G-_LjShFDQFcbcg3nuR5mwjBl4zmANsgF8PIrokJOdU,1781
|
|
8
|
+
aa_rss_to_discord/providers.py,sha256=AwZ4QgWg_LNQsWjwHCurAFBHEFwTXGEDGUP6xTKxGJc,1029
|
|
9
|
+
aa_rss_to_discord/tasks.py,sha256=8-XzCVqWqc3bDE7Msf68ahsID2P5db6TSl1TTvVB0DQ,4360
|
|
10
|
+
aa_rss_to_discord/discordbot/cogs/__init__.py,sha256=3u3OJfO3Xh1GightCaX0lhbUbP7Lq2c1nY4Tg1FsrZo,27
|
|
11
|
+
aa_rss_to_discord/discordbot/cogs/rss.py,sha256=aPov4y-ckTwzXdXfKtA5WZZKwy7myOlW2xyK5yWGhy4,8174
|
|
12
|
+
aa_rss_to_discord/locale/django.pot,sha256=8TIU7nbQSLvCn7ydJlDSTQ3XchA-wI58x-6381VM5lA,962
|
|
13
|
+
aa_rss_to_discord/locale/cs_CZ/LC_MESSAGES/django.mo,sha256=e5Bcjwg3sIKgDgHKifbl2DcH0atHMSygiZwgvKEaifs,565
|
|
14
|
+
aa_rss_to_discord/locale/cs_CZ/LC_MESSAGES/django.po,sha256=glSjLlEzwDk1Pd67Jrq_RDUNaz2QE3mc2Ql9DES-ZeM,1187
|
|
15
|
+
aa_rss_to_discord/locale/de/LC_MESSAGES/django.mo,sha256=NGLMzDZwRKCvQH_RtK9wm6UXKWHLuipasTLnjaosbRE,717
|
|
16
|
+
aa_rss_to_discord/locale/de/LC_MESSAGES/django.po,sha256=9LPjn0KuhgP4UysXBNCsNuk8N3r1ByW3HIO45P2f2l0,1183
|
|
17
|
+
aa_rss_to_discord/locale/es/LC_MESSAGES/django.mo,sha256=VqcFVQKAN-xQqvtysBccVIbDGedac6l-qxgx-751R0c,665
|
|
18
|
+
aa_rss_to_discord/locale/es/LC_MESSAGES/django.po,sha256=_B94_jbdlKJZXWdJafD5e4gsT1P_slfdCU2GFHwxrOw,1239
|
|
19
|
+
aa_rss_to_discord/locale/fr_FR/LC_MESSAGES/django.mo,sha256=zwgaGEqI-UlHpc9q1irjc4xDxZJZBheixtIWz-43q1U,721
|
|
20
|
+
aa_rss_to_discord/locale/fr_FR/LC_MESSAGES/django.po,sha256=z8v_ElD8812eH9fin5ECwLabpSQtPMmTqLrV-NhgmSQ,1337
|
|
21
|
+
aa_rss_to_discord/locale/it_IT/LC_MESSAGES/django.mo,sha256=jyxuImpxL3PnEGxbqzYoLvrE014f-wPENwh0LMuWviM,487
|
|
22
|
+
aa_rss_to_discord/locale/it_IT/LC_MESSAGES/django.po,sha256=_3t0rE0nNX3hoR1WuJ8Sgz0NYGNiOHsKOi21Y0m8ti4,1107
|
|
23
|
+
aa_rss_to_discord/locale/ja/LC_MESSAGES/django.mo,sha256=dzafm9mmWwOeYbuJWyMmxTKxqdBu7ptUXdhXllkSoY4,770
|
|
24
|
+
aa_rss_to_discord/locale/ja/LC_MESSAGES/django.po,sha256=e3hUCwxBtvQ1n49Sca2EUg76pWECCb0M7BtTSi2hdN8,1229
|
|
25
|
+
aa_rss_to_discord/locale/ko_KR/LC_MESSAGES/django.mo,sha256=1IW9bwgVPrzDl_0crEO0UMaPF4jP3SyTUrZeRjalzCk,738
|
|
26
|
+
aa_rss_to_discord/locale/ko_KR/LC_MESSAGES/django.po,sha256=xcq0UAngQpTWXpThZE9446mSfCoFGQC6rqYrN6KbOMU,1239
|
|
27
|
+
aa_rss_to_discord/locale/nl_NL/LC_MESSAGES/django.mo,sha256=JLv2IW5Kp2wqE7MqNn9P9blZ_I-Jp0CIWiHsadYgFUU,483
|
|
28
|
+
aa_rss_to_discord/locale/nl_NL/LC_MESSAGES/django.po,sha256=tuGC3FENtiy5gLAq-Yr06Qi0bPCPWVDFGIQ-lw6ub28,1105
|
|
29
|
+
aa_rss_to_discord/locale/pl_PL/LC_MESSAGES/django.mo,sha256=2ugIqkNNVUGxIgfxUjU8SCIBJvSCn6vGzAV9Xnqiyag,543
|
|
30
|
+
aa_rss_to_discord/locale/pl_PL/LC_MESSAGES/django.po,sha256=fXiZFjrBEJ8zd3Di7jGLV8ertqHdWLlJ0ji2rNZENd0,1164
|
|
31
|
+
aa_rss_to_discord/locale/ru/LC_MESSAGES/django.mo,sha256=BzuRJnMwz-rpbr8rc_K755H-sstix0LsOpb7lSbkRuo,865
|
|
32
|
+
aa_rss_to_discord/locale/ru/LC_MESSAGES/django.po,sha256=HjHdmJwHL0npb3G-JsQLxR_wwpviWmmN21QVcJNriQU,1351
|
|
33
|
+
aa_rss_to_discord/locale/sk/LC_MESSAGES/django.mo,sha256=WPcDxnOaK_bCNIPoZQRxryi5F97g2RNn0Zuh9us90U0,562
|
|
34
|
+
aa_rss_to_discord/locale/sk/LC_MESSAGES/django.po,sha256=egM80yZBYOfHnHxV6DWCso0cHLy4NE4vcprFP6ywo2I,1180
|
|
35
|
+
aa_rss_to_discord/locale/uk/LC_MESSAGES/django.mo,sha256=lkMHhhk6cARn69ekx4BfYukLBm6y8-V6OaryZ2FQFP8,868
|
|
36
|
+
aa_rss_to_discord/locale/uk/LC_MESSAGES/django.po,sha256=o1GAI3lu-Qa0ofmOgOiG5Zulrx82h8CD9sdlmA33NGE,1412
|
|
37
|
+
aa_rss_to_discord/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=kFA6fZgb6fIbeSwnGhKHVqyV9eOxC0MMYi6DWBC2xII,768
|
|
38
|
+
aa_rss_to_discord/locale/zh_Hans/LC_MESSAGES/django.po,sha256=6sGFx_xqC5VUYgCcVvikD7fso5tZo0et5TRHqwF7r6I,1200
|
|
39
|
+
aa_rss_to_discord/migrations/0001_initial.py,sha256=TD8ZmWLleWEw1G3PlQh3HBU4pRXxwIfp_LMQj4IyTDE,2764
|
|
40
|
+
aa_rss_to_discord/migrations/0002_enable_disable_rss_feeds.py,sha256=apLeuxILrxvTntSc1bixfcDqpgt49VscyT6inLKU9k8,396
|
|
41
|
+
aa_rss_to_discord/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
+
aa_rss_to_discord/tests/__init__.py,sha256=hQ-yK-riPHikEE78PrbFZUKRToIZhif7-mD-yiHzjkM,873
|
|
43
|
+
aa_rss_to_discord/tests/test_auth_hooks.py,sha256=DZLEdVO9E82GEqPMv6_JOgSLPjU_DrB9uLWDgWgQ34w,1147
|
|
44
|
+
aa_rss_to_discord/tests/test_managers.py,sha256=Ar4Mc4z1k0701jjAWKTqe9BzxBjX-32KIdT4VgXfJ_s,1023
|
|
45
|
+
aa_rss_to_discord/tests/test_models.py,sha256=XtqGVZQbbtyDktYlHYsKFrLb3qB-UpU7wIpA6gXsKL8,4823
|
|
46
|
+
aa_rss_to_discord/tests/test_providers.py,sha256=ZF1zV3-_yFWwruiR_g2yB-RRy_t5W0WPbaF7guFRXF8,2677
|
|
47
|
+
aa_rss_to_discord/tests/test_tasks.py,sha256=lSoeqGulKiRFT3Hyrlg1svv7RqiBD3DSfC8vOGRVqhs,7969
|
|
48
|
+
aa_rss_to_discord-2.5.0.dist-info/METADATA,sha256=EIURDFtfbPZ7jYn7nBxKCIr6CapGqGBzVNP4dJs9cXs,50408
|
|
49
|
+
aa_rss_to_discord-2.5.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
50
|
+
aa_rss_to_discord-2.5.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
51
|
+
aa_rss_to_discord-2.5.0.dist-info/RECORD,,
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
aa_rss_to_discord/__init__.py,sha256=0whaokU-P0UIlscIvzUt30Yp45Q_KIi_jQQhl7JQB-0,142
|
|
2
|
-
aa_rss_to_discord/admin.py,sha256=bbvD0w0vFgD4kR4riWIwpOWpb9t8R6BI7ofYqTZbjDw,440
|
|
3
|
-
aa_rss_to_discord/apps.py,sha256=2VCJz9NRLjonlVLMngaoTQLk62hfJwBTSc49PfUK4EE,322
|
|
4
|
-
aa_rss_to_discord/auth_hooks.py,sha256=k5mLzQR1NwtA5MCedLzPyULEhv4ylwqvFpTPZ62eWJ0,273
|
|
5
|
-
aa_rss_to_discord/constants.py,sha256=A-HavWaksOcqEjaaAR-iXwWS9dtZSH3G-yP9SFBZU7s,386
|
|
6
|
-
aa_rss_to_discord/managers.py,sha256=bM4Mi4J-DFKVUhTFrKRh7FmZfZrWcUgOlF7Yeu69lw0,303
|
|
7
|
-
aa_rss_to_discord/models.py,sha256=G-_LjShFDQFcbcg3nuR5mwjBl4zmANsgF8PIrokJOdU,1781
|
|
8
|
-
aa_rss_to_discord/tasks.py,sha256=_PSOR-lapSkvp97X9TFg7hxEYCU8cDANnUJlv2iL-pI,7189
|
|
9
|
-
aa_rss_to_discord/discordbot/cogs/__init__.py,sha256=3u3OJfO3Xh1GightCaX0lhbUbP7Lq2c1nY4Tg1FsrZo,27
|
|
10
|
-
aa_rss_to_discord/discordbot/cogs/rss.py,sha256=aPov4y-ckTwzXdXfKtA5WZZKwy7myOlW2xyK5yWGhy4,8174
|
|
11
|
-
aa_rss_to_discord/locale/django.pot,sha256=MRNwbemT080BPXdaOXE6Nq6WU_MDrvxAbiEg5v53PXk,966
|
|
12
|
-
aa_rss_to_discord/locale/cs_CZ/LC_MESSAGES/django.mo,sha256=e5Bcjwg3sIKgDgHKifbl2DcH0atHMSygiZwgvKEaifs,565
|
|
13
|
-
aa_rss_to_discord/locale/cs_CZ/LC_MESSAGES/django.po,sha256=aTxx0QopU2fycwY6N-gDalRXXvh2CqAiwtqaVrIlYXE,1186
|
|
14
|
-
aa_rss_to_discord/locale/de/LC_MESSAGES/django.mo,sha256=NGLMzDZwRKCvQH_RtK9wm6UXKWHLuipasTLnjaosbRE,717
|
|
15
|
-
aa_rss_to_discord/locale/de/LC_MESSAGES/django.po,sha256=AWRwEh2bxYFQzTw1cTKWu9N3cNUVAwIv9ZoGiKUeNtQ,1182
|
|
16
|
-
aa_rss_to_discord/locale/es/LC_MESSAGES/django.mo,sha256=BNXYj-j0OPYFuLpm0uJS_b28tdtbs1BOMYp_HCWcoC8,664
|
|
17
|
-
aa_rss_to_discord/locale/es/LC_MESSAGES/django.po,sha256=0exdtddV-bYcBXo0-HE5MzAnoqgs_v69fuzha4vKyGs,1195
|
|
18
|
-
aa_rss_to_discord/locale/fr_FR/LC_MESSAGES/django.mo,sha256=zwgaGEqI-UlHpc9q1irjc4xDxZJZBheixtIWz-43q1U,721
|
|
19
|
-
aa_rss_to_discord/locale/fr_FR/LC_MESSAGES/django.po,sha256=d_yO6m-FwEvYwQFS-XjGgPSvPserqxmkAbiv4G80rs4,1336
|
|
20
|
-
aa_rss_to_discord/locale/it_IT/LC_MESSAGES/django.mo,sha256=jyxuImpxL3PnEGxbqzYoLvrE014f-wPENwh0LMuWviM,487
|
|
21
|
-
aa_rss_to_discord/locale/it_IT/LC_MESSAGES/django.po,sha256=W3I2fyATzgRVlWqias9YNU2rACFP5td7KZEsgjNRNGE,1106
|
|
22
|
-
aa_rss_to_discord/locale/ja/LC_MESSAGES/django.mo,sha256=dzafm9mmWwOeYbuJWyMmxTKxqdBu7ptUXdhXllkSoY4,770
|
|
23
|
-
aa_rss_to_discord/locale/ja/LC_MESSAGES/django.po,sha256=qRxwrEuNSWsAlFzvVdhufdVyH588Sblr3QkzSK4nCi0,1228
|
|
24
|
-
aa_rss_to_discord/locale/ko_KR/LC_MESSAGES/django.mo,sha256=1IW9bwgVPrzDl_0crEO0UMaPF4jP3SyTUrZeRjalzCk,738
|
|
25
|
-
aa_rss_to_discord/locale/ko_KR/LC_MESSAGES/django.po,sha256=plSKIMGtfVDCzA9KS8VJ1r-VchImlXjKtIPuj3K1QMA,1238
|
|
26
|
-
aa_rss_to_discord/locale/nl_NL/LC_MESSAGES/django.mo,sha256=JLv2IW5Kp2wqE7MqNn9P9blZ_I-Jp0CIWiHsadYgFUU,483
|
|
27
|
-
aa_rss_to_discord/locale/nl_NL/LC_MESSAGES/django.po,sha256=Z9GQfIOu01jReNrD1AyMUQWYcNB-kU4A8ax0Zie33pQ,1104
|
|
28
|
-
aa_rss_to_discord/locale/pl_PL/LC_MESSAGES/django.mo,sha256=2ugIqkNNVUGxIgfxUjU8SCIBJvSCn6vGzAV9Xnqiyag,543
|
|
29
|
-
aa_rss_to_discord/locale/pl_PL/LC_MESSAGES/django.po,sha256=DCTXRAYUTp0Pl7LQtyBbjNzvBDDebwYEkuZPr6WH6tw,1163
|
|
30
|
-
aa_rss_to_discord/locale/ru/LC_MESSAGES/django.mo,sha256=BzuRJnMwz-rpbr8rc_K755H-sstix0LsOpb7lSbkRuo,865
|
|
31
|
-
aa_rss_to_discord/locale/ru/LC_MESSAGES/django.po,sha256=FHWUDQuXVFtC66i_3zmOKLom_59_eiz3Qlkpq4C5Tik,1350
|
|
32
|
-
aa_rss_to_discord/locale/sk/LC_MESSAGES/django.mo,sha256=WPcDxnOaK_bCNIPoZQRxryi5F97g2RNn0Zuh9us90U0,562
|
|
33
|
-
aa_rss_to_discord/locale/sk/LC_MESSAGES/django.po,sha256=sHM7QAkVQSoma3HFvCjlOpZjnZKe-Cv8uD51LS0FNXc,1179
|
|
34
|
-
aa_rss_to_discord/locale/uk/LC_MESSAGES/django.mo,sha256=1Qlw1MJfXv9eapoWPS_Rw9FuPBXL1bSIGu8PjB6Hgt8,866
|
|
35
|
-
aa_rss_to_discord/locale/uk/LC_MESSAGES/django.po,sha256=wgGagDcwL8lK_Iz-MeoYilNeeVmDGNAvNaSuG_CCiuM,1359
|
|
36
|
-
aa_rss_to_discord/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=DaODnWQcYUSgtxUaPmZoEG6IQ190DS3WzCh6uNvhHh8,518
|
|
37
|
-
aa_rss_to_discord/locale/zh_Hans/LC_MESSAGES/django.po,sha256=izUmS9k0tEiR7_aDH_Z0ku4GFzcTTnSI7l9tZIboFSI,1121
|
|
38
|
-
aa_rss_to_discord/migrations/0001_initial.py,sha256=TD8ZmWLleWEw1G3PlQh3HBU4pRXxwIfp_LMQj4IyTDE,2764
|
|
39
|
-
aa_rss_to_discord/migrations/0002_enable_disable_rss_feeds.py,sha256=apLeuxILrxvTntSc1bixfcDqpgt49VscyT6inLKU9k8,396
|
|
40
|
-
aa_rss_to_discord/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
-
aa_rss_to_discord-2.3.32.3.3.dist-info/METADATA,sha256=UXFmdqcrdOuu7jdVJ_HPEQTTSqi-GjMINhpNNoqPfig,50239
|
|
42
|
-
aa_rss_to_discord-2.3.32.3.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
43
|
-
aa_rss_to_discord-2.3.32.3.3.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
44
|
-
aa_rss_to_discord-2.3.32.3.3.dist-info/RECORD,,
|
{aa_rss_to_discord-2.3.32.3.3.dist-info → aa_rss_to_discord-2.5.0.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|