FANDOM


p = {}
-- Gets Parent/child frame 
 
function p.getframe(bParent)
    local oFrame  = mw.getCurrentFrame()
    if bParent  and oFrame~=nil and oFrame:getParent() then 
      oFrame = mw.getCurrentFrame():getParent()
    end 
    return oFrame
end
 
-- Put all arguments into a real table - Returns Parent, child args table
function p.getArgs(frame)
  local tChild = {}
  local tParent = {}
  local tChild = p.fetchArgs(frame.args)
  if frame  and frame.getParent(frame) then
    tParent = p.fetchArgs(frame.getParent(frame).args)
  end
  return tParent, tChild
end
 
function p.fetchArgs(tTmp)
  local tTab = {}
  if not(tTmp) then return end
  for name, value in  pairs( tTmp ) do
     tTab[name] = value
  end
  return tTab
end
 
--Get time using Iso format ((YYYY-MM-DD)
function p.getfrmdate(frame)
  local tParent, tChild  = p.getArgs(frame)
  local currTable = tChild, tParent
  local sDate = currTable[1]
  local sFormat = currTable[2]
  if not(sFormat) then sFormat = "%Y-%m-%d" end
  local tDate = p.getdate(sDate,sFormat)
  local sFrmDate = os.date(sFormat,tDate) 
  return sFrmDate
end
 
--Check if args are enough for script to run
function p.checkArgs(frame, iArgs,bParent)
  local iCount =0
  local  tParent, tChild = p.getArgs(frame)
  local tArgTable = tParent
  if not(bParent) then
    tArgTable = tChild
  end
  for name, value in  pairs( tArgTable ) do 
    iCount = iCount + 1
    if (iCount) == tonumber(iArgs) then  
      return true      
    end      
  end
  return false
end
 
--Check if date is in appropriate format --Iso YYYY-MM-DD
 
function p.checkdate(sDate)
  local sPat="(%d+)-(%d+)-(%d+)"
  local year,month,day=sDate:match(sPat)
  if year and month and day then 
     return true
  end
  return false
end
 
-- Check if table is empty
 
function p.isempty(table)
  if next(table) == nil then
    return true
  end
  return false
end
 
-- round a number
 
function p.round(num, idp)
  return tonumber(string.format("%." .. (idp or 0) .. "f", num))
end
 
-- Calculate difference between two dates
function p.datediff( sDate1, sDate2)
  if p.checkDate(sDate1) and p.checkDate(sDate2) then
    sDate1 = string.sub(sDate1,0,10)
    sDate2 = string.sub(sDate2,0,10)
    local tDate1 =p.getdate(sDate1)
    local tDate2 =p.getdate(sDate2)
    local iDays = math.abs((os.difftime(tDate1,tDate2))/3600/24)
    return iDays
  end
  return 0
end
 
--Get time using custom format
function p.getdate(sDate)
  if not(sDate) then sDate = os.date("%Y-%m-%d") end
  local sPat="(%d%d%d%d)-(%d%d)-(%d%d)"
  local year,month,day=sDate:match(sPat)
  local tDate=(os.time({month=month,year=year,day=day}) )
  return tDate
end
--
 
function p.table_print (tt, indent, done)
  done = done or {}
  indent = indent or 0
  if type(tt) == "table" then
    local sb = {}
    for key, value in pairs (tt) do
      table.insert(sb, string.rep (" ", indent)) -- indent it
      if type (value) == "table" and not done [value] then
        done [value] = true
        table.insert(sb, ',["'..key..'"]'.."={\n");
        table.insert(sb, p.table_print (value, indent + 2, done))
        table.insert(sb, string.rep (" ", indent)) -- indent it
        table.insert(sb, "}\n");
      elseif "number" == type(key) then
        table.insert(sb, string.format("\"%s\"\n", tostring(value)))
      else
        table.insert(sb, string.format(
            "%s = \"%s\"\n", tostring ('["'..key..'"]'), tostring(value)) )
       end
    end
    return table.concat(sb)
  else
    return tt .. "\n"
  end
end
 
return p

¡Interferencia de bloqueo de anuncios detectada!


Wikia es un sitio libre de uso que hace dinero de la publicidad. Contamos con una experiencia modificada para los visitantes que utilizan el bloqueo de anuncios

Wikia no es accesible si se han hecho aún más modificaciones. Si se quita el bloqueador de anuncios personalizado, la página cargará como se esperaba.

También en FANDOM

Wiki al azar