„Modul:ServiceAward” változatai közötti eltérés

A Wikipédiából, a szabad enciklopédiából
[nem ellenőrzött változat][nem ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
Nincs szerkesztési összefoglaló
Nincs szerkesztési összefoglaló
13. sor: 13. sor:
{ 12, "Level XII", 5500, 110000, },
{ 12, "Level XII", 5500, 110000, },
}
}



statistics = {
statistics = {

A lap 2020. január 5., 13:59-kori változata

ServiceAward[mi ez?] • [dokumentáció: mutat, szerkeszt] • [tesztek: létrehozás]

ranks = {
	{ 1, "Level I", 30, 600, },
	{ 2, "Level II", 60, 1200, },
	{ 3, "Level III", 115, 2300, },
	{ 4, "Level IV", 210, 4200, },
	{ 5, "Level V", 360, 7200, },
	{ 6, "Level VI", 585, 11700, },
	{ 7, "Level VII", 910, 18200, },
	{ 8, "Level VIII", 1370, 27400, },
	{ 9, "Level IX", 2010, 40200, },
	{ 10, "Level X", 2880, 57600, },
	{ 11, "Level XI", 4030, 80600, },
	{ 12, "Level XII", 5500, 110000, },
}


statistics = {
	["Dani"] = { 7, 1251, 26255, 8 },
	["Samat"] = { 12, 5503, 110005, -1 },
	["Tgr"] = { 8, 3253, 31972, 9 },
	["NoRank"] = { -1, 15, 505, 1 },
}

local RANKS_RANK_NAME_INDEX = 2;
local RANKS_NEEDED_ACTIVE_DAYS_INDEX = 3;
local RANKS_NEEDED_TOTAL_EDITS_INDEX = 4;

local USER_STATISTICS_RANK_INDEX = 1;
local USER_STATISTICS_ACTIVE_DAYS_INDEX = 2;
local USER_STATISTICS_TOTAL_EDITS_INDEX = 3;
local USER_STATISTICS_NEXT_RANK_INDEX = 4;

local p = {}

function p.serviceAwardStatus(frame)
	local args = frame.args
	local userName = args.userName
	
	if not(userName) then
		return "No username specified"
	end

	local ret = userName .. "\n\n"
	local templateParams = {}

	local userData = statistics[userName]
	if userData then
		templateParams.userName = userName
		
		local currentRank = nil
		if not(userData[USER_STATISTICS_RANK_INDEX] == -1) then
			currentRank = ranks[userData[USER_STATISTICS_RANK_INDEX]]
			templateParams.currentRank = currentRank[RANKS_RANK_NAME_INDEX]
		end

		local nextRank = nil
		if not(userData[USER_STATISTICS_NEXT_RANK_INDEX] == -1) then
			nextRank = ranks[userData[USER_STATISTICS_NEXT_RANK_INDEX]]
			templateParams.nextRank = nextRank[RANKS_RANK_NAME_INDEX]
		end

		if nextRank then
			local daysToNextRank = nextRank[RANKS_NEEDED_ACTIVE_DAYS_INDEX]
			local editsToNextRank = nextRank[RANKS_NEEDED_TOTAL_EDITS_INDEX]

			local userActiveDays = userData[USER_STATISTICS_ACTIVE_DAYS_INDEX]
			local userEdits = userData[USER_STATISTICS_TOTAL_EDITS_INDEX]

			if currentRank then
				daysToNextRank = daysToNextRank - currentRank[RANKS_NEEDED_ACTIVE_DAYS_INDEX]
				editsToNextRank = editsToNextRank - currentRank[RANKS_NEEDED_TOTAL_EDITS_INDEX]

				userActiveDays = userActiveDays - currentRank[RANKS_NEEDED_ACTIVE_DAYS_INDEX]
				userEdits = userEdits - currentRank[RANKS_NEEDED_TOTAL_EDITS_INDEX]
			end

			local editsStillNeeded = editsToNextRank - userEdits
			local editsStillNeededPercentage = editsStillNeeded / editsToNextRank
			local daysStillNeeded = daysToNextRank - userActiveDays
			local daysStillNeededPercentage = daysStillNeeded / daysToNextRank
 
			templateParams.userActiveDaysInRank = userActiveDays
			templateParams.activeDaysToNextRank = daysToNextRank
			templateParams.userEditsInRank = userEdits
			templateParams.editsToNextRank = editsToNextRank
			
			local editPercentage = userEdits / editsToNextRank
			local daysPercentage = userActiveDays / daysToNextRank
			local percentage = math.floor(((editPercentage + daysPercentage) / 2) * 1000) / 1000
			templateParams.percentage = percentage
		end

		-- ret = ret .. " / Active days: "
		-- ret = ret .. userData[USER_STATISTICS_ACTIVE_DAYS_INDEX]
		-- ret = ret .. " / Total edits: "
		-- ret = ret .. userData[USER_STATISTICS_TOTAL_EDITS_INDEX]
	end
	
	ret = ret .. frame:expandTemplate{
		title = "Szolgálati érdemérem/Előrehaladás/Keret",
		args = templateParams,
	}

	return ret
end

return p