From 531aa9d6d051c260fe2025ab222b475ebf8c22d6 Mon Sep 17 00:00:00 2001 From: arcstur Date: Wed, 10 Sep 2025 11:25:32 -0300 Subject: [PATCH 1/2] fix: add User-Agent as per WMF policy --- editgroups/settings/common.py | 2 +- store/stream.py | 3 +++ store/tests.py | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/editgroups/settings/common.py b/editgroups/settings/common.py index 0ac52fa..8970cb6 100644 --- a/editgroups/settings/common.py +++ b/editgroups/settings/common.py @@ -244,4 +244,4 @@ } } - +USER_AGENT = "EditGroups (https://www.wikidata.org/wiki/Wikidata:Edit_groups)" diff --git a/store/stream.py b/store/stream.py index 583a080..102f9a2 100644 --- a/store/stream.py +++ b/store/stream.py @@ -6,6 +6,9 @@ class WikiEditStream(object): def __init__(self): self.url = 'https://stream.wikimedia.org/v2/stream/recentchange' self.wiki = settings.WIKI_CODENAME + self.headers = { + "User-Agent": settings.USER_AGENT + } def stream(self, from_time=None): url = self.url diff --git a/store/tests.py b/store/tests.py index fc8c449..14550fb 100644 --- a/store/tests.py +++ b/store/tests.py @@ -364,6 +364,7 @@ def test_stream(self): if idx > 10: break self.assertEquals('wikidatawiki', edit['wiki']) + self.assertEqual(s.headers["User-Agent"], "EditGroups (https://www.wikidata.org/wiki/Wikidata:Edit_groups)") class PagesTest(TestCase): From 72ee9a84ccaa3482718b0aea6bd50198e1b9451f Mon Sep 17 00:00:00 2001 From: arcstur Date: Wed, 10 Sep 2025 11:28:24 -0300 Subject: [PATCH 2/2] fix: add headers parameter to EventSource --- store/stream.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/store/stream.py b/store/stream.py index 102f9a2..d84f513 100644 --- a/store/stream.py +++ b/store/stream.py @@ -14,7 +14,7 @@ def stream(self, from_time=None): url = self.url if from_time is not None: url += '?since='+from_time.isoformat().replace('+00:00', 'Z') - for event in EventSource(url, timeout=30): + for event in EventSource(url, timeout=30, headers=self.headers): if event.event == 'message': try: change = json.loads(event.data)