விக்கிமூலம்:பைத்தான்3நிரல்கள்/பக்கயெண்ணிக்கைப் பகுப்பிடல்

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 வரை பக்கங்களுள்ள அட்டவணைகள்|பகுப்பு மேம்பாடு]]')