رُکُن:RishabhBot/source-code/ks-Deva-numerals.py

وِکیٖلۄغَتھ پؠٹھٕ
import re
import pywikibot
site = pywikibot.Site("ks", "wiktionary")
#cat = pywikibot.Category(site, "زٲژ:کٲشرِ آنکونہٕ گرَٛنٛد").articles()
i_f = open("ks-deva-ipa.txt", "r")
ipas = [i.strip() for i in i_f.readlines()]
i_f.close()
n_f = open("ks-deva-nums.txt", "r")
nums = [i.strip().lower() for i in n_f.readlines()]
n_f.close()
pa_dict= {'اَرٕترٕٛہ': 'arɨtrɨh', 'اَرٕتٲجِہہ': 'arɨtəːd͡ʒih', 'اَرٕتٲجی': 'arɨtəːd͡ʒiː', 'اَرٕداہ': 'arɨdaːh', 'اَرٕسَتَتھ': 'arɨsatatʰ', 'اَرٕشيٖتھ': 'arɨʃiːtʰ', 'اَرٕنَمَتھ': 'arɨnamatʰ', 'اَرٕوَنٛزاہ': 'arɨwanzaːh', 'اَرٕہٲٹھ': 'arɨhəːʈʰ', 'اَٹھووُہ': 'aʈʰoːwuh', 'اَکھ': 'akʰ', 'اَکہٕ ترٕٛہ': 'akɨtrɨh', 'اَکہٕ تٲجِہہ': 'akɨtəːd͡ʒih', 'اَکہٕ تٲجی': 'akɨtəːd͡ʒiː', 'اَکہٕ سَتَتھ': 'akɨsatatʰ', 'اَکہٕ شيٖتھ': 'akɨʃiːtʰ', 'اَکہٕ نَمَتھ': 'akɨnamatʰ', 'اَکہٕ وَنٛزاہ': 'akɨwanzaːh', 'اَکہٕ وُہ': 'akɨwuh', 'اَکہٕ ہٲٹھ': 'akɨhəːʈʰ', 'باہ': 'baːh', 'بَہہ': 'bah', 'ترُٛسَتَتھ': 'trusatatʰ', 'ترُٛنَمَتھ': 'trunamatʰ', 'ترُٛواہ': 'truwaːh', 'ترُٛوَنٛزاہ': 'truwanzaːh', 'ترُٛہٲٹھ': 'truhəːʈʰ', 'ترٕٛسَتَتھ': 'trɨsatatʰ', 'ترٕٛنَمَتھ': 'trɨnamatʰ', 'ترٕٛوَنٛزاہ': 'trɨwanzaːh', 'ترٕٛہ': 'trɨh', 'ترٕٛہٲٹھ': 'trɨhəːʈʰ', 'ترٛۆوُہ': 'trowuh', 'ترٛیٚیہِ شيٖتھ': 'trejiʃiːtʰ', 'ترٛےٚ': 'tre', 'ترٛےٚ ہَتھ': 'tre hatʰ', 'تیٚیہِ ترٕٛہ': 'tejitrɨh', 'تیٚیہِ تٲجِہہ': 'tejitəːd͡ʒih', 'تیٚیہِ تٲجی': 'tejitəːd͡ʒiː', 'داہ': 'daːh', 'دُ ہٲٹھ': 'duhəːʈʰ', 'دُسَتَتھ': 'dusatatʰ', 'دُنَمَتھ': 'dunamatʰ', 'دُوَنٛزاہ': 'duwanzaːh', 'دٔہ': 'dəh', 'دۄیہِ ترٕٛہ': 'dɔjitrɨh', 'دۄیہِ تٲجِہہ': 'dɔjitəːd͡ʒih', 'دۄیہِ تٲجی': 'dɔjitəːd͡ʒiː', 'دۄیہِ شيٖتھ': 'dɔjiʃiːtʰ', 'زٕ': 'zɨ', 'زٕ ہَتھ': 'zɨ hatʰ', 'زٕتووُہ': 'zɨtoːwuh', 'ساس': 'saːs', 'سَتووُہ': 'satoːwuh', 'سَتَتھ': 'satatʰ', 'سَتھ': 'satʰ', 'سَتھ ہَتھ': 'satʰ hatʰ', 'سَتہٕ ترٕٛہ': 'satɨtrɨh', 'سَتہٕ تٲجِہہ': 'satɨtəːd͡ʒih', 'سَتہٕ تٲجی': 'satɨtəːd͡ʒiː', 'سَتہٕ سَتَتھ': 'satɨsatatʰ', 'سَتہٕ شيٖتھ': 'satɨʃiːtʰ', 'سَتہٕ نَمَتھ': 'satɨnamatʰ', 'سَتہٕ وَنٛزاہ': 'satɨwanzaːh', 'سَتہٕ ہٲٹھ': 'satɨhəːʈʰ', 'سَداہ': 'sadaːh', 'شيٖتھ': 'ʃiːtʰ', 'شَتہٕ وُہ': 'ʃatɨwuh', 'شُراہ': 'ʃuraːh', 'شُسَتَتھ': 'ʃusatatʰ', 'شُنَمَتھ': 'ʃunamatʰ', 'شُوَنٛزاہ': 'ʃuwanzaːh', 'شُہٲٹھ': 'ʃuhəːʈʰ', 'شیٚیہِ ترٕٛہ': 'ʃejitrɨh', 'شیٚیہِ تٲجِہہ': 'ʃejitəːd͡ʒih', 'شیٚیہِ تٲجی': 'ʃejitəːd͡ʒiː', 'شیٚیہِ شيٖتھ': 'ʃejiʃiːtʰ', 'شیٹھ': 'ʃeːʈʰ', 'شےٚ': 'ʃe', 'شےٚ ہَتھ': 'ʃe hatʰ', 'صِفَر': 'sifar', 'نَمَتھ': 'namatʰ', 'نَمہٕ نَمَتھ': 'namɨnamatʰ', 'نَو': 'naw', 'نَو شَتھ': 'naw ʃatʰ', 'وُہ': 'wuh', 'ٲٹھ': 'əːʈʰ', 'ٲٹھ شَتھ': 'əːʈʰ ʃatʰ', 'پانٛژٕ ترٕٛہ': 'pãːt͡sɨtrɨh', 'پانٛژٕ تٲجِہہ': 'pãːt͡sɨtəːd͡ʒih', 'پانٛژٕ تٲجی': 'pãːt͡sɨtəːd͡ʒiː', 'پانٛژٕ سَتَتھ': 'pãːt͡sɨsatatʰ', 'پانٛژٕ شيٖتھ': 'pãːt͡sɨʃiːtʰ', 'پانٛژٕ نَمَتھ': 'pãːt͡sɨnamatʰ', 'پانٛژٕ وَنٛزاہ': 'pãːt͡sɨwanzaːh', 'پانٛژٕ ہٲٹھ': 'pãːt͡sɨhəːʈʰ', 'پانٛژھ': 'pãːt͡sʰ', 'پانٛژھ ہَتھ': 'pãːt͡sʰ hatʰ', 'پَنٛداہ': 'pandaːh', 'پَنٛژاہ': 'pant͡saːh', 'پٕنٛژٕہ': 'pɨnt͡sɨh', 'پٲنٛژٕ ترٕٛہ': 'pə̃ːt͡sɨtrɨh', 'پٲنٛژٕ تٲجِہہ': 'pə̃ːt͡sɨtəːd͡ʒih', 'پٲنٛژٕ تٲجی': 'pə̃ːt͡sɨtəːd͡ʒiː', 'پٲنٛژٕ سَتَتھ': 'pə̃ːt͡sɨsatatʰ', 'پٲنٛژٕ شيٖتھ': 'pə̃ːt͡sɨʃiːtʰ', 'پٲنٛژٕ نَمَتھ': 'pə̃ːt͡sɨnamatʰ', 'پٲنٛژٕ وَنٛزاہ': 'pə̃ːt͡sɨwanzaːh', 'پٲنٛژٕ ہٲٹھ': 'pə̃ːt͡sɨhəːʈʰ', 'پٲنٛژھ': 'pə̃ːt͡sʰ', 'پٲنٛژھ ہَتھ': 'pə̃ːt͡sʰ hatʰ', 'ژور': 't͡soːr', 'ژور ہَتھ': 't͡soːr hatʰ', 'ژَتجِہہ': 't͡satd͡ʒih', 'ژَتجی': 't͡satd͡ʒiː', 'ژُسَتَتھ': 't͡susatatʰ', 'ژُنَمَتھ': 't͡sunamatʰ', 'ژُوَنٛزاہ': 't͡suwanzaːh', 'ژُہٲٹھ': 't͡suhəːʈʰ', 'ژۄداہ': 't͡sɔdaːh', 'ژۄیہِ ترٕٛہ': 't͡sɔjitrɨh', 'ژۄیہِ تٲجِہہ': 't͡sɔjitəːd͡ʒih', 'ژۄیہِ تٲجی': 't͡sɔjitəːd͡ʒiː', 'ژۄیہِ شيٖتھ': 't͡sɔjiʃiːtʰ', 'ژۆوُہ': 't͡sowuh', 'کاہ': 'kaːh', 'کَہہ': 'kah', 'کُنہٕ ترٕٛہ': 'kunɨtrɨh', 'کُنہٕ تٲجِہہ': 'kunɨtəːd͡ʒih', 'کُنہٕ تٲجی': 'kunɨtəːd͡ʒiː', 'کُنہٕ سَتَتھ': 'kunɨsatatʰ', 'کُنہٕ شيٖتھ': 'kunɨʃiːtʰ', 'کُنہٕ نَمَتھ': 'kunɨnamatʰ', 'کُنہٕ وَنٛزاہ': 'kunɨwanzaːh', 'کُنہٕ وُہ': 'kunɨwuh', 'کُنہٕ ہٲٹھ': 'kunɨhəːʈʰ', 'ہَتھ': 'hatʰ'}
# the below script was used to generate the above dictionary
'''for page in cat:
    pa_dict[page.title()] = [i for i in re.findall("|ipa=(.*?)[}||]", page.text) if i.strip() != ''][0]
    print(pa_dict[page.title()])'''
#print(pa_dict)
exist_lst = []
for num, name in enumerate(nums):
    try:
        dv = pywikibot.Page(site, name)
        pa = pywikibot.Page(site, [k for k, v in pa_dict.items() if v == ipas[num]][0])
        if not dv.exists():
            new_p = pa.text.replace("ks-numeral", ("ks-numeral|pa="+pa.title()))
        else:
            exist_lst.append(name)
            new_p = pa.text.replace("ks-numeral", ("ks-numeral|pa="+pa.title())) + "\n----\n\n" + dv.text
        translation = re.findall("{{trans\|(.*)?}}", new_p)
        to_remove = "{{trans|" + translation[0] + "}}"
        new_p = new_p.replace(to_remove, "وُچھِو [["+ pa.title() + "#تَرجَمہٕ|" + pa.title() +  "]]")
        pa_txt = pa.text.replace("ks-numeral|", "ks-numeral|dv=" + name + "|")
        #print(name)
        #print(new_p)
        dv.text = new_p
        pa.text = pa_txt
        print(dv.title()+"\n"+dv.text)
        print(pa.title() + "\n" + pa.text)
        pa.save(summary = "Add Devanagari equivalent", botflag = True)
        dv.save(summary = "Add Devanagari numeral" , botflag = True)
        #print(dv.title(), pa.title())
    except Exception as e:
        print("Error: ", str(e), name)
print(exist_lst)