وحدة:Wikidata2/P54
< وحدة:Wikidata2
اذهب إلى التنقل
اذهب إلى البحث
مراجعة 03:00، 6 مايو 2021 بواسطة Ahmad A Najar (نقاش | مساهمات) (أنشأ الصفحة ب'local p = {} local wl = require('وحدة:ص.م') local track = require('وحدة:Wikidata/تتبع').makecategory1 local teams_id = { 'Q476028' ,"Q847017" , "Q281...')
Wikidata2/P54[عدل]
خطأ لوا في وحدة:Wikidata2 على السطر 487: attempt to index field 'wikibase' (a nil value).
|
خطأ لوا في وحدة:Wikidata2 على السطر 487: attempt to index field 'wikibase' (a nil value).
|
خطأ لوا في وحدة:Wikidata2 على السطر 487: attempt to index field 'wikibase' (a nil value).
|
خطأ لوا في وحدة:Wikidata2 على السطر 487: attempt to index field 'wikibase' (a nil value).
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 = getEntityIdFromValue( value ) 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 = getEntityIdFromValue( value ) 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' then --Table = Nationals table.insert( Nationals, s ) elseif Type == 'o' then --Table = Other 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