Module:έλεγχος/δοκιμές
Documentation for this module may be created at Module:έλεγχος/δοκιμές/τεκμηρίωση
export = {}
local Lf = {}
local Ld = {}
Ld['γλώσσες'] = mw.loadData("Module:Languages")
--Ld['μέρη του λόγου'] = mw.loadData("Module:μέρη του λόγου")
--αντιγραφή από το w:Module:Redirect
-- Gets a mw.title object, using pcall to avoid generating script errors if we
-- are over the expensive function count limit (among other possible causes).
Lf[''] = function (...)
local lc = {}
lc['οκ'], lc['αντικείμενο'] = pcall(mw.title.new, ...)
if lc['οκ'] then
return lc['αντικείμενο']
else
return nil
end
end
--Προϋπόθεση να μην υπάρχουν \n σε nowiki (ή σε παρόμοια) που ΔΕΝ οδηγούν σε αλλαγή γραμμής
Lf['χωρισμός σε ενότητες'] = function(wikitext)
--splittedlines = wikitext.splitlines(False)
a = 1
end
--από en Module:User:Wikitiki89/split
Lf['χωρισμός σε γραμμές'] = function(theUtext)
local lc = {}
lc['γραμμές'] = {}
lc['μήκος'] = mw.ustring.len(theUtext)
lc['αρχή'] = 1
while true do
lc['από'], lc['μέχρι'] = mw.ustring.find(theUtext, '\n', lc['αρχή'])
if lc['από'] == nil then
lc['γραμμές'][#lc['γραμμές'] + 1] = mw.ustring.sub(theUtext, lc['αρχή'])
break
end
if lc['μέχρι'] < lc['αρχή'] then
error("Infinite split (position: " .. lc['αρχή'] .. ")")
end
lc['γραμμές'][#lc['γραμμές'] + 1] = mw.ustring.sub(theUtext, lc['αρχή'], lc['από'])
lc['αρχή'] = lc['μέχρι'] + 1
end
return lc['γραμμές']
end
get_sections = function(pagetitle, wikitext)
local lc = {}
local sectionsre = "(=+)%s-([^=]+)%s-%1(.-)"
lc['τίτλος'] = pagetitle
lc['το κείμενο'] = wikitext
lc['γραμμές'] = Lf['χωρισμός σε γραμμές'](lc['το κείμενο'])
mw.log('logging:' .. type(lc['γραμμές']))
if lc['γραμμές'] == nil then
return {}
end
lc['ενότητες'] = {}
lc['ενότητες'][-1] = {}
lc['ενότητες'][-1]['βάθος'] = 0
lc['ενότητες'][-1]['τίτλος'] = ''
lc['ενότητες'][-1]['σκουπίδια'] = ''
lc['ενότητες'][-1]['προβλήματα'] = ''
lc['ενότητες'][-1]['χωρίς γλώσσα'] = false
lc['ενότητες'][-1]['χωρίς γλωσσική ταξινόμηση'] = false
lc['ενότητες'][-1]['χωρίς υποενότητες'] = ''
lc['ενότητες'][0] = {}
lc['ενότητες'][0]['βάθος'] = 1
lc['ενότητες'][0]['τίτλος'] = ''
lc['ενότητες'][0]['αρχικό κείμενο τίτλου'] = ''
lc['ενότητες'][0]['iso'] = ''
lc['ενότητες'][0]['πρότυπο'] = ''
lc['ενότητες'][0]['είναι μέρος του λόγου'] = false
lc['ενότητες'][0]['περιεχομενο'] = ''
local langcounter = 0
for k, myline in pairs(lc['γραμμές']) do
local thesigns,theinside,therest = mw.ustring.match(myline, sectionsre)
if thesigns == '==' then --γλώσσα ή άλλο;
if mw.ustring.len(theinside) > 7 then
--mw.log('thematch1:' .. theinside)
if mw.ustring.sub(theinside, -3) == "-}}" and mw.ustring.sub(theinside,1,3) == "{{-" then
theiso = mw.ustring.sub(theinside,4,-4)
--mw.log('iso:' .. theiso)
if Ld['γλώσσες'][theiso] ~= nil then
langcounter = langcounter + 1
lc['ενότητες'][langcounter] = {}
lc['ενότητες'][langcounter]['κλείδα γλώσσας'] = ''
lc['ενότητες'][langcounter]['στοιχεία ενότητας'] = {}
lc['ενότητες'][langcounter]['στοιχεία ενότητας']['υποενότητες'] = {}
lc['ενότητες'][langcounter]['στοιχεία ενότητας']['βάθος'] = 2
lc['ενότητες'][langcounter]['στοιχεία ενότητας']['τίτλος'] = theinside
lc['ενότητες'][langcounter]['στοιχεία ενότητας']['αρχικό κείμενο τίτλου'] = myline
lc['ενότητες'][langcounter]['στοιχεία ενότητας']['iso'] = theiso
lc['ενότητες'][langcounter]['στοιχεία ενότητας']['πρότυπο'] = '' --??
lc['ενότητες'][langcounter]['στοιχεία ενότητας']['περιεχομενο'] = ''
--mw.log('lang:' .. Ld['γλώσσες'][theiso]['name'])
end
end
end
end
--lc['αποτέλεσμα'] = lc['αποτέλεσμα'] .. ' -------' .. k .. '\n' .. myline
end
return lc['ενότητες']
end
export['test'] = function(lemmatitle) --check with: print(p['test']('go')) or print(p['test']('καλός'))
local lc = {}
lc['το λήμμα'] = mw.title.new(lemmatitle)
lc['το κείμενο'] =lc['το λήμμα']:getContent()
lc['ενότητες'] = get_sections(lemmatitle,lc['το κείμενο'])
lc['αποτέλεσμα'] = ''
for k, atable in pairs(lc['ενότητες']) do
if atable['βάθος'] == nil then
lc['αποτέλεσμα'] = lc['αποτέλεσμα'] .. '\n##' .. tostring(k) .. ":".. atable['στοιχεία ενότητας']['iso']
else
lc['αποτέλεσμα'] = lc['αποτέλεσμα'] .. '\n**' .. tostring(k) .. " -βάθος:" .. tostring(atable['βάθος'])
end
end
lc['αποτέλεσμα'] = lc['αποτέλεσμα'] .. '\n num?' .. tostring(#lc['ενότητες'])
return lc['αποτέλεσμα']
end
return export