Изменения

Перейти к навигации Перейти к поиску
если задано |l=1, то не проверять существование и перенаправление, потому что дорого
Строка 161: Строка 161:  
 
 
-- получение страницы, чтобы знать, существует ли она и является ли она перенаправлением
 
-- получение страницы, чтобы знать, существует ли она и является ли она перенаправлением
local ru_page = getTitle(title) -- дорогая функция, после 500 вызова крашится
+
local considerAsExists
local ru_page_exists
+
local isRedirect
local ru_page_isRedirect
+
local considerAsRedirect
if ru_page then
+
if leave_always then -- если задано |l=1, то ничего не проверять, потому что дорого
ru_page_exists = ru_page.exists
+
considerAsExists = false
ru_page_isRedirect = ru_page.isRedirect
+
isRedirect = false
else -- после 500 вызова или если в названии есть некорректные символы
+
considerAsRedirect = false
ru_page_exists = false
+
else
ru_page_isRedirect = false
+
local titleObject = getTitle(title) -- дорогая функция, после 500 вызова крашится
 +
if titleObject then
 +
considerAsExists = titleObject.exists
 +
isRedirect = titleObject.isRedirect
 +
considerAsRedirect = isRedirect and not leave_if_redirect
 +
else -- после 500 вызова или если в названии есть некорректные символы
 +
considerAsExists = false
 +
isRedirect = false
 +
considerAsRedirect = false
 +
end
 
end
 
end
local leave = ru_page_exists and not leave_always and not (ru_page_isRedirect and leave_if_redirect)
   
 
 
-- проверка правильности обработанных параметров
 
-- проверка правильности обработанных параметров
Строка 185: Строка 193:  
end
 
end
 
 
if ru_page_isRedirect and leave_if_redirect then -- TODO: почему не на все перенаправления?
+
if mode == 5 and considerAsRedirect then
 
table.insert(categories_list, 'redirect')
 
table.insert(categories_list, 'redirect')
end
+
elseif considerAsExists then
if leave then
+
table.insert(categories_list, 'outdated')
if mode == 5 and ru_page_isRedirect then
  −
table.insert(categories_list, 'redirect')
  −
else
  −
table.insert(categories_list, 'outdated')
  −
end
   
end
 
end
 
 
Строка 207: Строка 210:  
-- формирование первой части - основной ссылки
 
-- формирование первой части - основной ссылки
 
local main_text
 
local main_text
if leave or mode == 1 or mode == 2 or mode == 5 then
+
if considerAsExists or mode == 1 or mode == 2 or mode == 5 then
if lang == 'd' and not ru_page_exists then
+
if lang == 'd' and not considerAsExists then
 
local moduleRedLink = require( 'Module:Wikidata/redLink' )
 
local moduleRedLink = require( 'Module:Wikidata/redLink' )
 
main_text = moduleRedLink.formatRedLink(title, text, iw_title)
 
main_text = moduleRedLink.formatRedLink(title, text, iw_title)
 
else
 
else
main_text = wikilink(title, text, nil, nil, nil, ru_page_isRedirect)
+
main_text = wikilink(title, text, nil, nil, nil, isRedirect)
 
end
 
end
 
else
 
else
Строка 223: Строка 226:  
-- формирование второй части - языковой метки
 
-- формирование второй части - языковой метки
 
local post_text = ''
 
local post_text = ''
if not leave or mode == 2 or (mode == 5 and ru_page_isRedirect) then
+
if not (considerAsExists and not (isRedirect and leave_if_redirect)) or mode == 2 or (mode == 5 and considerAsRedirect) then
 
-- для шаблона "не переведено"
 
-- для шаблона "не переведено"
 
if mode == 1 then
 
if mode == 1 then
Строка 242: Строка 245:  
elseif mode == 2 then
 
elseif mode == 2 then
 
local iw_link = ''
 
local iw_link = ''
if leave then
+
if considerAsExists then
 
iw_link = frame:expandTemplate{ title = 'lang-' .. lang, args = { iw_text } }
 
iw_link = frame:expandTemplate{ title = 'lang-' .. lang, args = { iw_text } }
 
else
 
else
Строка 305: Строка 308:  
-- формирование третьей части - уведомления о существовании страницы
 
-- формирование третьей части - уведомления о существовании страницы
 
local exist_message = ''
 
local exist_message = ''
if leave then
+
if considerAsExists and not (isRedirect and leave_if_redirect) then
 
local exist_message_link
 
local exist_message_link
 
if mode == 5 then
 
if mode == 5 then
if ru_page_isRedirect then
+
if considerAsRedirect then
 
exist_message_link = 'Шаблон:' .. template_name .. '#Если существует перенаправление'
 
exist_message_link = 'Шаблон:' .. template_name .. '#Если существует перенаправление'
 
else
 
else
Строка 317: Строка 320:  
end
 
end
 
 
if mode == 5 and ru_page_isRedirect then
+
if mode == 5 and considerAsRedirect then
 
exist_message = string.format(
 
exist_message = string.format(
 
'<sup class="noprint" style="margin:0 0 0 1px;">%s</sup>',
 
'<sup class="noprint" style="margin:0 0 0 1px;">%s</sup>',
Анонимный участник

Реклама:

Навигация