Burocratas, emailconfirmed, Administradores da interface, Administradores (Semantic MediaWiki), Curadores (Semantic MediaWiki), Editores (Semantic MediaWiki), Supressores, Administradores
1 051
edições
Sem resumo de edição |
Sem resumo de edição |
||
-- Define o alvo das regras
local target = frame:getParent().args[1] or frame.args[1]
if target ==
target = mw.uri.decode(frame:callParserFunction(
end
if target ==
target = mw.title.getCurrentTitle().prefixedText
end
-- Semantic Scribunto foi carregado?
if not mw.smw then
return
end
-- Define variáveis básicas
local test, info, queryResult, a, b
local infos = {}
-- Funções básicas
function ucfirst(str)
return (str:gsub(
end
-- Somente realize as análises de existir o campo 245
if frame:expandTemplate {title =
-- Record status
test = frame:expandTemplate {title =
if test ==
a = 'Segundo o Líder, este é um registro <b>novo</b> (não um alterado ou revisado, expandido, excluído, etc.)'
info = string.format( '* %s.' , a )
table.insert(infos, info)
elseif test ==
a = 'Segundo o Líder, este é um registro <b>alterado ou revisado</b> (não um novo, expandido, excluído, etc.)'
info = string.format( '* %s.', a )
table.insert(infos, info)
elseif test ==
info = string.format( '* %s.', a )
table.insert(infos, info)
end
-- Type of record
test = frame:expandTemplate {title =
if test ==
info = string.format( '* %s.', a )
table.insert(infos, info)
end
-- Bibliographic level
test = frame:expandTemplate {title =
if test ==
a = 'Segundo o Líder, este registro descreve um <b>item monográfico</b> (não parte de um item, não um item seriado, não uma coleção, etc.)'
info = string.format( '* %s.', a )
table.insert(infos, info)
end
-- Encoding level
test = frame:expandTemplate {title =
if test ==
a = 'Segundo o Líder, este registro tem um nível <b>completo</b> de catalogação (mas o material não foi examinado)'
info = string.format( '* %s.', a )
table.insert(infos, info)
elseif test ==
a = 'Segundo o Líder, este registro tem um nível <b>completo</b> de catalogação (a descrição foi realizada com o material em mãos)'
info = string.format( '* %s.', a )
table.insert(infos, info)
end
-- Descriptive cataloging form
test = frame:expandTemplate {title =
if test ==
info = string.format( '* %s.', a )
table.insert(infos, info)
else
info = string.format( '* %s.', a )
table.insert(infos, info)
end
-- Explica a sintaxe
local f001 = frame:expandTemplate {title = 'Field data string', args = {'001', '0', '', property = 'Control field data', fullpagename = target}}
local f003 = frame:expandTemplate {
title = 'Field data string',
args = {'003', '0', '', property = 'Control field data', fullpagename = target}
a = 'Internamente, este
b = 'para sistemas externos, o código é'
info = string.format( '* %s "%s"; %s "(%s)%s".', a, f001, b, f003, f001 )
table.insert(infos, info)
-- Campo 005
queryResult = mw.smw.ask(
local creationDate =
if type(queryResult) ==
for _, row in pairs(queryResult) do
for _, data in pairs(row) do
end
queryResult =
mw.smw.ask(
local modificationDate =
if type(queryResult) ==
for _, row in pairs(queryResult) do
for _, data in pairs(row) do
end
end
a = 'O registro foi criado em:'
b =
info = string.format( '* %s %s. %s %s.', a, creationDate, b, modificationDate )
table.insert(infos, info)
-- Campo 008
local invalidCode =
local pubPlace_tbl = {
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
}
local f008pubPlace =
frame:expandTemplate {
title =
args = {
}
if string.match(f008pubPlace,
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
elseif pubPlace_tbl[f008pubPlace] then
info = string.format( '* %s %s', a, tostring( pubPlace_tbl[f008pubPlace] ) )
table.insert(infos, info)
else
info = string.format( '* %s %s', a, f008pubPlace )
table.insert(infos, info)
end
invalidCode =
local lang_tbl = {
[
[
[
[
[
[
[
[
[
[
[
[
[
[
}
local f008lang =
frame:expandTemplate {
title =
args = {
}
if string.match(f008lang,
info = string.format( '* <strong class="error">%s.</strong>', a )
elseif lang_tbl[f008lang] then
info = string.format( '* %s %s', a, tostring( lang_tbl[f008lang] ) )
else
info = string.format( '* %s %s', a, f008lang )
end
-- Se existe o campo 041, mostra
local f041existance = frame:expandTemplate {title =
if f041existance ~=
test = mw.text.trim ( frame:expandTemplate {title =
if test ==
local f041h = frame:expandTemplate {title =
f041h = lang_tbl[f041h] or f041h
info =
end
end
table.insert(infos, info)
-- Testa se existe(m) ISBN(s) inválido(s)
test = frame:expandTemplate {title =
if test ~=
test = frame:expandTemplate {title =
if string.match(test, "error") then
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
end
-- Testa se existe(m) hifen(s) ou x minúsculo no ISBN
queryResult = mw.smw.ask(
local f020 =
if type(queryResult) ==
for _, row in pairs(queryResult) do
for _, data in pairs(row) do
end
end
if string.match(f020,
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
elseif string.match(f020,
a = 'O ISBN não pode conter um x minúsculo. Apenas números e "X" maiúsculo'
info = string.format( '* <strong class=
table.insert(infos, info)
end
-- Testa se há indicadores no campo 020
if string.sub(f020, 1, 1) ~=
a = 'O primeiro indicador do campo 020 foi preenchido, porém, ele não deve ser preenchido'
info = string.format(
table.insert(infos, info)
end
if string.sub(f020, 2, 2) ~=
a = 'O segundo indicador do campo 020 foi preenchido, porém, ele não deve ser preenchido'
info = string.format(
table.insert(infos, info)
end
end
-- Testa o uso de maiúsculas no campo 041
if f041existance ~=
test = mw.text.trim ( frame:expandTemplate {title =
if test ==
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
end
test = frame:expandTemplate {title =
if string.match(test,
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
end
local accessPointPresence =
frame:callParserFunction {
name =
args = {
} or 0
accessPointPresence = tonumber( accessPointPresence )
-- A seguir, testa se há subcampo $b e se há espaço no subcampo $c do campo 090
test = frame:expandTemplate {title =
if test ~=
test = frame:expandTemplate {title =
if test ==
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
end
-- A seguir, testa se não foi esquecida a letra do tíulo na notação de Cutter, caso haja um ponto de acesso 1XX
if accessPointPresence >= 1 and string.match(test,
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
end
test = frame:expandTemplate {title =
if string.match(test,
a = 'Nossa política de catalogação proíbe espaços na indicação de edição no número de chamada (090 $c)'
info =
table.insert(infos, info)
end
end
-- A seguir, testa (conta) se existe mais de um ponto de acesso principal
local f100existance = frame:expandTemplate {title =
if accessPointPresence > 1 or f100existance ==
a = 'Foi registrado <b>mais de um ponto de acesso principal</b>. Isso não é permitido'
info =
table.insert(infos, info)
end
if f100existance ~=
local f100 = mw.text.trim( frame:expandTemplate {title =
info =
if f100:sub(1, 1) ==
info = string.format( '* %s %s.', info, a )
table.insert(infos, info)
elseif f100:sub(1, 1) ==
info = string.format( '* %s %s.', info, a )
table.insert(infos, info)
elseif f100:sub(1, 1) ==
info = string.format( '* %s %s.', info, a )
table.insert(infos, info)
elseif f100:sub(1, 1) ==
info = string.format( '* %s, porém, <strong class="error">%s.</strong>', info, a )
table.insert(infos, info)
elseif
f100:sub(1, 1) ==
f100:sub(1, 1) ==
f100:sub(1, 1) ==
f100:sub(1, 1) ==
then
info = string.format( '* %s, porém, <strong class="error">%s.</strong>', info, a )
table.insert(infos, info)
end
if f100:sub(2, 2) ~=
a = 'O segundo indicador do campo 100 foi preenchido, porém, ele não deve ser preenchido'
info = string.format(
table.insert(infos, info)
end
-- Testa se existe
local f100a = frame:expandTemplate {title =
if f100a ~=
if not string.match(f100a,
a = 'Em pontos de acesso, o nome pessoal deve ser invertido (Nome, Sobrenome). Verifique o campo 100'
info =
table.insert(infos, info)
end
if string.match(f100a,
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
end
end
local f100q = frame:expandTemplate {title =
if f100q ~=
if not string.match(f100q,
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
end
end
local f100d = frame:expandTemplate {title =
if f100d ~=
if string.match(f100,
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
end
end
-- A seguir, testa se existe um ponto de acesso principal 110
local f110existance = frame:expandTemplate {title =
if f110existance ~=
local f110 = mw.text.trim( frame:expandTemplate {title =
info =
if f110:sub(1, 1) ==
info = string.format( '* %s %s.', info, a )
table.insert(infos, info)
elseif f110:sub(1, 1) ==
info = string.format( '* %s %s.', info, a )
table.insert(infos, info)
elseif f110:sub(1, 1) ==
info = string.format( '* %s %s.', info, a )
table.insert(infos, info)
elseif f110:sub(1, 1) ==
info = string.format( '* %s, porém, <strong class="error">%s.</strong>', info, a )
table.insert(infos, info)
elseif
f110:sub(1, 1) ==
f110:sub(1, 1) ==
f110:sub(1, 1) ==
f110:sub(1, 1) ==
then
info = string.format( '* %s, porém, <strong class="error">%s.</strong>', info, a )
table.insert(infos, info)
end
if f110:sub(2, 2) ~=
a = 'O segundo indicador do campo 110 foi preenchido, porém, ele não deve ser preenchido'
info = string.format(
table.insert(infos, info)
end
end
-- A seguir, testa se existe um ponto de acesso principal 111
local f111existance = frame:expandTemplate {title =
if f111existance ~=
local f111 = mw.text.trim( frame:expandTemplate {title =
info =
if f111:sub(1, 1) ==
info = string.format ( '* %s %s.' , info, a )
table.insert(infos, info)
elseif f111:sub(1, 1) ==
info = string.format ( '* %s %s.' , info, a )
table.insert(infos, info)
elseif f111:sub(1, 1) ==
info = string.format ( '* %s %s.' , info, a )
table.insert(infos, info)
elseif f111:sub(1, 1) ==
info = string.format ( '* %s, porém, <strong class="error">%s.</strong>', info, a )
table.insert(infos, info)
elseif
f111:sub(1, 1) ==
f111:sub(1, 1) ==
f111:sub(1, 1) ==
f111:sub(1, 1) ==
then
info = string.format ( '* %s, porém, <strong class="error">%s.</strong>', info, a )
table.insert(infos, info)
end
if f111:sub(2, 2) ~=
a = 'O segundo indicador do campo 111 foi preenchido, porém, ele não deve ser preenchido'
info = string.format(
table.insert(infos, info)
end
end
-- A seguir, testa se existe um ponto de acesso principal 130
local f130existance = frame:expandTemplate {title =
if f130existance ~=
local f130 = mw.text.trim( frame:expandTemplate {title =
info =
if f130:sub(1, 1) ==
info = string.format( '* %s, porém, <strong class="error">%s.</strong>', info, a )
table.insert(infos, info)
else
local f130a = frame:expandTemplate {title =
info = string.format( '* %s, ele será alfabetado como "<b>%s</b>".', info, a )
table.insert(infos, info)
end
if f130:sub(2, 2) ~=
a = 'O segundo indicador do campo 130 foi preenchido, porém, ele não deve ser preenchido'
info = string.format(
table.insert(infos, info)
end
end
-- A seguir, testa se existe um ponto de acesso principal. Se existir, testa se o primeiro indicador do campo 245 condiz com essa realidade
local f245ind1 = mw.text.trim( frame:expandTemplate {title =
if accessPointPresence == 0 then
if f245ind1 ==
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
end
else
if f245ind1 ==
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
end
end
-- a seguir, testa a relação entre a presença do campo 240 em relação a presença do campo 041 e a presença do subcampo $l
local f240existance = frame:expandTemplate {title =
if f240existance ~=
local f240 = mw.text.trim( frame:expandTemplate {title =
if f041existance ==
info = string.format( '* <strong class="error">%s.</strong>' , a )
table.insert(infos, info)
end
local f240l = frame:expandTemplate {title =
if f240l ~=
if string.match(f240l,
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
end
if not string.match(f240,
info = string.format ( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
end
else
info = string.format ( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
end
if f240:sub(1, 1) ==
info = string.format( '* %s.', a )
table.insert(infos, info)
elseif f240:sub(1, 1) ==
info = string.format( '* %s.', a )
table.insert(infos, info)
elseif f240:sub(1, 1) ==
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
else
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
end
if f240:sub(2, 2) ==
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
else
local f240a = string.gsub( mw.text.trim ( frame:expandTemplate {title =
b = ucfirst( f240a:sub( f240:sub(2, 2) + 1 ) )
info = string.format( '* %s "<b>%s</b>".', a, b )
table.insert(infos, info)
end
end
-- A seguir, informa se o título receberá o ponto de acesso principal ou secundário
local f245 = mw.text.trim( frame:expandTemplate {title = 'Field data string', args = {'245', '0', '0', fullpagename = target}} ) or ''
if f245ind1 == '0' then
a = 'O título recebeu o <b>ponto de acesso principal</b>'
info = string.format( '* %s.', a )
table.insert(infos, info)
elseif f245ind1 == '1' then
a = 'O título recebeu um <b>ponto de acesso secundário</b>'
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
elseif f245ind1 == '#' then
a = 'Está faltando o primeiro indicador do campo 245'
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
else
a = 'O primeiro indicador do campo 245 foi preenchido incorretamente'
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
end
-- A seguir, testa se foi preenchido o segundo indicador do 245, se foi, mostra como será a alfabetação, removendo a pontuação final do subcampo $a ('/',':','='' ou '.')
local f245a = frame:expandTemplate {title = 'Select', args = {'245', 'a', target}}
if f245:sub(2, 2) == '#' then
a = 'Está faltando o segundo indicador do campo 245'
info = string.format( '* <strong class="error">%s.</strong>', a )
table.insert(infos, info)
else
a = 'O título será alfabetado como'
b = ucfirst( f245a:sub( f245:sub(2, 2) + 1 ) )
b = string.gsub( b, '%s?[%/:=.]$', '' )
info = string.format( '* %s "<b>%s</b>".', a, b )
table.insert(infos, info)
end
end -- end if 245
return table.concat(infos,
end
|