]> ToastFreeware Gitweb - philipp/winterrodeln/wrpylib.git/commitdiff
Rename bots for consistency.
authorPhilipp Spitzer <philipp@spitzer.priv.at>
Sun, 13 Mar 2022 20:02:09 +0000 (21:02 +0100)
committerPhilipp Spitzer <philipp@spitzer.priv.at>
Sun, 13 Mar 2022 20:02:09 +0000 (21:02 +0100)
bots/json_edit.py [deleted file]
bots/json_validate.py [deleted file]
bots/sledrun_from_json.py [deleted file]
bots/sledrun_json_edit.py [new file with mode: 0644]
bots/sledrun_json_validate.py [new file with mode: 0644]
bots/sledrun_wikitext_from_json.py [new file with mode: 0644]

diff --git a/bots/json_edit.py b/bots/json_edit.py
deleted file mode 100644 (file)
index 648b189..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/usr/bin/python
-"""
-User script for pywikibot (https://gerrit.wikimedia.org/r/pywikibot/core.git), tested with version 6.6.1.
-Put it in directory scripts/userscripts.
-
-Edit JSON associated with sledruns.
-
-The following generators and filters are supported:
-
-&params;
-"""
-import json
-
-import pywikibot
-from jsonschema import validate
-from pywikibot import pagegenerators, Page
-from pywikibot.bot import (
-    AutomaticTWSummaryBot,
-    ConfigParserBot,
-    ExistingPageBot,
-    NoRedirectPageBot,
-    SingleSiteBot,
-)
-
-from wrpylib.json_tools import order_json_keys
-from wrpylib.wrmwmarkup import create_sledrun_wiki
-
-
-docuReplacements = {'&params;': pagegenerators.parameterHelp}
-
-
-class SledrunFromJsonBot(
-    SingleSiteBot,
-    ConfigParserBot,
-    ExistingPageBot,
-    NoRedirectPageBot,
-    AutomaticTWSummaryBot,
-):
-    def setup(self) -> None:
-        schema = Page(self.site, 'Winterrodeln:Datenschema/Rodelbahn/V1.json')
-        assert schema.content_model == 'json'
-        self.sledrun_schema = json.loads(schema.text)
-
-    def treat_page(self) -> None:
-        """Load the given page, do some changes, and save it."""
-        if self.current_page.content_model != 'json':
-            return
-        content_json = json.loads(self.current_page.text)
-
-        # *here*, content_json can be processed
-        processed_json = content_json
-
-        validate(instance=processed_json, schema=self.sledrun_schema)
-        processed_json_ordered = order_json_keys(processed_json, self.sledrun_schema)
-        assert processed_json_ordered == processed_json
-        text = json.dumps(processed_json_ordered, ensure_ascii=False, indent=4)
-
-        summary = 'JSON Daten aktualisiert.'
-        self.put_current(text, summary=summary)
-
-
-def main(*args: str) -> None:
-    local_args = pywikibot.handle_args(args)
-    gen_factory = pagegenerators.GeneratorFactory()
-    gen_factory.handle_args(local_args)
-    gen = gen_factory.getCombinedGenerator(preload=True)
-    if gen:
-        bot = SledrunFromJsonBot(generator=gen)
-        bot.run()
-    else:
-        pywikibot.bot.suggest_help(missing_generator=True)
-
-
-if __name__ == '__main__':
-    main()
diff --git a/bots/json_validate.py b/bots/json_validate.py
deleted file mode 100644 (file)
index 4dbccfd..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/usr/bin/python
-"""
-User script for pywikibot (https://gerrit.wikimedia.org/r/pywikibot/core.git), tested with version 6.6.1.
-Put it in directory scripts/userscripts.
-
-Edit JSON associated with sledruns.
-
-The following generators and filters are supported:
-
-&params;
-"""
-import json
-import jsonschema
-from jsonschema import validate
-
-import pywikibot
-from pywikibot import pagegenerators, Page
-from pywikibot.bot import (
-    AutomaticTWSummaryBot,
-    ConfigParserBot,
-    ExistingPageBot,
-    NoRedirectPageBot,
-    SingleSiteBot,
-)
-
-from wrpylib.json_tools import order_json_keys
-
-docuReplacements = {'&params;': pagegenerators.parameterHelp}
-
-
-class SledrunFromJsonBot(
-    SingleSiteBot,
-    ConfigParserBot,
-    ExistingPageBot,
-    NoRedirectPageBot,
-    AutomaticTWSummaryBot,
-):
-    def setup(self) -> None:
-        schema = Page(self.site, 'Winterrodeln:Datenschema/Rodelbahn/V1.json')
-        assert schema.content_model == 'json'
-        self.sledrun_schema = json.loads(schema.text)
-
-    def treat_page(self) -> None:
-        """Load the given page, do some changes, and save it."""
-        content_json = json.loads(self.current_page.text)
-        try:
-            validate(instance=content_json, schema=self.sledrun_schema)
-
-            content_json_ordered = order_json_keys(content_json, self.sledrun_schema)
-            assert content_json_ordered == content_json
-            text = json.dumps(content_json_ordered, ensure_ascii=False, indent=4)
-
-        except jsonschema.exceptions.ValidationError as e:
-            text = str(e)
-
-        summary = 'JSON Daten aktualisiert.'
-        self.put_current(text, summary=summary)
-
-
-def main(*args: str) -> None:
-    local_args = pywikibot.handle_args(args)
-    gen_factory = pagegenerators.GeneratorFactory()
-    gen_factory.handle_args(local_args)
-    gen = gen_factory.getCombinedGenerator(preload=True)
-    if gen:
-        bot = SledrunFromJsonBot(generator=gen)
-        bot.run()
-    else:
-        pywikibot.bot.suggest_help(missing_generator=True)
-
-
-if __name__ == '__main__':
-    main()
diff --git a/bots/sledrun_from_json.py b/bots/sledrun_from_json.py
deleted file mode 100644 (file)
index 73367bd..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/usr/bin/python
-"""
-User script for pywikibot (https://gerrit.wikimedia.org/r/pywikibot/core.git), tested with version 6.6.1.
-Put it in directory scripts/userscripts.
-
-Replace a sledrun page with content generated from associated JSON subpages
-(Rodelbahn and Landkarte).
-
-The following generators and filters are supported:
-
-&params;
-"""
-import json
-
-import pywikibot
-from pywikibot import pagegenerators, Page
-from pywikibot.bot import (
-    AutomaticTWSummaryBot,
-    ConfigParserBot,
-    ExistingPageBot,
-    NoRedirectPageBot,
-    SingleSiteBot,
-)
-from pywikibot.logging import warning
-
-from wrpylib.wrmwmarkup import create_sledrun_wiki
-
-
-docuReplacements = {'&params;': pagegenerators.parameterHelp}
-
-
-class SledrunFromJsonBot(
-    SingleSiteBot,
-    ConfigParserBot,
-    ExistingPageBot,
-    NoRedirectPageBot,
-    AutomaticTWSummaryBot,
-):
-    def treat_page(self) -> None:
-        """Load the given page, do some changes, and save it."""
-        sledrun_json_page = Page(self.site, self.current_page.title() + '/Rodelbahn.json')
-        if not sledrun_json_page.exists():
-            warning(f"{sledrun_json_page.title()} does not exist. Skipping.")
-            return
-        if sledrun_json_page.content_model != 'json':
-            warning(f"Content model of {sledrun_json_page.title()} is not 'json'.")
-            return
-        sledrun_json = json.loads(sledrun_json_page.text)
-        map_json_page = Page(self.site, self.current_page.title() + '/Landkarte.json')
-        if map_json_page.exists():
-            map_json = json.loads(map_json_page.text)
-        else:
-            map_json = None
-        impressions = None
-        sledrun_impressions_page = Page(self.site, self.current_page.title() + '/Impressionen')
-        if sledrun_impressions_page.exists():
-            impressions = sledrun_impressions_page.title()
-        text = create_sledrun_wiki(sledrun_json, map_json, impressions)
-        summary = 'Rodelbahnbeschreibung von aus JSON Daten aktualisiert.'
-        self.put_current(text, summary=summary)
-
-
-def main(*args: str) -> None:
-    local_args = pywikibot.handle_args(args)
-    gen_factory = pagegenerators.GeneratorFactory()
-    gen_factory.handle_args(local_args)
-    gen = gen_factory.getCombinedGenerator(preload=True)
-    if gen:
-        bot = SledrunFromJsonBot(generator=gen)
-        bot.run()
-    else:
-        pywikibot.bot.suggest_help(missing_generator=True)
-
-
-if __name__ == '__main__':
-    main()
diff --git a/bots/sledrun_json_edit.py b/bots/sledrun_json_edit.py
new file mode 100644 (file)
index 0000000..648b189
--- /dev/null
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+"""
+User script for pywikibot (https://gerrit.wikimedia.org/r/pywikibot/core.git), tested with version 6.6.1.
+Put it in directory scripts/userscripts.
+
+Edit JSON associated with sledruns.
+
+The following generators and filters are supported:
+
+&params;
+"""
+import json
+
+import pywikibot
+from jsonschema import validate
+from pywikibot import pagegenerators, Page
+from pywikibot.bot import (
+    AutomaticTWSummaryBot,
+    ConfigParserBot,
+    ExistingPageBot,
+    NoRedirectPageBot,
+    SingleSiteBot,
+)
+
+from wrpylib.json_tools import order_json_keys
+from wrpylib.wrmwmarkup import create_sledrun_wiki
+
+
+docuReplacements = {'&params;': pagegenerators.parameterHelp}
+
+
+class SledrunFromJsonBot(
+    SingleSiteBot,
+    ConfigParserBot,
+    ExistingPageBot,
+    NoRedirectPageBot,
+    AutomaticTWSummaryBot,
+):
+    def setup(self) -> None:
+        schema = Page(self.site, 'Winterrodeln:Datenschema/Rodelbahn/V1.json')
+        assert schema.content_model == 'json'
+        self.sledrun_schema = json.loads(schema.text)
+
+    def treat_page(self) -> None:
+        """Load the given page, do some changes, and save it."""
+        if self.current_page.content_model != 'json':
+            return
+        content_json = json.loads(self.current_page.text)
+
+        # *here*, content_json can be processed
+        processed_json = content_json
+
+        validate(instance=processed_json, schema=self.sledrun_schema)
+        processed_json_ordered = order_json_keys(processed_json, self.sledrun_schema)
+        assert processed_json_ordered == processed_json
+        text = json.dumps(processed_json_ordered, ensure_ascii=False, indent=4)
+
+        summary = 'JSON Daten aktualisiert.'
+        self.put_current(text, summary=summary)
+
+
+def main(*args: str) -> None:
+    local_args = pywikibot.handle_args(args)
+    gen_factory = pagegenerators.GeneratorFactory()
+    gen_factory.handle_args(local_args)
+    gen = gen_factory.getCombinedGenerator(preload=True)
+    if gen:
+        bot = SledrunFromJsonBot(generator=gen)
+        bot.run()
+    else:
+        pywikibot.bot.suggest_help(missing_generator=True)
+
+
+if __name__ == '__main__':
+    main()
diff --git a/bots/sledrun_json_validate.py b/bots/sledrun_json_validate.py
new file mode 100644 (file)
index 0000000..4dbccfd
--- /dev/null
@@ -0,0 +1,73 @@
+#!/usr/bin/python
+"""
+User script for pywikibot (https://gerrit.wikimedia.org/r/pywikibot/core.git), tested with version 6.6.1.
+Put it in directory scripts/userscripts.
+
+Edit JSON associated with sledruns.
+
+The following generators and filters are supported:
+
+&params;
+"""
+import json
+import jsonschema
+from jsonschema import validate
+
+import pywikibot
+from pywikibot import pagegenerators, Page
+from pywikibot.bot import (
+    AutomaticTWSummaryBot,
+    ConfigParserBot,
+    ExistingPageBot,
+    NoRedirectPageBot,
+    SingleSiteBot,
+)
+
+from wrpylib.json_tools import order_json_keys
+
+docuReplacements = {'&params;': pagegenerators.parameterHelp}
+
+
+class SledrunFromJsonBot(
+    SingleSiteBot,
+    ConfigParserBot,
+    ExistingPageBot,
+    NoRedirectPageBot,
+    AutomaticTWSummaryBot,
+):
+    def setup(self) -> None:
+        schema = Page(self.site, 'Winterrodeln:Datenschema/Rodelbahn/V1.json')
+        assert schema.content_model == 'json'
+        self.sledrun_schema = json.loads(schema.text)
+
+    def treat_page(self) -> None:
+        """Load the given page, do some changes, and save it."""
+        content_json = json.loads(self.current_page.text)
+        try:
+            validate(instance=content_json, schema=self.sledrun_schema)
+
+            content_json_ordered = order_json_keys(content_json, self.sledrun_schema)
+            assert content_json_ordered == content_json
+            text = json.dumps(content_json_ordered, ensure_ascii=False, indent=4)
+
+        except jsonschema.exceptions.ValidationError as e:
+            text = str(e)
+
+        summary = 'JSON Daten aktualisiert.'
+        self.put_current(text, summary=summary)
+
+
+def main(*args: str) -> None:
+    local_args = pywikibot.handle_args(args)
+    gen_factory = pagegenerators.GeneratorFactory()
+    gen_factory.handle_args(local_args)
+    gen = gen_factory.getCombinedGenerator(preload=True)
+    if gen:
+        bot = SledrunFromJsonBot(generator=gen)
+        bot.run()
+    else:
+        pywikibot.bot.suggest_help(missing_generator=True)
+
+
+if __name__ == '__main__':
+    main()
diff --git a/bots/sledrun_wikitext_from_json.py b/bots/sledrun_wikitext_from_json.py
new file mode 100644 (file)
index 0000000..73367bd
--- /dev/null
@@ -0,0 +1,76 @@
+#!/usr/bin/python
+"""
+User script for pywikibot (https://gerrit.wikimedia.org/r/pywikibot/core.git), tested with version 6.6.1.
+Put it in directory scripts/userscripts.
+
+Replace a sledrun page with content generated from associated JSON subpages
+(Rodelbahn and Landkarte).
+
+The following generators and filters are supported:
+
+&params;
+"""
+import json
+
+import pywikibot
+from pywikibot import pagegenerators, Page
+from pywikibot.bot import (
+    AutomaticTWSummaryBot,
+    ConfigParserBot,
+    ExistingPageBot,
+    NoRedirectPageBot,
+    SingleSiteBot,
+)
+from pywikibot.logging import warning
+
+from wrpylib.wrmwmarkup import create_sledrun_wiki
+
+
+docuReplacements = {'&params;': pagegenerators.parameterHelp}
+
+
+class SledrunFromJsonBot(
+    SingleSiteBot,
+    ConfigParserBot,
+    ExistingPageBot,
+    NoRedirectPageBot,
+    AutomaticTWSummaryBot,
+):
+    def treat_page(self) -> None:
+        """Load the given page, do some changes, and save it."""
+        sledrun_json_page = Page(self.site, self.current_page.title() + '/Rodelbahn.json')
+        if not sledrun_json_page.exists():
+            warning(f"{sledrun_json_page.title()} does not exist. Skipping.")
+            return
+        if sledrun_json_page.content_model != 'json':
+            warning(f"Content model of {sledrun_json_page.title()} is not 'json'.")
+            return
+        sledrun_json = json.loads(sledrun_json_page.text)
+        map_json_page = Page(self.site, self.current_page.title() + '/Landkarte.json')
+        if map_json_page.exists():
+            map_json = json.loads(map_json_page.text)
+        else:
+            map_json = None
+        impressions = None
+        sledrun_impressions_page = Page(self.site, self.current_page.title() + '/Impressionen')
+        if sledrun_impressions_page.exists():
+            impressions = sledrun_impressions_page.title()
+        text = create_sledrun_wiki(sledrun_json, map_json, impressions)
+        summary = 'Rodelbahnbeschreibung von aus JSON Daten aktualisiert.'
+        self.put_current(text, summary=summary)
+
+
+def main(*args: str) -> None:
+    local_args = pywikibot.handle_args(args)
+    gen_factory = pagegenerators.GeneratorFactory()
+    gen_factory.handle_args(local_args)
+    gen = gen_factory.getCombinedGenerator(preload=True)
+    if gen:
+        bot = SledrunFromJsonBot(generator=gen)
+        bot.run()
+    else:
+        pywikibot.bot.suggest_help(missing_generator=True)
+
+
+if __name__ == '__main__':
+    main()