import csv, time, subprocess, pywikibot, requests, os
from bs4 import BeautifulSoup
# மாற்றம் தேவை:# djvu கோப்புகளுக்கும் மாற்றம் செய் # பக்க அடிப்படையில் பகுப்பிடலாமா? 100, 150,200,250,300 # ஒரு பகுப்பு இருந்தால், அதனை மறுபகுப்பு இடாதே.
#1000 எண்ணுன்மிகள் உள்ள பக்கங்களைத் தானியக்கமாக எழுதும் கோப்பின் பெயர். இக்கோப்பு நிரலால் உருவாக்கப்படுகிறது.
எண்ணுன்மிகள்கோப்பு = '0-1-பார்த்தநூற்ப்பக்கம்.csv'
#அட்டவணைப்பேச்சுப்பக்கத்தில் இடவுள்ள குறிப்புகள்.
பேச்சுக்குறிப்பு1 = '''
==1000 எண்ணுன்மிகள் (bytes) உள்ள பக்கங்கள் ==
[[பகுப்பு:1000 எண்ணுன்மிகள் பக்க அளவிட்ட அட்டவணைகள்]]இந்நூல் அட்டவணையில், 1000 எண்ணுன்மிகள் உள்ள பக்கங்கள் உள்ளனவா, என ஆய்ந்தறியப்பட்டன.\n'''
பேச்சுக்குறிப்பு2 = '\nமேற்கண்டப் பக்கங்களை முதலில் மேம்படுத்தக் கோருகிறேன். ஏனெனில், இவற்றில் பலவகை விக்கிநுட்பங்கள் தேவைப்படுகின்றன. பிறகு, புதியவர்களும் மற்றப் பக்கங்களைச் செய்வது எளிதாகும்.'
# அட்டவணையில் காண வேண்டிய பகுப்புகள். கீழே தரப்பட்டுள்ளன.
# உள்ளீட்டுக்கோப்பு1-இல் இருந்து, ஒவ்வொரு வரியாக எடுக்கிறேன். # getting the wikipageName one by one
with open('000.csv', 'r') as உள்ளீட்டுக்கோப்பு1:
படித்தல் = csv.reader(உள்ளீட்டுக்கோப்பு1,delimiter="~")
for உள்ளீட்டுக்கோப்பு1வரி in படித்தல்:
# உள்ளீட்டுக்கோப்பு1-இல், படித்த வரியை நீக்குகிறேன். #removing the first line of the csv
#subprocess.call("sed -i `` 1d 000.csv",shell=True)
இடுஅட்டவணை = உள்ளீட்டுக்கோப்பு1வரி[0]#.decode('utf-8')
இடுஅட்டவணைபேச்சு = இடுஅட்டவணை.replace('அட்டவணை','அட்டவணை_பேச்சு')
இடுஅட்டவணைக்கோப்பு = இடுஅட்டவணை.replace('அட்டவணை','').replace(':','').replace('.pdf','') .replace('.djvu','') + '.csv'
இடுஅட்டவணைக்கோப்பு2 = '0-1-' + இடுஅட்டவணைக்கோப்பு
இடுஅட்டவணைக்கோப்புக்குறி = இடுஅட்டவணைக்கோப்பு.replace('.csv','')
print( இடுஅட்டவணை )
இணையதளம்1 = pywikibot.Site('ta', 'wikisource')
இணையப்பக்கம் = pywikibot.Page(இணையதளம்1,இடுஅட்டவணை)
இணையப்பக்கம்தரவு = இணையப்பக்கம்.text
if '-' in இடுஅட்டவணை or '(' in இடுஅட்டவணை:
print(' தலைப்பில் குறியீடு உள்ளது.')
குறியீடுபகுப்பு = '[[பகுப்பு:தலைப்பு மாற்றப்பட வேண்டிய அட்டவணைகள்]]'
if குறியீடுபகுப்பு in இணையப்பக்கம்தரவு:
print('குறியீடுபகுப்பு ஏற்கனவே உள்ளது.')
else:
print('குறியீடுபகுப்பு ஏற்கனவே இல்லை.')
இணையப்பக்கம்தரவுபுதிது = இணையப்பக்கம்தரவு + '\n[[பகுப்பு:தலைப்பு மாற்றப்பட வேண்டிய அட்டவணைகள்]]'
இணையப்பக்கம்.text = இணையப்பக்கம்தரவுபுதிது
இணையப்பக்கம்.save('+ [[பகுப்பு:தலைப்பு மாற்றப்பட வேண்டிய அட்டவணைகள்]]')
time.sleep(15)
இணையப்பக்கம்1 = pywikibot.Page(இணையதளம்1,இடுஅட்டவணை)
இணையப்பக்கம்1தரவு = இணையப்பக்கம்1.text
இணையப்பக்கம்2 = pywikibot.Page(இணையதளம்1,இடுஅட்டவணைபேச்சு)
இணையப்பக்கம்2தரவு = இணையப்பக்கம்2.text
இடுஅட்டவணைஉரலி = 'https://ta.wikisource.org/wiki/' + இடுஅட்டவணை
இடுஉள்ளடக்கம் = requests.get(இடுஅட்டவணைஉரலி).content
வடிச்சாறு = BeautifulSoup(இடுஉள்ளடக்கம்,'lxml')
அட்டவணைப்பக்கங்கள் = வடிச்சாறு.title
பக்கக்குறியீடுகள் = வடிச்சாறு.findAll('span', {'class' : 'prp-index-pagelist'})
பக்கக்குறியீடுகளுரை1 = str(பக்கக்குறியீடுகள்).split('</a>')
பக்கக்குறியீடுகள்பட்டி = len(பக்கக்குறியீடுகளுரை1)
பக்கக்குறியீடுகளுரை2 = (பக்கக்குறியீடுகளுரை1[2:பக்கக்குறியீடுகள்பட்டி])
அட்டவணைமொத்தப்பக்கங்கள் = பக்கக்குறியீடுகள்பட்டி-1
print(str(அட்டவணைமொத்தப்பக்கங்கள்) + ' பக்கங்கள் உள்ளன.')
time.sleep(3)
if 'Progress=C' in இணையப்பக்கம்1தரவு or 'Progress=L' in இணையப்பக்கம்1தரவு:#Progress=C# Index Not-Proofread
print('பகுப்பு மேலாண்மை செய்ய வேண்டிய அட்டவணை')
if அட்டவணைமொத்தப்பக்கங்கள் <51:
print(இடுஅட்டவணை + ' என்பது, 50 பக்கங்களுக்கும் குறைவாகவுள்ள மின்னூல் ஆகும்.')
பகுப்புத்தேடு2 = '1 முதல் 50 வரை பக்கங்களுள்ள அட்டவணைகள்' #இப்பகுப்பினை இல்லையெனில், பக்கங்களை கணக்கிட்டு இணைக்க வேண்டும்.
if பகுப்புத்தேடு2 in இணையப்பக்கம்1தரவு:
print('மாற்றும் பகுப்பு உள்ளது.')
else:
print(பகுப்புத்தேடு2 + ' என்ற பகுப்பு இல்லை.')
இணையப்பக்கம்1தரவுபுதிது = இணையப்பக்கம்1தரவு + '\n[[பகுப்பு:1 முதல் 50 வரை பக்கங்களுள்ள அட்டவணைகள்]]'
இணையப்பக்கம்1.text = இணையப்பக்கம்1தரவுபுதிது
இணையப்பக்கம்1.save('+ [[பகுப்பு:1 முதல் 50 வரை பக்கங்களுள்ள அட்டவணைகள்|பகுப்பு மேம்பாடு]]')