விக்கிமூலம்:பைத்தான் நிரல்கள்/பைவிக்கிமூலம்

# இந்த தொகுப்பின் நோக்கம் விக்கிமூலத்தில் பைத்தான் நிரல்களை தமிழில் எழுத, உருவாக்கப்பட்ட,  பயனர் வரைவு செயல்முறைகள் (user defined functions) ஆகும்.
import pywikibot,re 
## ஒரு '#' குறியீடு, நிரல் இயக்கத்தினை நிறுத்தி வைக்கிறது.
## இரு '#' குறியீடுகள், அவற்றின் கீழுள்ள நிரல் எழுதியதற்கான விளக்கமாகும்.



## ------------------------ தொடக்கம் : பொதுவான நிரலாக்கம்  ----------------------
# இது print என்ற பைத்தான் நிரலாக்கச்சொல்லினைத் தமிழில் 'விளைவிடு' என மாற்றுகிறது.
def விளைவிடு ():
	விளைவு = print
	return விளைவு

-கா : 
இயல்பாக நாம் print()  என எழுதுவோம். அதனைத்தமிழில் எழுத, கீழ்கண்ட பயனர் வரைவு செயல்முறை பயனாகிறது.
விளைவிடு = பைவிக்கிமூலம்0.விளைவிடு() என்று நாம் உருவாக்கிக் கொண்டால், நமது நிரல் முழுவதும்,
print() என்பதற்கு மாற்றாகத் தமிழில்,
விளைவிடு() என எழுதலாம். அல்லது எளிமையாக,
விளைவிடு = print 
என மாறிலியாகவும் (variable) அமைத்துக் கொள்ளலாம்.



def குறியிடுஅம்புவலது(எண்ணிக்கை=10):
	அம்புவலது = '>' * எண்ணிக்கை 
	அம்புவலது = ' {} '.format(அம்புவலது)
	return அம்புவலது
# வலஅம்புக்குறியடு = பைவி.குறியிடுஅம்புவலது(எண்ணிக்கை=4)



def குறியிடுஅம்புஇடது(எண்ணிக்கை=10):
	அம்புஇடது = '<' * எண்ணிக்கை 
	அம்புஇடது = ' {} '.format(அம்புஇடது)
	return அம்புஇடது
# இடஅம்புக்குறியிடு = பைவி.குறியிடுஅம்புஇடது(எண்ணிக்கை=4)



def கோடிடு(எண்ணிக்கை=16):
	கோடு = '-' * எண்ணிக்கை
	கோடு = ' {} '.format(கோடு)
	return கோடு
# கோடிடு = பைவி.கோடிடு(எண்ணிக்கை=40)



# இது ஒரு பக்கத்திற்குரிய நிரலாக்கமுடிவினைக் காட்டும் குறியீடு
def முடிவிடு():
	குறி = '\n >>>> முடிந்தது <<<< \n'
	return குறி
#விளைவிடு(முடிவிடு())	



def பக்கப்பெயரமை(அட்டவணை):
	அட்டவணை = '{}'.format(அட்டவணை).strip()
	பக்கப்பெயர் = அட்டவணை.replace('அட்டவணை','பக்கம்').replace('index','பக்கம்').replace('Index','பக்கம்') + '/'
	return பக்கப்பெயர்


	
def பக்கப்பெயரெழுது(அட்டவணை,தொடக்கயெண்,முடிவெண்,எண்வகை): #எண்வகை = '1'/'2'/'' 1 என்றால் ஒற்றையெண்;2 என்றால் இரட்டையெண்;மேற்கோள்குறிகளுக்குள் எதுவும் இல்லையென்றால், வரிசையாக எண்கள் தோன்றும்.
    பக்கப்பட்டி = []
    அட்டவணைசுத்தம் = அட்டவணை.strip()
    for வரிசையெண் in range(தொடக்கயெண், முடிவெண்+1):
        பக்கப்பெயர்='பக்கம்:{}.pdf/{}'.format(அட்டவணைசுத்தம்,வரிசையெண்)
        if எண்வகை=='1':
            if வரிசையெண் % 2 != 0: 
               பக்கப்பட்டி.append(பக்கப்பெயர்)
        elif எண்வகை=='2':
            if வரிசையெண் %2 == 0:
               பக்கப்பட்டி.append(பக்கப்பெயர்)
        else:
             பக்கப்பட்டி.append(பக்கப்பெயர்)
    return பக்கப்பட்டி	



def உரலியிடு(பக்கம்):
	இணையதளம் = pywikibot.Site('ta', 'wikisource')
	உரலி = pywikibot.Page(இணையதளம், பக்கம்)
	return உரலி
	

	
## ------------------------ தொடக்கம் : விக்கிமூல பக்கமொன்றின் பக்கத்தரவினை முழுமையாக எடுத்தல் ----------------------
def எடுபக்கத்தரவு(பக்கம்):                                                        
	இணையதளம் = pywikibot.Site('ta', 'wikisource')                                                     
	உரலி = pywikibot.Page(இணையதளம், பக்கம்) #எ-கா [[ta:பக்கம்:இலக்கியம் சிந்தும் விளையாட்டு இன்பம்.pdf/17]] 
	பக்கத்தரவு = உரலி.text
	return பக்கத்தரவு
## ------------------------ முடிவு : விக்கிமூல பக்கமொன்றின் பக்கத்தரவினை முழுமையாக எடுத்தல் ----------------------
	
	
	
## ------------------------ தொடக்கம் : விக்கிமூல பக்கமொன்றின் மேலடித்தரவினை மட்டும் எடுத்தல் ----------------------
def எடுமேலடி(பக்கத்தரவு):
	தேடுகுறிமுறை = re.compile("\<noinclude\>.*?\<\/noinclude>", re.DOTALL)
	குறிச்சொற்கள் = re.findall(தேடுகுறிமுறை,பக்கத்தரவு)
	மேலடி = குறிச்சொற்கள்[0]
	return மேலடி 
## ------------------------ முடிவு : விக்கிமூல பக்கமொன்றின் மேலடித்தரவினை மட்டும் எடுத்தல் ----------------------



## ------------------------ தொடக்கம் : விக்கிமூல பக்கமொன்றின் நடுத்தரவினை மட்டும் எடுத்தல் ----------------------
def எடுநடுத்தரவு(பக்கத்தரவு):
	தேடுகுறிமுறை = re.compile("\<noinclude\>.*?\<\/noinclude>", re.DOTALL) 
	நடுத்தரவு  = re.sub(தேடுகுறிமுறை, '', பக்கத்தரவு).strip() + '\n'
	return நடுத்தரவு 
## ------------------------ முடிவு : விக்கிமூல பக்கமொன்றின் நடுத்தரவினை மட்டும் எடுத்தல் ----------------------



## ------------------------ தொடக்கம் : விக்கிமூல பக்கமொன்றின் கீழடித்தரவினை மட்டும் எடுத்தல் ----------------------
def எடுகீழடி(பக்கத்தரவு):
	தேடுகுறிமுறை = re.compile("\<noinclude\>.*?\<\/noinclude>", re.DOTALL) 
	குறிச்சொற்கள் = re.findall(தேடுகுறிமுறை,பக்கத்தரவு)
	கீழடி  = குறிச்சொற்கள்[1] + '\n' 
	return கீழடி 
## ------------------------ முடிவு : விக்கிமூல பக்கமொன்றின் கீழடித்தரவினை மட்டும் எடுத்தல் ----------------------



## ------------------------ தொடக்கம் : விக்கிமூல பக்கமொன்றின் மேலடியில்லாத்தரவினை மட்டும் எடுத்தல் ----------------------
def எடுநடுத்தரவுகீழடி(பக்கத்தரவு):
	தேடுகுறிமுறை = re.compile("\<noinclude\>.*?\<\/noinclude>", re.DOTALL) 
	குறிச்சொற்கள் = re.findall(தேடுகுறிமுறை,பக்கத்தரவு)
	மேலடி  = குறிச்சொற்கள்[0]  
	நடுத்தரவுகீழடி = பக்கத்தரவு.replace(மேலடி,'')
	return நடுத்தரவுகீழடி
## ------------------------ முடிவு : விக்கிமூல பக்கமொன்றின் மேலடியில்லாத்தரவினை மட்டும் எடுத்தல் ----------------------



## ------------------------ தொடக்கம் : விக்கிமூல பக்கமொன்றின் கீழடியில்லாத்தரவினை மட்டும் எடுத்தல் ----------------------
def எடுமேலடிநடுத்தரவு(பக்கத்தரவு):
	தேடுகுறிமுறை = re.compile("\<noinclude\>.*?\<\/noinclude>", re.DOTALL) 
	குறிச்சொற்கள் = re.findall(தேடுகுறிமுறை,பக்கத்தரவு)
	கீழடி  = குறிச்சொற்கள்[1]  
	மேலடிநடுத்தரவு = பக்கத்தரவு.replace(கீழடி,'')
	return மேலடிநடுத்தரவு
## ------------------------ முடிவு : விக்கிமூல பக்கமொன்றின் கீழடியில்லாத்தரவினை மட்டும் எடுத்தல் ----------------------



#அலைப்பேசியின் திரைகளில் நடப்பதை உணர, இங்கு ஆங்கிலச்சொற்கள் பயன்படுத்தப்பட்டுள்ளன. ஏனெனில், தமிழை அலைப்பேசி முனையத்தில் படிக்கும் நுட்பத்தை பலர் அறிய முற்படுவதில்லை.
def தொடக்கமுடிவெண்நொடி(தொடக்கயெண்,முடிவெண்,காத்திருப்புநொடிகள்):
	தொடக்கமுடிவெண்நொடி = '\n start page ..... {} \n   end page ..... {} \n     waiting ....  +-  {} seconds  \n'.format(தொடக்கயெண்,முடிவெண்,காத்திருப்புநொடிகள்)
	return தொடக்கமுடிவெண்நொடி