#!/usr/bin/env python3
"""
python pwb.py updatewin -f:"addsortkey.py" -s:"Nû"
"""
import re
import pywikibot
import json
from pywikibot import textlib
from kucosmetics import CANCEL, CosmeticChangesToolkit
site = pywikibot.Site("ku", "wikipedia")
def do_kozmetik(page, old_text):
kozmetik_cebu = ""
cc_toolkit = CosmeticChangesToolkit(page, ignore=CANCEL.MATCH)
new_text, summaries = cc_toolkit.change(old_text)
applied_summaries = ', '.join(summaries.values())
if new_text is not False and new_text != old_text:
kozmetik_cebu = "; paqijiyên kozmetîk"
if applied_summaries:
kozmetik_cebu += f' ({applied_summaries}.)'
return new_text, kozmetik_cebu
# Function to add a sort key to a category
def add_sort_key_to_category(main_cat, category_title, sort_key):
page = pywikibot.Page(site, category_title)
text = page.text
new_text = text
categories = textlib.getCategoryLinks(new_text, site=site)
if categories:
new_main = pywikibot.Category(site, main_cat, sort_key=sort_key)
categories.pop(categories.index(new_main))
categories.insert(0, new_main)
new_text = textlib.replaceCategoryLinks(new_text, categories, site=site)
if text != new_text:
cleaned_new_text, kozmetik_cebu = do_kozmetik(page, new_text)
page.text = cleaned_new_text
page.save(summary=f"[[Bikarhêner:Balyozxane/skrîpt/py/addsortkey.py|Bot]]: Kilîda rêzkirinê li [[{main_cat}]] hat zêdekirin{kozmetik_cebu}")
def main():
page = pywikibot.Page(site, 'Wîkîpediya:AddSortKey.json') # Specify the page title
text = page.text # Get the page content
json_data = {}
kats = None
pattern = None
sereke = None
try:
json_data = json.loads(text) # Parse the JSON content
except json.JSONDecodeError as e:
print("Failed to parse JSON:", e)
if not json_data:
return
for key, value in json_data.items():
sereke = key
pattern = value["pattern"]
kats = value["kats"]
print("sereke")
print(sereke)
for cat in kats:
match = re.search(pattern, cat)
if match:
sort_key = match.group(1)
print(cat)
print(sort_key)
add_sort_key_to_category(sereke, cat, sort_key)
page.text = "{}"
page.save(summary="[[Bikarhêner:Balyozxane/skrîpt/py/addsortkey.py|Bot]]: Hemû çêbû")
if __name__ == "__main__":
main()