Modül:Seslen

Vikipedi, özgür ansiklopedi
Modül belgelemesi[oluştur]
local p = {}

local siniflar = {}
siniflar.a = {
	"Vito Genovese", "HastaLaVi2", "Sezgin İbiş", "ToprakM", "Evrifaessa", "Vikipolimer",
	diger = {"ay", "arayüz yöneticisi", "arayüz yöneticileri"}
}
siniflar.b = {
	"Mskyrider", "Elmacenderesi", "Yabancı", "Vito Genovese", "Superyetkin", "Vikiçizer",
	diger = {"bürokrat", "bürokratlar"}
}
siniflar.d = {
	"Elmacenderesi", "Uncitoyen",
	diger = {"denetçi", "denetçiler"}
}
siniflar.g = {
	"Elmacenderesi", "Eldarion", "Taysin",
	diger = {"gözetmen", "gözetmenler"}
}
siniflar.h = {
	"Citrat", "Vito Genovese", "Mskyrider", "Eldarion", "Elmacenderesi", "Khutuck", "Yabancı", "Gökhan", "Vikiçizer", "Superyetkin", "Uncitoyen", "HakanIST", "ToprakM", "Vincent Vega", "Vikipolimer", "Seksen iki yüz kırk beş", "Anerka", "Dr. Coal",
	diger = {"hizmetli", "hizmetliler"}
}
siniflar.p = {
	--[BOT]
	"İmmortalance", "LostMyMind", "Kızıldeniz", "Lionel Cristiano", "Zafer", "MRTFR55", "Wooze", "CanSimsek060", "YG01", "Kadı", "Fatih Demirci", "Tarih", "Zemxer", "MajMinor", "Kurmanbek", "Eemirrgs", "Bluetime93", "Bedmento", "AliIsingor", "Kızıltoprak", "Stultiwikia", "Supermæn", "Alikam1896", "Yzkoc", "Delbatros", "Karakalem", "Ceren Ada", "Tehonk", "Yakamoz51", "𐰇𐱅𐰚𐰤", "Nosferatü", "Turgut46", "Arceonix", "Cartsterta", "Mehmet Ali Acar", "Nevmit", "Gizemli", "Therou", "Adulors", "Amigo35", "Ataozzy", "Basak", "Bjelica", "CRea80", "Sabri76",
	--[/BOT]
	diger = {"devriye", "devriyeler"}
}
siniflar.t = {
	"Alperen", "Mavrikant", "Kumul", "Galaksidekiotostopcu", "HastaLaVi2", "Sadrettin", "Sezgin İbiş", "Goktr001", "Evrifaessa",
	diger = {"teknisyen", "teknisyenler"}
}

for _,sinif in pairs(siniflar) do
	if sinif.diger then
		for _,d in ipairs(sinif.diger) do
			siniflar[d] = sinif
		end
	end
end

local function makeError(msg)
	msg ='[[Şablon:Seslen]] hatası: ' .. msg
	return mw.text.tag('strong', {['sınıf']='error'}, msg)
end

function p.seslen(frame)
	local origArgs = frame:getParent().args
	local args = {}
	local maxArg = 1
	local usernames = 0
	
	if origArgs.grup then
		if siniflar[origArgs.grup] then
			for k,g in ipairs(siniflar[origArgs.grup]) do
				if k > maxArg then maxArg = k end
				table.insert(args, g)
				usernames = usernames + 1
			end
		end
	end

	for k, v in pairs(origArgs) do
		if type(k) == 'number' then
			if mw.ustring.match(v,'%S') then
				if k > maxArg then maxArg = k end
				usernames = usernames + 1
				local title = mw.title.new(v)
				if not title then return makeError('Desteklenmeyen karakter girişi yapıldı.') end
				args[k] = title.rootText
			end
		elseif v == '' and k:sub(0,5) == 'etiket' then
			args[k] = '​'
		else
			args[k] = v
		end
	end
	
	if usernames > (tonumber(frame.args.enfazla) or 50) then
		return makeError(string.format(
			'%s kişiden fazlası girilemez.',
			tostring(frame.args.enfazla or 50)
		))
	else
		if usernames < 1 then
			if frame.args['örnek'] then args[1] = frame.args['örnek'] else return makeError('Kullanıcı adı belirtilmedi.') end
		end
		args['etiket1'] = args['etiket1'] or args['etiket']
		local isfirst = true
		local outStr = args['önek'] or '@'
		for i = 1, maxArg do
			if args[i] then
				if isfirst then
					isfirst = false
				else
					if ( (usernames > 2) or ((usernames == 2) and (args['c'] == ',')) ) then outStr = outStr..', ' end
					if i == maxArg then outStr = outStr..' '..(args['c'] or '') .. ' ' end
				end
				outStr = string.format(
					'%s[[Kullanıcı:%s|%s]]',
					outStr,
					args[i],
					args['etiket'..tostring(i)] or args[i]
				)
			end
		end
		outStr = outStr..(args['p'] or '')
		return mw.text.tag('span', {['sınıf']='template-ping'}, outStr)
	end
end

return p