function "dtutils.string.substitute()" fails when no time data is provided in Exif data
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 78/100
Direção de pesquisa
Comece em lua/lib/dtutils/string.lua lendo build_substitute_list e exiftime2systime e, em seguida, execute o script de substituição reportado em uma imagem sem dados de horário EXIF. Está concluído quando o timestamp padrão é aceito sem um erro de os.time no sistema afetado.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
When running a script using "dtutils.string.substitute()" function on a file without any time data in Exif, the "dtutils.string.substitute()" function fails.
190.9832 LUA ERROR : ...\AppData\Local\darktable/lua/lib/dtutils\string.lua:748: time result cannot be represented in this installation
stack traceback:
[C]: in ?
[C]: in function 'os.time'
...AppData\Local\darktable/lua/lib/dtutils\string.lua:748: in upvalue 'exiftime2systime'
...AppData\Local\darktable/lua/lib/dtutils\string.lua:843: in function 'lib/dtutils.string.build_substitute_list'
...AppData\Local\darktable/lua/lib/dtutils\string.lua:1298: in function 'lib/dtutils.string.substitute'
After looking at the "string.lua" code, it seems that "build_substitute_list" function tries to use "0000:00:00 00:00:00" as default value if the exif time is not available, but the "os.time{}" conversion called later through "exiftime2systime(datetime_taken)" does not like it. The minimum time value accepted on several systems is January 1st, 1970. I updated the "string.lua" code on my installation (replacing "0000:00:00 00:00:00" with "1970:01:01 00:00:00") and this fixes the issue.
Code from string.lua :
local function exiftime2systime(exiftime)
local yr,mo,dy,h,m,s = string.match(exiftime, "(%d-):(%d-):(%d-) (%d-):(%d-):(%d+)")
return(os.time{year=yr, month=mo, day=dy, hour=h, min=m, sec=s})
end
[...]
function dtutils_string.build_substitute_list(image, sequence, variable_string, username, pic_folder, home, desktop)
[...]
if image.exif_datetime_taken and image.exif_datetime_taken ~= "" then
datetime_taken = image.exif_datetime_taken
else
if use_millisecs then
datetime_taken = "0000:00:00 00:00:00.0"
else
datetime_taken = "0000:00:00 00:00:00"
end
end
[...]
I see this issue on Windows 11, DarkTable 5.4.0. Other systems could behave the same, or not.
- Linguagem predominante
- Lua
- Estrelas
- 219
- Forks
- 142
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de darktable-org/lua-scripts
-
dtutils.string: build_substitute_list errors when a metadata field (e.g. rights) has been removed Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
darktable-org/lua-scripts#716 · 2 comentários ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 63/100
darktable-org/lua-scripts#706 ·
-
bug
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 65/100
darktable-org/lua-scripts#618 · 3 comentários ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 52/100
darktable-org/lua-scripts#710 · 3 comentários ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
darktable-org/lua-scripts#708 · 1 comentário ·
Todas as issues de darktable-org/lua-scripts
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
api7/lua-resty-saml#62 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
nvim-tree/nvim-tree.lua#3357 · 1 comentário ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 94/100
codymikol/multiverse.nvim#320 ·
-
Data Correction tbc
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100