From aa0b120ad1c8d3a0f25e8c4d9cf287257c9c31f3 Mon Sep 17 00:00:00 2001 From: lokas Date: Wed, 4 Oct 2023 19:45:38 +0300 Subject: [PATCH 1/2] simple base --- .../__init__.py | 0 .../run.py | 4 ++ .../src/__init__.py | 0 .../src/bot.py | 54 +++++++++++++++++++ 4 files changed, 58 insertions(+) create mode 100644 tasks/Localization_of_Latin_quotation_marks/__init__.py create mode 100644 tasks/Localization_of_Latin_quotation_marks/run.py create mode 100644 tasks/Localization_of_Latin_quotation_marks/src/__init__.py create mode 100644 tasks/Localization_of_Latin_quotation_marks/src/bot.py diff --git a/tasks/Localization_of_Latin_quotation_marks/__init__.py b/tasks/Localization_of_Latin_quotation_marks/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tasks/Localization_of_Latin_quotation_marks/run.py b/tasks/Localization_of_Latin_quotation_marks/run.py new file mode 100644 index 00000000..7f2d2cf4 --- /dev/null +++ b/tasks/Localization_of_Latin_quotation_marks/run.py @@ -0,0 +1,4 @@ +from tasks.Localization_of_Latin_quotation_marks.src.bot import BotFactory + +bot = BotFactory() +bot.run("ميان غل أكبر ذيب") diff --git a/tasks/Localization_of_Latin_quotation_marks/src/__init__.py b/tasks/Localization_of_Latin_quotation_marks/src/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tasks/Localization_of_Latin_quotation_marks/src/bot.py b/tasks/Localization_of_Latin_quotation_marks/src/bot.py new file mode 100644 index 00000000..c573786c --- /dev/null +++ b/tasks/Localization_of_Latin_quotation_marks/src/bot.py @@ -0,0 +1,54 @@ +import pywikibot +import wikitextparser as wtp + + +class BotFactory: + def __init__(self): + self.site = pywikibot.Site() + self.page = None + self.page_text = str("") + + def load_page(self, page_title: str): + self.page = pywikibot.Page(self.site, page_title) + if not self.page.exists(): + raise Exception("Page " + page_title + " is not exists") + self.page_text = self.page.text + + def run(self, page_title: str): + self.load_page(page_title=page_title) + self.remove() + self.save() + + def remove(self): + parse = wtp.parse(self.page_text) + + # Create a list to store the start and end indices of templates and HTML tags + indices = [] + + # templates + for template in parse.templates: + indices.append(template.span) + + # HTML tags + for tag in parse.get_tags(): + indices.append(tag.span) + # tables + for table in parse.get_tables(): + indices.append(table.span) + + # Replace double quotes outside of templates and HTML tags + modified_content = list(self.page_text) + number_of_fount = 0 + for i in range(len(modified_content)): + if modified_content[i] == '"' and not any(start <= i < end for start, end in indices): + modified_content[i] = '«' if number_of_fount % 2 == 0 else '»' + number_of_fount += 1 + + # Join the modified characters back into a string + modified_content = ''.join(modified_content) + + self.page_text = modified_content + + def save(self): + self.page.text = self.page_text + self.page.save("بوت:تعريب علامات التنصيص اللاتينية") From cceb20f419b1481119eb963239fbf4ed38053cbb Mon Sep 17 00:00:00 2001 From: lokas Date: Wed, 4 Oct 2023 20:11:56 +0300 Subject: [PATCH 2/2] add demo data --- .../run.py | 112 +++++++++++++++++- .../src/bot.py | 2 +- 2 files changed, 111 insertions(+), 3 deletions(-) diff --git a/tasks/Localization_of_Latin_quotation_marks/run.py b/tasks/Localization_of_Latin_quotation_marks/run.py index 7f2d2cf4..a5f15a81 100644 --- a/tasks/Localization_of_Latin_quotation_marks/run.py +++ b/tasks/Localization_of_Latin_quotation_marks/run.py @@ -1,4 +1,112 @@ +list_of_pages = [ + "محمود_كجك_(لاعب_كرة_قدم)", + "علي_صباغ", + "كأس_العرب_2023", + "تعليم_في_لامارات", + "الجبهة_السورية_للتحرير", + "يو_إف_سي_ليلة_القتال:_ديلاشو_ضد_كروز", + "يو_إف_سي_على_فوكس:_ديلاشو_ضد_باراو_2", + "يو_إف_سي_على_فوكس:_هندرسون_ضد_دياز", + "عينين_سلامه_في_سأكون_عمان", + "مجلس_مراقبة_ألعاب_القوى_في_ولاية_نيوجيرسي", + "اليابان..", + "الغابات_(توضيح)", + "مقال_مدرسي", + "حسين_الأحدب", + "نزوح_آرمن_مرتفعات_قره_باغ", + "نزوح_أرمن_مرتفعات_قره_باغ", + "ديوان_الرئاسة_(الإمارات_العربية_المتحدة)", + "حسين_إبراهيم_الأحدب", + "رئيف_أبو_اللمع", + "رئيف_شديد_أبي_اللمع", + "اتفاق_وقف_إطلاق_النار_في_مرتفعات_قره_باغ_2023", + "بيدفيست_جروب", + "شاسترا", + "رئيف_أبي_اللمع", + "خليل_أبي_اللمع", + "سامي_ريحانا", + "روكز_طانيوس_أبو_ناضر", + "روكز_أبو_ناضر", + "شاهزاده_أحمد", + "منصور_بن_عبد_الرحمن_الطنوخي", + "صلاح_البنعلي", + "جابي_روث", + "إينر_جنسن", + "السلطة_التعليمية", + "داني_جنسن", + "ماجد_بن_حمود_السعدون", + "الغليون_(البايب)", + "ألفي_بو", + "إيرما_سيرماي", + "آنا_ألما_تاديما", + "ماري_بويس_تيمبل", + "ليه_دينيس", + "سيسفان", + "أميليا_سكوت", + "أزياء_ستيمبانك", + "تشارلز_بولفينش", + "داني_واشبروك", + "ألكسندر_تومسون", + "نيتي_أوتنبرغ", + "أوكتافيا_ويليامز_بيتس", + "وادي_دقيق", + "أغنيس_دولان", + "ماري_كوك_برانش_مونفورد", + "الإجهاض_في_البرازيل", + "ليوبولد_السادس_دوق_النمسا", + "آني_شناكنبيرغ", + "متلازمة_ثلاسيميا_ألفا_مرتبطة_بتخلف_عقلي", + "شارلوت_آيفز_كوب_كيربي", + "حنيطة", + "علي_الشعالي", + "منظف_الفرش", + "وادي_الحيول", + "لبنان_في_ألعاب_البحر_الأبيض_المتوسط_2009", + "كابستان_(سيجارة)", + "اساف_ماندفي", + "التبغ_التركي", + "بطولة_يو_إف_سي_لوزن_الريشة", + "مطار_أولاد_محمد", + "أبو_ليلى", + "حمبصيص", + "عملية_أحلام_الأنابيب", + "ألفريد_دنهيل_المحدودة", + "مطار_سكن_أولاد_محمد", + "لبنان_في_الألعاب_الآسيوية_2022", + "محمد_محسن_(منتج_سينمائي)", + "جيم_سباي_أركيد", + "محاولة_انقلاب_1961_في_لبنان", + "فلسطين_في_الألعاب_الآسيوية_2022", + "كأس_الأردن_2021", + "قائمة_الشركات_المصرية", + "جعفر_بن_منصور_اليمن", + "عفيف_بن_معديكرب", + "ألفريد_دنهيل_المحدودة.", + "ذا_هانج_اوفر", + "ذا_هانج_اوفر_(سلسلة_أفلام)", + "خزاف", + "فرجينيا_الذهبية", + "حكاية_المغربي_(رواية)", + "علي_ميرزا_الصفوي", + "جوتنبرج_رابيه", + "سجائر_الموضة", + "يوم_حصاد_كوكب", + "الغابات_(لبنان)", + "حسين_بيك_شاملو", + "صلاة_مدرسية", + "ليستير_ر._براون", + "قائمة_الوحدات_الإدارية_في_محافظة_السويس", + "فن_اليوتشول", + "جوزف_إبراهيم_أبو_خاطر", + "جوزيف_أبو_خاطر", + +] + from tasks.Localization_of_Latin_quotation_marks.src.bot import BotFactory -bot = BotFactory() -bot.run("ميان غل أكبر ذيب") +for page in list_of_pages: + try: + bot = BotFactory() + bot.run(page.replace("_", " ")) + except Exception as e: + print(e) diff --git a/tasks/Localization_of_Latin_quotation_marks/src/bot.py b/tasks/Localization_of_Latin_quotation_marks/src/bot.py index c573786c..449d5c9a 100644 --- a/tasks/Localization_of_Latin_quotation_marks/src/bot.py +++ b/tasks/Localization_of_Latin_quotation_marks/src/bot.py @@ -51,4 +51,4 @@ def remove(self): def save(self): self.page.text = self.page_text - self.page.save("بوت:تعريب علامات التنصيص اللاتينية") + self.page.save("بوت:تعريب علامات التنصيص اللاتينية v0.0.1-beta")