אונטערשייד צווישן ווערסיעס פון "יחידה:עיר"
קפיצה לניווט
קפיצה לחיפוש
(אפדעיט) |
(אפדעיט) |
||
(איין צווישנדיגע ווערסיע פונעם זעלבן באַניצער נישט געוויזן) | |||
שורה 467: | שורה 467: | ||
end | end | ||
local function | local function removeSpanTagsAndKeepText(html) | ||
local pattern = '<span[^>]*>(.-)</span>' | |||
local cleanedHtml = html | |||
repeat | |||
local newHtml, count = string.gsub(cleanedHtml, pattern, "%1") | |||
if count > 0 then | |||
cleanedHtml = newHtml | |||
else | |||
break -- Exit the loop when no more span tags are found | |||
end | |||
until false | |||
return cleanedHtml | |||
end | |||
-- | local function isNumber(str) | ||
if str == nil or str == "" then return false end | |||
-- Remove thousands separators (commas) and replace any commas with periods | |||
local r = string.gsub(str, ",", "") | |||
r = string.gsub(r, "%.", ".") | |||
return tonumber(r) | |||
end | |||
local function extractFirstNumber(inputString) | |||
if inputString == nil or inputString == "" then return inputString end | |||
local number = inputString:match("[%d,.]+") | |||
if number then | |||
return tonumber(number) | |||
else | |||
return inputString -- No number found, return the original text | |||
end | |||
end | end | ||
שורה 494: | שורה 507: | ||
local parenthesis = require('Module:סוגריים') | local parenthesis = require('Module:סוגריים') | ||
local timeProperty = { ' | local timeProperty = { 'P585', 'P580', 'P582' } | ||
local options = { | local options = { | ||
['qualifiers'] = timeProperty, | ['qualifiers'] = timeProperty, | ||
['allowMulti'] = true, | ['allowMulti'] = true, | ||
['seperator'] = ';' | ['seperator'] = ';', | ||
['sort'] = timeProperty | |||
} | } | ||
local entityId = frame:getParent().args['qid'] or mw.wikibase.getEntityIdForCurrentPage() | local entityId = frame:getParent().args['qid'] or mw.wikibase.getEntityIdForCurrentPage() | ||
local res = propertyLink.getPropertyByOptions(property, entityId, options) | local res = propertyLink.getPropertyByOptions(property, entityId, options) | ||
return parenthesis.remove_parents_internal( | if res == nil or res == "" then | ||
return nil | |||
end | |||
local resArray = splitString(res, ";") | |||
local latestData = resArray[#resArray] | |||
latestData = removeSpanTagsAndKeepText(latestData) | |||
local lastData = parenthesis.remove_parents_internal(latestData) | |||
local lastDate = parenthesis.only_parents_contents_internal(latestData) | |||
local resData = lastData | |||
local resDate = lastDate | |||
if isNumber(extractFirstNumber(lastData)) then | |||
for i = #resArray, 1, -1 do | |||
local ins = resArray[i] | |||
ins = removeSpanTagsAndKeepText(ins) | |||
local insData = parenthesis.remove_parents_internal(ins) | |||
local insDate = parenthesis.only_parents_contents_internal(ins) | |||
if lastDate ~= insDate then | |||
break | |||
end | |||
if extractFirstNumber(resData) < extractFirstNumber(insData) then | |||
resData = insData | |||
end | |||
end | |||
end | |||
return resData, resDate | |||
end | |||
function returnLatestArea(frame) | |||
local area, latestAreaDate = returnLatestData(frame, 'P2046') | |||
return area | |||
end | end | ||
שורה 524: | שורה 566: | ||
['חלוקה מנהלית']=adminDistTranslateWrapper, | ['חלוקה מנהלית']=adminDistTranslateWrapper, | ||
['צבע רקע לפי חלוקה מנהלית']=adminDistTranslateColorWrapper, | ['צבע רקע לפי חלוקה מנהלית']=adminDistTranslateColorWrapper, | ||
['שטח']=returnLatestArea, | |||
['ראש העיר']=returnLatestMayor, | ['ראש העיר']=returnLatestMayor, | ||
['אוכלוסייה']=returnLatestPopulation, | ['אוכלוסייה']=returnLatestPopulation, | ||
['תאריך אוכלוסייה']=returnLatestPopulationDate | ['תאריך אוכלוסייה']=returnLatestPopulationDate | ||
} | } |
יעצטיגע רעוויזיע זינט 15:00, 29 אקטאבער 2023
מען קען שאפן דאקומענטאציע פאר דעם מאדול ביי יחידה:עיר/דאק
local hebrewState={
"[[הארצות הדרומיות והאנטארקטיות של צרפת|טריטוריה]]",
"[[הברית האנטארקטית|אזור אינטרסים]]",
"[[הטריטוריות הבריטיות שמעבר לים|טריטוריה]]",
"[[המדינות והטריטוריות של הודו|מדינה]]",
"[[הפרובינציות והטריטוריות של קנדה|טריטוריה]]",
"[[הפרובינציות והטריטוריות של קנדה|פרובינציה]]",
"[[חלוקה מנהלית של שוודיה#ארצות שוודיה|ארץ היסטורית]]",
"[[טריטוריה]]",
"[[טריטוריית איחוד]]",
"[[טריטוריה פדרלית]]",
"[[ישויות הממלכה המאוחדת|אומה]]",
"[[ישויות של הממלכה המאוחדת|אומה]]",
"[[מדינות אוסטריה|מדינה]]",
"[[המדינות והטריטוריות של אוסטרליה|טריטוריה]]",
"[[המדינות והטריטוריות של אוסטרליה|מדינה]]",
"[[מדינות ארצות הברית|מדינה]]",
"[[מדינות אתיופיה|מדינה]]",
"[[מדינות אתיופיה|מדינה]]",
"[[מדינות ברזיל|מדינה]]",
"[[פרובינציות איראן|פרובינציה]]",
"[[מדינות גרמניה|מדינה]]",
"[[מדינות הודו|מדינה]]",
"[[מדינות ונצואלה|מדינה]]",
"[[מחוזות ומדינות מיאנמר|מדינה]]",
"[[מדינות מלזיה|טריטוריה פדרלית]]",
"[[מדינות מלזיה|מדינה]]",
"[[מדינות מקסיקו|מדינה]]",
"[[מדינות ניגריה|מדינה]]",
"[[מדינות סודאן|מדינה]]",
"[[מדינות דרום סודאן|מדינה]]",
"[[מחוזות דרום סודאן|מחוז לשעבר]]",
"[[מחוזות דרום סודאן|מחוז]]",
"[[פרובינציות אירלנד|פרובינציה]]",
"[[פרובינציות ארגנטינה|פרובינציה]]",
"[[פרובינציות דרום אפריקה|פרובינציה]]",
"[[פרובינציות פולין|פרובינציה]]",
"[[פרובינציות הפיליפינים|פרובינציה]]",
"[[פרובינציות צ'ילה|פרובינציה]]",
"[[פרובינציות צרפת|פרובינציה לשעבר]]",
"[[הקנטונים של לוקסמבורג|קנטון]]",
"[[רפובליקה אוטונומית]]",
"[[רפובליקות של רוסיה|רפובליקה]]",
"|[[אמירויות איחוד האמירויות הערביות|אמירות]]",
"ארץ היסטורית",
"מדינה לכאורה",
"[[מדינה לכאורה]]",
"ממלכה",
"טריטוריה",
"טריטוריה אוטונומית",
"טריטוריה פדרלית",
"פרובינציה"
}
local hebrewAdm1st = {
"[[אזורי אנגליה|אזור]]",
"[[אזורי פינלנד|אזור]]",
"[[חלוקה מנהלית של האימפריה הרוסית|גוברניה]]",
"[[גאו (חלוקה מנהלית)|רייכסגאו]]",
"[[הקנטונים של שווייץ|קנטון]]",
"[[חבל ארץ אתנוגרפי]]",
"[[חבל ארץ]]",
"[[חבל ארץ]] במחלוקת",
"[[חבלי הונגריה|חבל]]",
"[[חבלי יפן|חבל]]",
"[[חבלי ניו זילנד|חבל]]",
"[[חבלי פורטוגל האוטונומיים|חבל]]",
"[[חבלי צרפת|חבל]]",
"[[חבלי צרפת|חבל]] לשעבר",
"[[חבלי שוודיה|חבל]]",
"[[חלוקה מנהלית של בוסניה והרצגובינה|מחוז]]",
"[[חלוקה מנהלית של עומאן|מחוז]]",
"[[חלוקה מנהלית של שוודיה#מחוזות שוודיה|מחוז]]",
"[[מדינות ונצואלה|ישות פדרלית]]",
"[[מדינות ונצואלה|מחוז פדרלי]]",
"[[מדינת חסות|שטח חסות]]",
"[[מועצה אזורית (מקסיקו)|מועצה אזורית]]",
"[[מחוז (ארצות הברית)|מחוז]]",
"[[מחוז אוטונומי]]",
"[[מחוזות (אובלסטי) אוטונומיים של רוסיה|מחוז אוטונומי]]",
"[[מחוזות (אובלסטי) של רוסיה|אובלסטי]]",
"[[מחוזות (אוקרוגה) אוטונומיים של רוסיה|מחוז אוטונומי]]",
"[[מחוזות (קראיה) של רוסיה|קראי]]",
"[[מחוזות אבחזיה|מחוז]]",
"[[מחוזות אוגנדה|מחוז]]",
"[[מחוזות אוהיו|מחוז]]",
"[[מחוזות אוזבקיסטן|מחוז]]",
"[[מחוזות אוסטריה|מחוז]]",
"[[מחוזות אוקראינה|מחוז]]",
"[[מחוזות אורגון|מחוז]]",
"[[מחוזות אורוגוואי|מחוז]]",
"[[מחוזות אזרבייג'ן|מחוז]]",
"[[מחוזות איטליה|מחוז]]",
"[[מחוזות אילינוי|מחוז]]",
"[[מחוזות אילינוי|מחוז]]",
"[[מחוזות אינדונזיה|מחוז]]",
"[[מחוזות איסלנד|מחוז]]",
"[[מחוזות איראן|מחוז]]",
"[[מחוזות אירלנד|מחוז]]",
"[[מחוזות אל סלוודור|מחוז]]",
"[[מחוזות אלבניה|מחוז]]",
"[[מחוזות אנגולה|מחוז]]",
"[[מחוזות אנגליה|מחוז]]",
"[[מחוזות אסטוניה|מחוז]]",
"[[מחוזות אפגניסטן|מחוז]]",
"[[מחוזות אקוודור|מחוז]]",
"[[מחוזות אריזונה|מחוז]]",
"[[מחוזות אתיופיה|מחוז]]",
"[[מחוזות בולגריה|מחוז]]",
"[[מחוזות בלארוס|מחוז]]",
"[[חלוקה מנהלית של בלגיה|מחוז]]",
"[[מחוזות ברבדוס|מחוז]]",
"[[מחוזות ברוניי|מחוז]]",
"[[מחוזות גבון|מחוז]]",
"[[מחוזות גאורגיה|מחוז]]",
"[[מחוזות דקוטה הצפונית|מחוז]]",
"[[מחוזות הודו|מחוז]]",
"[[מחוזות הוואי|מחוז]]",
"[[מחוזות הולנד|מחוז]]",
"[[מחוזות הונגריה|מחוז]]",
"[[מחוזות הונדורס|מחוז]]",
"[[מחוזות המנדט הבריטי|מחוז]]",
"[[מחוזות הפיליפינים|מחוז]]",
"[[מחוזות הרפובליקה הדמוקרטית של קונגו|מחוז לשעבר]]",
"[[מחוזות הרפובליקה הדמוקרטית של קונגו|מחוז]]",
"[[מחוזות הרפובליקה העממית של סין|מחוז אוטונומי]]",
"[[מחוזות הרפובליקה העממית של סין|מחוז]]",
"[[מחוזות הרפובליקה של קונגו|מחוז]]",
"[[מחוזות וושינגטון|מחוז]]",
"[[מחוזות ויומינג|מחוז]]",
"[[מחוזות ויילס|מחוז]]",
"[[מחוזות ויסקונסין|מחוז]]",
"[[מחוזות טג'יקיסטן|מחוז]]",
"[[מחוזות טובאלו|מחוז]]",
"[[מחוזות טוגו|מחוז]]",
"[[מחוזות טורקיה|מחוז]]",
"[[מחוזות טנזניה|מחוז]]",
"[[מחוזות טנזניה|מחוז]]",
"[[מחוזות טנסי|מחוז]]",
"[[מחוזות יוון|מחוז]]",
"[[מחוזות יוטה|מחוז]]",
"[[מחוזות יפן|מחוז]]",
"[[מחוזות ירדן|מחוז]]",
"[[מחוזות ישראל|מחוז]]",
"[[המחוזות הכלכליים של רוסיה|מחוז כלכלי]]",
"[[מחוזות לבנון|מחוז]]",
"[[מחוזות לוב|מחוז]]",
"[[מחוזות לטביה|מחוז]]",
"[[מחוזות ליטא|מחוז]]",
"[[מחוזות מדינת ניו יורק|מחוז]]",
"[[מחוזות מולדובה|מחוז]]",
"[[מחוזות מונגוליה|מחוז]]",
"[[מחוזות מונטנגרו|מחוז]]",
"[[מחוזות מזרח טימור|מחוז]]",
"[[מחוזות מיין|מחוז]]",
"[[מחוזות מינסוטה|מחוז]]",
"[[מחוזות מלאווי|מחוז]]",
"[[מחוזות מצרים|מחוז]]",
"[[מחוזות נאורו|מחוז]]",
"[[מחוזות נבדה|מחוז]]",
"[[מחוזות נורווגיה|מחוז]]",
"[[מחוזות ניו מקסיקו|מחוז]]",
"[[מחוזות נמיביה|מחוז]]",
"[[מחוזות סוריה|מחוז]]",
"[[מחוזות סין העממית|מחוז אוטונומי]]",
"[[מחוזות סין העממית|מחוז]]",
"[[מחוזות סלובקיה|מחוז]]",
"[[מחוזות ספרד|מחוז]]",
"[[מחוזות סקוטלנד|מחוז]]",
"[[מחוזות עיראק|מחוז]]",
"[[מחוזות ערב הסעודית|מחוז]]",
"[[מחוזות פדרליים של רוסיה|מחוז פדרלי]]",
"[[מחוזות פוארטו ריקו|מחוז]]",
"[[מחוזות פולין|מחוז]]",
"[[מחוזות פורטוגל|מחוז]]",
"[[מחוזות פלורידה|מחוז]]",
"[[חלוקה מנהלית של פקיסטן|מחוז עצמאי]]",
"[[חלוקה מנהלית של פקיסטן|מחוז]]",
"[[מחוזות פרו|מחוז]]",
"[[מחוזות צ'ילה|מחוז]]",
"[[מחוזות צ'כיה|מחוז]]",
"[[מחוזות צפון אירלנד|מחוז]]",
"[[מחוזות צרפת מעבר לים|מחוז שמעבר לים]]",
"[[מחוזות צרפת|מחוז]]",
"[[מחוזות קובה|מחוז]]",
"[[מחוזות קולומביה|מחוז]]",
"[[מחוזות קוסטה ריקה|מחוז]]",
"[[מחוזות קוריאה הצפונית|מחוז]]",
"[[מחוזות קוריאה הדרומית|מחוז]]",
"[[מחוזות קזחסטן|מחוז]]",
"[[מחוזות קטר|מחוז]]",
"[[מחוזות קליפורניה|מחוז]]",
"[[מחוזות קמבודיה|מחוז]]",
"[[אזורי קמרון|אזור]]",
"[[מחוזות קרואטיה|מחוז]]",
"[[מחוזות רומניה|מחוז]]",
"[[מחוזות שוודיה|מחוז]]",
"[[מחוזות שווייץ|מחוז]]",
"[[מחוזות של רוסיה|אובלסט]]",
"[[מחוזות תאילנד|מחוז]]",
"[[מחוזות תוניסיה|מחוז]]",
"[[מחוזות תימן|מחוז]]",
"[[חלוקה מנהלית של בלגיה|פרובינציה]]",
"[[קהילות אוטונומיות של ספרד|קהילה אוטונומית]]",
"[[קהילות אוטונומיות של אנדורה|קהילה אוטונומית]]",
"[[הקנטונים של הפדרציה של בוסניה והרצגובינה|קנטון]]",
"אזור",
"אזור גאוגרפי",
"אזור היסטורי",
"בסיס צבאי",
"[[בסיס צבאי]]",
"חבל",
"חבל אוטונומי",
"חבל ארץ",
"חבל ארץ אתנוגרפי",
"חבל ארץ במחלוקת",
"חבל היסטורי",
"מחוז",
"נסיכות",
"מחוז אוטונומי"
}
local hebrewAdm2nd = {
"[[הקסטלי של סן מרינו|קסטלי]]",
"מחוז היסטורי",
"מחוז משנה",
"[[גוש התיישבות|גוש]]",
"גוש התיישבות",
"נפה",
"[[נפה (יחידה שלטונית)|נפה]]",
"[[חלוקה מנהלית של סין העממית|נפה]]",
"[[חלוקה מנהלית של אסטוניה|נפה]]",
"[[רשויות מקומיות של ליטא|רשות מקומית]]",
"[[מחוזות משנה של ליטא|מחוז משנה]]",
"[[מחוזות משנה של בלארוס|מחוז משנה]]",
"[[מחוזות פיג'י|יחידה אוטונומית]]",
"[[נפות איטליה|נפה]]",
"[[נפות אלבניה|נפה]]",
"[[נפות ארגנטינה|נפה]]",
"[[נפות אתיופיה|נפה]]",
"[[נפות גאורגיה|נפה]]",
"[[נפות המנדט הבריטי|נפה]]",
"[[נפות הרשות הפלסטינית|נפה]]",
"[[נפות טורקיה|נפה]]",
"[[מחוזות יפן|נפה]]",
"[[נפות ישראל|נפה]]",
"[[נפות לבנון|נפה]]",
"[[נפות סוריה|נפה]]",
"[[נפות פולין|נפה]]",
"[[נפות פקיסטן|נפה]]",
"[[נפות צרפת|נפה]]",
"[[נפות קוריאה הדרומית|נפה]]",
"[[נפות קוריאה הצפונית|נפה]]",
"[[נפות רוסיה|נפה]]",
"[[נפות תאילנד|נפה]]",
"[[נפות מוסקבה|נפה]]",
"[[פרובינציה]] [[אוטונומיה|אוטונומית]]",
"[[קהילות אוטונומיות של אנדורה|קהילה אוטונומית]]",
"[[ראיון (חלוקה מנהלית)|מחוז משנה]]",
"[[ראיון (חלוקה מנהלית)|נפה]] עירונית",
"[[ראיון (חלוקה מנהלית)|ראיון]] עירוני",
"[[מחוזות משנה של אוקראינה|מחוז משנה]]",
"[[הערים המטרופוליניות של איטליה|עיר מטרופולינית]]",
"מועצה עירונית",
"מחוז מוניציפלי",
"שטח גלילי",
"[[שטח גלילי]]",
"אזור מנהלי",
"תחום מנהלי",
"קהילה"
}
local hebrewCity = {
"[[23 הרבעים של טוקיו|רובע מיוחד]]",
"[[חווה חקלאית|חווה]]",
"[[חווה חקלאית]]",
"[[חלוקה מנהלית של מוסקבה|מחוז אדמיניסטרטיבי]]",
"[[חלוקה מנהלית של סין העממית|נפה עירונית]]",
"[[חלוקה מנהלית של סין העממית|נציבות עירונית]]",
"[[חלוקה מנהלית של סין העממית|תת-מחוז עירוני]]",
"[[חלוקה מנהלית של סין העממית|תת-נציבות עירונית]]",
"[[חלוקה מנהלית של סין העממית|רובע]]",
"[[חלוקה מנהלית של סין העממית|תת-רובע]]",
"[[חלוקה מנהלית של סנקט פטרבורג|נפה]]",
"[[יישוב]]",
"[[כפר]]",
"[[כפר בלתי מוכר]]",
"[[כפר נוער]]",
"[[מאחז]]",
"[[מחוז]]",
"[[מובלעת]]",
"[[מועצה אזורית]]",
"[[מועצות מקומיות של מלטה|מועצה מקומית]]",
"[[מועצת מחוז]]",
"[[מושבה]]",
"[[מושבת כתר]]",
"[[מחוזות יוון#יחידות אזוריות|יחידה אזורית]]",
"[[מחוזות סין העממית|מחוז עירוני]]",
"[[מחנות העקורים|מחנה עקורים]]",
"[[מחנה פליטים]]",
"[[מטרופולין]]",
"[[מעברה]]",
"[[נווה מדבר]]",
"[[נפה עירונית]]",
"[[נציבות עירונית]]",
"[[עיירה]]",
"[[עיר רפאים]]",
"[[עיר]]",
"עיר היסטורית",
"[[פרבר]]",
"[[פרגזיה]]",
"[[פרוור]]",
"[[קולוניה]]",
"[[קומונה (איטליה)|קומונה]]",
"[[קומונה (צרפת)|קומונה]]",
"[[קומין]]",
"קומין",
"[[קיבוץ]]",
"קיבוץ",
"קנטון",
"[[קסבה]]",
"[[קסר]]",
"[[רובע]]",
"[[רובעי אמסטרדם|רובע]]",
"[[רובעי ברלין|רובע]]",
"[[רובעי ונציה|רובע]]",
"[[רובעי וינה|רובע]]",
"[[רובעי חיפה|רובע]]",
"[[רובעי טורונטו|רובע]]",
"[[רובעי לונדון|רובע]]",
"[[רובעי מונקו|רובע]]",
"[[רובעי ניו יורק|רובע]]",
"[[רובעי עמאן|רובע]]",
"[[רובעי פריז|רובע]]",
"[[רובעי קהיר|רובע]]",
"[[רובעי ורשה|רובע]]",
"[[רובעי רומא|רובע]]",
"[[רובעי שאנגחאי|רובע]]",
"[[רובעי בודפשט|רובע]]",
"[[רשות מקומית]]",
"[[שכונה]]",
"[[שכונות בוקרשט|שכונה]]",
"[[שכונות לונדון|שכונה]]",
"[[שכונות לוס אנג'לס|שכונה]]",
"[[שכונות ניו יורק|שכונה]]",
"[[שכונות סן פרנסיסקו|שכונה]]",
"[[תת-נפות של טורקיה|תת-נפה]]",
"אתר ארכאולוגי",
"[[אתר ארכאולוגי]]",
"אתר נופש",
"חווה",
"חווה חקלאית",
"יחידה אזורית",
"יישוב",
"יישוב לשעבר",
"יישוב עירוני",
"יישוב קהילתי",
"[[יישוב קהילתי]]",
"כפר",
"כפר בלתי מוכר",
"כפר נוער",
"כפר נופש",
"מאחז",
"מובלעת",
"מועצה אזורית",
"מועצה אזורית לשעבר",
"מועצה מיוערת",
"מועצה מקומית",
"[[מועצה מקומית תעשייתית]]",
"מועצת מחוז",
"מושבה",
"מושבת כתר",
"מחוז עירוני",
"מחנה עקורים",
"מחנה פליטים",
"מטרופולין",
"מעברה",
"מעמד מקראי",
"מתחם",
"מתחם בלתי חוקי",
"[[נאחיות של סוריה|נאחיה]]",
"נווה מדבר",
"נפה עירונית",
"נציבות עירונית",
"עיירה",
"עיירה לשעבר",
"עיר",
"עיר עתיקה",
"עיר רפאים",
"עיר פדרלית",
"פרבר",
"פרגזיה",
"פרוור",
"קו חוף",
"קולוניה",
"קומונה",
"קסבה",
"קסר",
"רובע",
"רובע עירוני",
"רובע עסקים",
"רשות מוניציפלית",
"רשות מקומית",
"שבט",
"[[שבט]]",
"שוק",
"שכונה",
"תחנת מחקר",
"[[תחנת מחקר]]",
"תת-מחוז עירוני",
"תת-נפה"
}
function isInTable(searchString, searchTable)
for _, v in pairs(searchTable) do
if v == searchString then
return true
end
end
end
function adminDistTranslate(hebrewAdministrative)
if isInTable(hebrewAdministrative, hebrewState) then
return 'state'
end
if isInTable(hebrewAdministrative, hebrewAdm1st) then
return 'adm1st'
end
if isInTable(hebrewAdministrative, hebrewAdm2nd) then
return 'adm2nd'
end
if isInTable(hebrewAdministrative, hebrewCity) then
return 'city'
end
return ''
end
function adminDistTranslateColor(hebrewAdministrative)
local adminDist = adminDistTranslate(hebrewAdministrative)
if adminDist == 'state' then
return 'F4DDA1'
end
if adminDist == 'adm1st' then
return '90EE90'
end
if adminDist == 'adm2nd' then
return 'ADD8E6'
end
if adminDist == 'city' then
return 'D3D3D3'
end
return 'b0c4de'
end
function adminDistTranslateWrapper(frame)
return adminDistTranslate(frame.args[1])
end
function adminDistTranslateColorWrapper(frame)
return adminDistTranslateColor(frame.args[1])
end
-- Split the comma-separated lists into tables and sort them
local function splitString(inputstr, sep)
local sep, fields = sep or ",", {}
local pattern = string.format("([^%s]+)", sep)
inputstr:gsub(pattern, function(c) fields[#fields + 1] = c end)
return fields
end
local function removeSpanTagsAndKeepText(html)
local pattern = '<span[^>]*>(.-)</span>'
local cleanedHtml = html
repeat
local newHtml, count = string.gsub(cleanedHtml, pattern, "%1")
if count > 0 then
cleanedHtml = newHtml
else
break -- Exit the loop when no more span tags are found
end
until false
return cleanedHtml
end
local function isNumber(str)
if str == nil or str == "" then return false end
-- Remove thousands separators (commas) and replace any commas with periods
local r = string.gsub(str, ",", "")
r = string.gsub(r, "%.", ".")
return tonumber(r)
end
local function extractFirstNumber(inputString)
if inputString == nil or inputString == "" then return inputString end
local number = inputString:match("[%d,.]+")
if number then
return tonumber(number)
else
return inputString -- No number found, return the original text
end
end
function returnLatestData(frame, property)
local dateModule = require('Module:תאריך')
local propertyLink = require('Module:PropertyLink')
local parenthesis = require('Module:סוגריים')
local timeProperty = { 'P585', 'P580', 'P582' }
local options = {
['qualifiers'] = timeProperty,
['allowMulti'] = true,
['seperator'] = ';',
['sort'] = timeProperty
}
local entityId = frame:getParent().args['qid'] or mw.wikibase.getEntityIdForCurrentPage()
local res = propertyLink.getPropertyByOptions(property, entityId, options)
if res == nil or res == "" then
return nil
end
local resArray = splitString(res, ";")
local latestData = resArray[#resArray]
latestData = removeSpanTagsAndKeepText(latestData)
local lastData = parenthesis.remove_parents_internal(latestData)
local lastDate = parenthesis.only_parents_contents_internal(latestData)
local resData = lastData
local resDate = lastDate
if isNumber(extractFirstNumber(lastData)) then
for i = #resArray, 1, -1 do
local ins = resArray[i]
ins = removeSpanTagsAndKeepText(ins)
local insData = parenthesis.remove_parents_internal(ins)
local insDate = parenthesis.only_parents_contents_internal(ins)
if lastDate ~= insDate then
break
end
if extractFirstNumber(resData) < extractFirstNumber(insData) then
resData = insData
end
end
end
return resData, resDate
end
function returnLatestArea(frame)
local area, latestAreaDate = returnLatestData(frame, 'P2046')
return area
end
function returnLatestMayor(frame)
local mayor, latestMayorDate = returnLatestData(frame, 'P6')
return mayor
end
function returnLatestPopulation(frame)
local population, latestPopulationDate = returnLatestData(frame, 'P1082')
return population
end
function returnLatestPopulationDate(frame)
local population, latestPopulationDate = returnLatestData(frame, 'P1082')
return latestPopulationDate
end
return {
['חלוקה מנהלית']=adminDistTranslateWrapper,
['צבע רקע לפי חלוקה מנהלית']=adminDistTranslateColorWrapper,
['שטח']=returnLatestArea,
['ראש העיר']=returnLatestMayor,
['אוכלוסייה']=returnLatestPopulation,
['תאריך אוכלוסייה']=returnLatestPopulationDate
}