Документация
--[[
------------------------------------------
--             AutoDescriptionStars
-- Модуль для заполнения звёзд. 
------------------------------------------
--]]

local Dates = require("Module:Dates")
local Declension = require("Module:Declension")
local Langs = require("Module:Langs")
local MathTonumber = require("Module:Math/tonumber")
local ReturnGendered = require("Module:ReturnGendered")
local SerializeTable = require("Module:SerializeTable")
local Math = require("Module:Math")

local AutoDescriptionStars={}

-- Нам необходимо сформировать и вернуть три переменных
local description = "" -- Обозначения Байера
local details = "" -- строка описания
local categories = "[[Категория:Звёзды по алфавиту]]" -- категории-- Промежуточный масив сущностей, в который помещаются результаты парсинга перед формированием описания

local entitiesArray = {bayer=""}
local entitiesArrayP = {P361="", P528=""}


-- Точка входа
function AutoDescriptionStars.launch(entity)
 AutoDescriptionStars.parsing(entity) -- парсим карточку викиданных
 AutoDescriptionStars.forming() -- формируем переменные
 return details, description, categories
end	

-- Последовательно проходим свойства в карточке викиданных, для формирования массива сущностей entitiesArray
function AutoDescriptionStars.parsing(entity)
	entitiesArrayP["P528"] = AutoDescriptionStars.parseP528(entity)
end

function AutoDescriptionStars.forming()
	if(entitiesArray["bayer"] ~= "") then details = details .. "(" .. "''[[Обозначения Байера|байеровское обозначение]]'': " .. entitiesArray["bayer"] .. ")" end
	
	description = description .. "звезда." 
    description = description .. entitiesArrayP.P528
	
end

function AutoDescriptionStars.parseP528(entity)
  local p528Statements=mw.wikibase.getBestStatements(entity:getId(), 'P528' )
  local s = SerializeTable.go(p528Statements)
  --[[
  for ki, vi in pairs (p528Statements) do
  	local catalog=""
  	local code=""
  	if(vi['qualifiers'] ~= nil) then
  		if((vi['qualifiers']['P972'] ~= nil)) then catalog=vi['qualifiers']['P972'][1]['datavalue']['value']['id'] end	
  	end	
  	if (catalog == "Q105616") then entitiesArray["bayer"]=vi['mainsnak']['datavalue']['value'] end
  end
  --]]
  return s
end	

return AutoDescriptionStars