ماژول:Wikidata2/P54
توضیحات این پودمان میتواند در ماژول:Wikidata2/P54/توضیحات قرار گیرد.
local p = {}
local wl = require("ماژول:صندخ")
local track = require("ماژول:Wikidata/ردیابی").makecategory1
local teams_id = {
"Q476028",
"Q847017",
"Q28140340"
}
function get_flag(countryID, date)
if not countryID or countryID == "" then
return ""
end
local trackingCategory = ""
--[[ If you uncomment the line under this comment, all pages with look-up misses in
the flag table will be placed in a tracking category. You can use this to find more flags
to add to the table. ]]
-- trackingCategory = '[[Category:Missing flag in Module:Cycling race]]'
local flags = {
Q16 = { "CAN", { "Flag of Canada.svg", "+1965-02-15" } },
Q17 = { "JPN", { "Flag of Japan.svg", "+1999-08-13" } },
Q20 = { "NOR", { "Flag of Norway.svg", "+1821-07-13" } },
Q27 = { "IRL", { "Flag of Ireland.svg", "+1937-12-29" } },
Q28 = { "HUN", { "Flag of Hungary.svg", "+1957-05-23" } },
Q29 = {
"ESP",
{ "Flag of Spain.svg", "+1981-12-06" },
{ "Flag of Spain (1977–1981).svg", "+1977-01-21", "+1981-12-06" },
{ "Flag of Spain (1945–1977).svg", "+1945-10-11", "+1977-01-21" },
{ "Flag of Spain (1938–1945).svg", "+1939", "+1945-10-11" },
{ "Flag of the Second Spanish Republic.svg", "+1931-04-14", "+1939" },
{ "Flag of Spain (1785–1873, 1875–1931).svg", "+1874", "+1931-04-13" }
},
Q30 = { "USA", { "Flag of the United States.svg", "+1960-07-04" } },
Q31 = { "BEL", { "Flag of Belgium (civil).svg" } },
Q32 = { "LUX", { "Flag of Luxembourg.svg" } },
Q33 = { "FIN", { "Flag of Finland.svg", "+1918-05-29" } },
Q34 = { "SWE", { "Flag of Sweden.svg" } },
Q35 = { "DEN", { "Flag of Denmark.svg" } },
Q36 = { "POL", { "Flag of Poland.svg" } },
Q37 = {
"LTU",
{ "Flag of Lithuania.svg", "+2004-09-01" },
{ "Flag of Lithuania (1988-2004).svg", "+1990-03-11", "+2004-09-01" }
},
Q38 = {
"ITA",
{ "Flag of Italy.svg", "+1946-06-19" },
{ "Flag of Italy (1861–1946).svg", "+1861", "+1946-06-19" }
},
Q39 = { "SUI", { "Flag of Switzerland.svg", "+1889-12-12" } },
Q40 = { "AUT", { "Flag of Austria.svg", "+1945-05-01" } },
Q41 = { "GRE", { "Flag of Greece.svg", "+1978" } },
Q43 = { "TUR", { "Flag of Turkey.svg" } },
Q45 = { "POR", { "Flag of Portugal.svg", "+1911-06-30" } },
Q55 = { "NED", { "Flag of the Netherlands.svg", "+1806" } },
Q77 = { "URU", { "Flag of Uruguay.svg" } },
Q96 = {
"MEX",
{ "Flag of Mexico.svg", "+1968-09-16" },
{ "Flag of Mexico (1934-1968).svg", "+1934", "+1968-09-16" }
},
Q114 = { "KEN", { "Flag of Kenya.svg" } },
Q115 = { "ETH", { "Flag of Ethiopia.svg", "+1996-10-31" } },
Q142 = { "FRA", { "Flag of France.svg", "+1794-05-20" } },
Q145 = { "GBR", { "Flag of the United Kingdom.svg" } },
Q148 = { "CHN", { "Flag of the People's Republic of China.svg", "+1985" } },
Q155 = {
"BRA",
{ "Flag of Brazil.svg", "+1992-05-11" },
{ "Flag of Brazil (1968–1992).svg", "+1968-05-28", "+1992-05-11" }
},
Q159 = {
"RUS",
{ "Flag of Russia.svg", "+1993-12-11" },
{ "Flag of Russia (1991–1993).svg", "+1991-08-22", "+1993-12-11" },
{ "Flag of the Russian Soviet Federative Socialist Republic.svg", "+1954", "+1991-08-22" },
{ "Flag of the Russian Soviet Federative Socialist Republic (1937–1954).svg", "+1937", "+1954" }
},
Q183 = {
"GER",
{ "Flag of Germany.svg", "+1949-05-23" },
{ "Flag of the German Reich (1935–1945).svg", "+1935-09-15", "+1945-05-23" },
{ "Flag of the German Reich (1933–1935).svg", "+1933-03-12", "+1935-09-15" },
{ "Flag of Germany (3-2 aspect ratio).svg", "+1919-04-11", "+1933-03-12" },
{ "Flag of the German Empire.svg", "+1871-04-16", "+1919-04-11" }
},
Q184 = {
"BLR",
{ "Flag of Belarus.svg", "+2012-05-11" },
{ "Flag of Belarus (1995–2012).svg", "+1995-06-07", "+2012-05-11" }
},
Q191 = { "EST", { "Flag of Estonia.svg" } },
Q211 = { "LAT", { "Flag of Latvia.svg" } },
Q212 = { "UKR", { "Flag of Ukraine.svg", "+1992-01-28" } },
Q213 = { "CZE", { "Flag of the Czech Republic.svg", "+1920-03-30" } },
Q214 = { "SVK", { "Flag of Slovakia.svg" } },
Q215 = { "SLO", { "Flag of Slovenia.svg" } },
Q217 = { "MDA", { "Flag of Moldova.svg" } },
Q218 = {
"ROU",
{ "Flag of Romania.svg", "+1989-12-27" },
{ "Flag of Romania (1965-1989).svg", "+1989-12-27", "+1965" },
{ "Flag of Romania (1952-1965).svg", "+1952", "+1965" },
{ "Flag of Romania (1948-1952).svg", "+1948-01-08", "+1952" },
{ "Flag of Romania.svg", "12. april 1867-04-12", "+1948-01-08" }
},
Q219 = {
"BUL",
{ "Flag of Bulgaria.svg", "+1990-11-22" },
{ "Flag of Bulgaria (1971 – 1990).svg", "+1971-05-18", "+1990-11-22" }
},
Q222 = { "ALB", { "Flag of Albania.svg", "+1992" } },
Q224 = {
"CRO",
{ "Flag of Croatia.svg", "+1990-12-21" },
{ "Flag of Croatia (white chequy).svg", "+1990-06-27", "+1990-12-21" }
},
Q227 = { "AZE", { "Flag of Azerbaijan.svg" } },
Q228 = { "AND", { "Flag of Andorra.svg" } },
Q229 = {
"CYP",
{ "Flag of Cyprus.svg", "+2006-08-20" },
{ "Flag of Cyprus (1960-2006).svg", "+1960-08-16", "+2006-08-20" }
},
Q232 = { "KAZ", { "Flag of Kazakhstan.svg" } },
Q238 = { "SMR", { "Flag of San Marino.svg" } },
Q241 = { "CUB", { "Flag of Cuba.svg" } },
Q252 = { "INA", { "Flag of Indonesia.svg" } },
Q258 = {
"RSA",
{ "Flag of South Africa.svg", "+1994-04-27" },
{ "Flag of South Africa (1928–1994).svg", "+1928-05-31", "+1994-04-27" }
},
Q262 = { "ALG", { "Flag of Algeria.svg" } },
Q265 = { "UZB", { "Flag of Uzbekistan.svg" } },
Q298 = { "CHI", { "Flag of Chile.svg" } },
Q334 = { "SGP", { "Flag of Singapore.svg" } },
Q347 = { "LIE", { "Flag of Liechtenstein.svg" } },
Q398 = { "BRN", { "Flag of Bahrain.svg", "+2002-02-14" } },
Q403 = {
"SRB",
{ "Flag of Serbia.svg", "+2004-08-18" },
{ "Flag of Serbia (1992–2004).svg", "+1992-04-27", "+2004-08-17" }
},
Q408 = { "AUS", { "Flag of Australia.svg" } },
Q414 = { "ARG", { "Flag of Argentina.svg" } },
Q664 = { "NZL", { "Flag of New Zealand.svg" } },
Q711 = { "MGL", { "Flag of Mongolia.svg" } },
Q717 = { "VEN", { "Flag of Venezuela.svg", "+2006" } },
Q736 = { "ECU", { "Flag of Ecuador.svg" } },
Q739 = { "COL", { "Flag of Colombia.svg" } },
Q750 = { "BOL", { "Flag of Bolivia.svg", "+1851-10-31" } },
Q786 = { "DOM", { "Flag of the Dominican Republic.svg" } },
Q794 = {
"IRI",
{ "Flag of Iran.svg", "+1980-07-29" },
{ "Flag of Iran (1964–1980).svg", "+1964", "+1980-07-29" }
},
Q800 = { "CRC", { "Flag of Costa Rica (state).svg", "+1906-11-27" } },
Q801 = { "ISR", { "Flag of Israel.svg" } },
Q817 = { "KUW", { "Flag of Kuwait.svg", "+1961-09-07" } },
Q833 = { "MAS", { "Flag of Malaysia.svg", "+1963-09-16" } },
Q842 = { "OMA", { "Flag of Oman.svg", "+1995" } },
Q846 = { "QAT", { "Flag of Qatar.svg" } },
Q865 = { "TPE", { "Flag of the Republic of China.svg", "+1928-12-17" } },
Q869 = { "THA", { "Flag of Thailand.svg" } },
Q878 = { "UAE", { "Flag of the United Arab Emirates.svg" } },
Q884 = { "KOR", { "Flag of South Korea.svg", "+1997-10" } },
Q928 = { "PHI", { "Flag of the Philippines.svg", "+1998" } },
Q948 = { "TUN", { "Flag of Tunisia.svg", "+1999-07-03" } },
Q965 = { "BUR", { "Flag of Burkina Faso.svg" } },
Q986 = { "ERI", { "Flag of Eritrea.svg" } },
Q1000 = { "GAB", { "Flag of Gabon.svg", "+1960-08-09" } },
Q1008 = { "CIV", { "Flag of Côte d'Ivoire.svg" } },
Q1009 = { "CMR", { "Flag of Cameroon.svg" } },
Q1028 = { "MAR", { "Flag of Morocco.svg" } },
Q1036 = { "UGA", { "Flag of Uganda.svg", "+1962-10-09" } },
Q1037 = {
"RWA",
{ "Flag of Rwanda.svg", "+2001-10-25" },
{ "Flag of Rwanda (1962–2001).svg", "+1962", "+2001-10-25" }
},
Q9676 = { "IMN", { "Flag of the Isle of Man.svg" } },
Q15180 = {
"URS",
{ "Flag of the Soviet Union.svg", "+1980-08-15", "+1991-12-25" },
{ "Flag of the Soviet Union (1955–1980).svg", "+1955-08-19", "+1980-08-14" }
},
Q16957 = {
"GDR",
{ "Flag of East Germany.svg", "+1959-10-01" },
{ "Flag of Germany.svg", "+1949-10-07", "+1959-10-01" }
}, --German Democratic Republic
Q8646 = { "HKG", { "Flag of Hong Kong.svg" } },
Q29999 = { "NED", { "Flag of the Netherlands.svg", "+1690" } }, --Kingdom of the Netherlands
Q33946 = { "TCH", { "Flag of the Czech Republic.svg", "+1920" } }, -- Czechoslovakia (1918–1992)
Q36704 = {
"YUG",
{ "Flag of Yugoslavia (1992–2003).svg", "+1992-04-27", "+2003-02-04" }, --Yugoslavia
{ "Flag of Yugoslavia (1943–1992).svg", "+1946", "+1992-04-27" }
},
Q83286 = { "YUG", { "Flag of Yugoslavia (1943–1992).svg" } }, --Socialist Federal Republic of Yugoslavia
Q172579 = { "ITA", { "Flag of Italy (1861–1946).svg" } }, --Kingdom of Italy (1861-1946)
Q713750 = { "FRG", { "Flag of Germany.svg" } }, --West Germany
Q13474305 = {
"ESP",
{ "Flag of Spain (1945–1977).svg", "+1945-10-11", "+1977-01-21" }, -- Francoist Spain (1935-1976)
{ "Flag of Spain (1938–1945).svg", "+1939", "+1945-10-11" },
{ "Flag of the Second Spanish Republic.svg", "+1931-04-14", "+1939" }
}
}
local entry = flags[countryID]
local IOC
local file
if entry then
for i, v in ipairs(entry) do
if i == 1 then
IOC = v
end
if not date or date == "" then
file = v[1]
break
else
-- mw.log("Module:Wikidata2/P54: date: " .. date)
local from = v[2]
local to = v[3]
if (not from or from <= date) and (not to or to > date) then
file = v[1]
break
end
end
end
end
if file then
return "[[File:" .. file .. "|border|20px|" .. IOC .. "]]"
elseif not date then
local p41 = mw.wikibase.getBestStatements(countryID, "P41") -- P41 is flag image
if p41[1] and p41[1].mainsnak.snaktype == "value" then
return "[[File:" ..
p41[1].mainsnak.datavalue.value .. "|border|20px|(Wikidata:" .. countryID .. ")]]" .. trackingCategory
end
end
return trackingCategory
end
function string.ends(String, End)
return End == "" or string.sub(String, -string.len(End)) == End
end
function format_label(label)
lab = label
lab = mw.ustring.gsub(lab, " لكرة القدم%]%]", "]]")
lab = mw.ustring.gsub(lab, " لكرة القدم %[%[", "[[")
lab = mw.ustring.gsub(lab, "%|نادي ", "|")
lab = mw.ustring.gsub(lab, "%|منتخب ", "|")
lab = mw.ustring.gsub(lab, "^منتخب ", "")
lab = mw.ustring.gsub(lab, " لكرة القدم$", "")
lab = mw.ustring.gsub(lab, " F%.C%. %[%[", "[[")
lab = mw.ustring.gsub(lab, " S%.A%. %[%[", "[[")
--mw.log('"' .. lab .. '"')
return lab
end
local national_id = {
"Q23895910",
"Q23847779",
"Q6979593",
"Q21945604",
"Q23759293",
"Q23905105",
"Q3874020",
"Q1194951",
"Q6979740",
"Q23901137",
"Q23901123", -- national under-17 football team
"Q23904672", -- national under-16 football team
"Q23904671" -- national under-18 football team
}
function template(args)
local rows = mw.html.create("tr")
local years = args[1] .. "–" .. args[2]
local goals
if args[4] and args[4] ~= "" then
goals = "(" .. args[4] .. ")"
end
rows:attr("colspan", 4)
--head:css('background-color', '#E1E1E1')
rows:tag("td"):tag("span"):addClass("nowrap"):wikitext(years)
rows:tag("td"):wikitext(args[3])
rows:tag("td"):tag("span"):addClass("nowrap"):wikitext(args[2] or "-")
rows:tag("td"):tag("span"):addClass("nowrap"):wikitext(goals)
return tostring(rows)
end
function ifd(entit)
local s = {}
local tt = "o"
local fii =
formatStatements(
{
property = "P31",
entityId = entit,
noref = "true",
rank = "all",
firstvalue = "true",
separator = "",
conjunction = "",
formatting = "raw"
}
)
local finns = false
for k, id in pairs(teams_id) do
if fii == id then
tt = "team"
end
end
if tt == "o" then
for k, Qid in pairs(national_id) do
if fii == Qid then
tt = "national"
end
end
end
if tt == "o" then
--mw.log("Module:Wikidata2/P54: * id: {{Q|" .. entit .. "}} {{P|P31}}: {{Q|" .. fii.. "}} ")
end
return tt
end
function p.football(statement, options)
local countryID = ""
if statement then
if statement.type then
if statement.type == "statement" and statement.mainsnak.snaktype == "value" then
--=====================================
local value = statement.mainsnak.datavalue.value
local entit = value.id
local s = formatSnak(statement.mainsnak, options).value
--local s = formatEntityId( entit , options ).value
local type_ = ifd(entit)
if type_ and type_ ~= "" then
if s then
local entit = value.id
countryID =
formatStatements(
{
property = "P1532",
entityId = entit,
noref = "true",
rank = "all", --,pattern =options.pattern
--,size ='20',image ='image' ,propertyimage ='P41'
formatting = "raw",
firstvalue = "true",
separator = "",
conjunction = ""
}
)
if not countryID or countryID == "" then
countryID =
formatStatements(
{
property = "P17",
entityId = entit,
noref = "true",
rank = "all", --,pattern =options.pattern
--,size ='20',image ='image' ,propertyimage ='P41'
formatting = "raw",
firstvalue = "true",
separator = "",
conjunction = ""
}
)
end
local Flag = get_flag(countryID, nil)
local label = formatEntityId(entit, options).value
label = format_label(label)
if label and label ~= "" then
if Flag and Flag ~= "" then
s = Flag .. " " .. label
else
s = label
end
end
if statement.references then
if options.reff and options.reff ~= "" then
reff = formatReferences(statement, options)
s = s .. reff
end
end
if statement.qualifiers then
if
statement.qualifiers.P1350 or statement.qualifiers.P1351 or statement.qualifiers.P580 or
statement.qualifiers.P582
then
amatch =
formatStatements({ property = "P1350", firstvalue = "true" }, statement.qualifiers) or
""
goal =
formatStatements({ property = "P1351", firstvalue = "true" }, statement.qualifiers) or
""
start1 =
formatStatements(
{ property = "P580", firstvalue = "true", modifytime = "y" },
statement.qualifiers
) or " "
finish1 =
formatStatements(
{ property = "P582", firstvalue = "true", modifytime = "y" },
statement.qualifiers
) or " "
P1642 =
formatStatements(
{ property = "P1642", firstvalue = "true", modifytime = "y" },
statement.qualifiers
) or " "
end
end
--if options.football1 and options.football1 ~= '' then
Args = { (start1 or ""), (finish1 or ""), s, (amatch or ""), (goal or ""), P1642 = (P1642 or "") }
--s = template (Args)
s =
mw.getCurrentFrame():expandTemplate {
title = "صندوق معلومات سيرة كرة قدم/سطر فريق",
args = Args
}
--end
end
return { value = s, Type = type_ }
end
end
--=====================================
end
end
end
function p.foot(claims, options)
local icon =
track(
{
property = "P54",
id = options.entityId or "",
category = "[[تصنيف:فرق لاعب كرة من ويكي بيانات]][[تصنيف:صفحات تستخدم خاصية P54]]"
}
)
local Nationals = {}
local Other = {}
local Teams = {}
--table.insert( Other, wl.SubTitle({'-','-' ,"b0c4de","000000",4}) )
--table.insert( Teams, wl.SubTitle({'باشگاهون','-' ,"b0c4de","000000",4}) )
--table.insert( Nationals , wl.SubTitle({'تیم ملی','-' ,"b0c4de","000000",4}) )
--==========================================
for i, statement in pairs(claims) do
options.num = i
local stat = p.football(statement, options)
if stat then
local s = stat.value
local Table
local Type = stat.Type
if s == "" then
s = nil
end
if s then
if Type == "team" then --Table = Teams
table.insert(Teams, s)
elseif
Type == "national" --Table = Nationals
then
table.insert(Nationals, s)
elseif
Type == "o" --Table = Other
then
table.insert(Other, s)
end
--if s then
--table.insert( Table, s )
--local t = formatReferences( statement, options )
--stat.ref = t
--if options.justref and options.justref ~= ''
--then
--table.insert( Table, t )
--else
--table.insert( Table, s .. t )
--end
end
end
end
local fs = {}
local head = mw.html.create("tr")
head:attr("colspan", 4)
--head:css('background-color', '#E1E1E1')
head:tag("td"):wikitext("'''سال'''")
head:tag("td"):wikitext("'''تیم'''")
head:tag("td"):wikitext("'''بازی'''")
head:tag("td"):wikitext("'''گل'''")
--if #Other > 0 or #Teams > 0 or #Nationals > 0 then
--table.insert( fs, tostring(head) )
--end
local Other_tot = mw.text.listToText(Other, options.separator, options.conjunction)
if #Other > 0 then
table.insert(fs, wl.SubTitle({ "الفرق " .. icon, "-", "b0c4de", "000000", 4 }))
table.insert(fs, tostring(head))
table.insert(fs, Other_tot)
end
local Teams_tot = mw.text.listToText(Teams, options.separator, options.conjunction)
if #Teams > 0 then
table.insert(fs, wl.SubTitle({ "ئون باشگاه " .. icon, "-", "b0c4de", "000000", 4 }))
if #Other <= 0 then
table.insert(fs, tostring(head))
end
table.insert(fs, Teams_tot)
end
local Nationals_tot = mw.text.listToText(Nationals, options.separator, options.conjunction)
if #Nationals > 0 then
table.insert(fs, wl.SubTitle({ "تیم ملی " .. icon, "-", "b0c4de", "000000", 4 }))
if (#Other <= 0) and (#Teams <= 0) then
table.insert(fs, tostring(head))
end
table.insert(fs, Nationals_tot)
end
local content =
mw.getCurrentFrame():expandTemplate {
title = "صندوق معلومات سيرة كرة قدم/تعديل ويكي بيانات",
args = {
id = options.entityId or ""
}
}
local edit_at_wd =
mw.html.create("tr"):tag("td"):attr("scope", "col"):css("background-color", "#F9F9F9"):css("color", "#000000")
:css(
"text-align",
"left"
):attr("colspan", 4):wikitext(content):done()
if #fs > 0 then
table.insert(fs, tostring(edit_at_wd))
end
--if tot == '' then tot = nil end
--return tot
return table.concat(fs)
end
return p