from System import Array
from System import String
from System import Console
from System.Collections.Generic import *
from System.Text.RegularExpressions import *
from qcz.Templates import *

#Ez a lényeges, ezt másold be a from-ok után
def RemoveMeasures(input, measures = ""):
  if measures == None or measures == "":
    return input
  if input == None or input == "":
    return ""
  return Regex.Replace(input, r"\s*(?<pre>(\d+ ?)+(., *(\d+ ?)+ *)*)\s*(" + measures + r")\s*", "${pre}", RegexOptions.IgnoreCase)
#ez a vége

def RemoveWikilink(input):
  if input == None or input == "":
    return ""
  tmp = Regex.Replace(input, r"\s*\[\[(?<m>.*?)]]\s*", "${m}", RegexOptions.IgnoreCase)
  return Regex.Replace(tmp, "\|", "{{!}}")

def RagEltávolítás(input):
  if input == None or input == "":
    return ""
  return input.split("-", 1)[0];

def SplitFileLink(template, paramname, imgparam = u"kép", imgsizeparam = "képméret", imgdescparam = "képaláírás"):
  if template == None or paramname == None or paramname == "" or imgparam == None or \
     imgsizeparam == None or imgdescparam == None:
    return
  m = Regex.Match(template[paramname], r"\[\[(Fájl|Kép|File|Image):(?<name>.*?)(\|(?<data>.*?))?]]");
  x = m.Groups["data"].Value.Split("|")
  sablon[imgparam] = m.Groups["name"].Value
  i = 0;
  for s in x:
    i=i+1;
    if Regex.IsMatch(s, r"\d+px"):
      sablon[imgsizeparam] = s;
    elif i==x.Length and not Regex.IsMatch(s, r"left|right|balra|jobbra|center|közép(re)?|thumb|bélyeg"):
      sablon[imgdescparam] = s;

...

if TemplateProcessing:
  for sablon in page.SelectTemplates("Teszt"):
    sablon.RenameParameter("param1", "param2")
    #Használni ott kell, ahol az átnevezéseket is csinálod (a for-ciklusban)
    sablon["paraméternév"] = RemoveMeasures(sablon["paraméternév"], r"mértékegységek")
    #több mértékegységet is meg lehet adni pipe-pal elválasztva, pl. "CsE|fényév"
    #arra kell ügyelni, hogy ha wikiszövegben [, ., +, ?, *, (, ), \ vagy | van,
    #akkor azok elé \ karaktert kell rakni (pl. \[, \(, \), \\, \| stb.)
    # pl. "[[Csillagászati egység|CsE]]" helyett "\[\[Csillagászati egység\|CsE]]" kell