View previous topic :: View next topic |
Author |
Message |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Oct 02, 2019 11:43 Post subject: |
|
|
timson wrote: | Имя файла это время модификации вида-2019-08-01-10h23m45. | Т.е. это ответ на вопрос?
Flasher wrote: | Может, и у *.mp4 совпадает? | Так и в чём проблема с сортировкой по дате модификации? А если у jpg/mp4 один формат имени, то и по нему сортировка вполне уместна. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
timson
Joined: 14 Jul 2015 Posts: 54
|
(Separately) Posted: Wed Oct 02, 2019 11:58 Post subject: |
|
|
Да это и есть ответ на вопрос, какое поле я хочу заполнить в свойствах файла-подробно.
По времени модификации не получится сортировать, так видео файлы находятся вместе с jpg файлами-фотографии.
А задача , что бы по сортировке по тегам вывести файлы фотографий и видео за одну и ту же дату.
К примеру фото сделано 15 сентября 2019 года, теги прописываются автоматизацией , которую Вы давно подсказали. И есть видео сделанное в эту же дату, что бы они находились рядом друг с другом. При просмотре из проводника. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Oct 02, 2019 13:04 Post subject: |
|
|
timson wrote: | По времени модификации не получится сортировать, так видео файлы находятся вместе с jpg файлами-фотографии. | Как это не получится, если дата соответствует имени?
timson wrote: | При просмотре из проводника. | Вы читаете, что вам модератор пишет? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
Avada

Joined: 01 Aug 2008 Posts: 10440 Location: Россия, Саратов
|
(Separately) Posted: Wed Oct 02, 2019 14:40 Post subject: |
|
|
timson
Чтобы такие файлы находились в TC рядом друг с другом по какому-то признаку, должен быть создан пользовательский набор колонок, использующий для одной из колонок WDX-плагин, который способен отобразить в колонке этот самый признак (поле плагина). (Для выбора плагина рекомендуется поиск по exif на этой странице.) Никаких иных способов сортировки вы в ТС не получите, а аналогии с Проводником бессмысленны — это другая программа. И к автоматизации это, вообще говоря, уже не относится. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
 |
Monarch-LFV

Joined: 22 Jul 2019 Posts: 343
|
(Separately) Posted: Thu Oct 02, 2025 16:26 Post subject: |
|
|
Уже год как Exiftool поддерживает географическую геолокацию по GPS координатам в EXIF данных, то есть имеет встроенную базу данных населенных пунктов всего мира, что позволяет пр помощи такой команды в командной строке (BAT-файл):
Code: | @exiftool %1 -charset filename=Cyrillic -api geolocation "-geolocation city*" "-geolocation region*" "-geolocation country*" "-geolocation Distance*" 2>nul
@pause>nul |
Выводить информацию, например, такого вида:
Code: | Geolocation City : Petropavlovsk-Kamchatsky
Geolocation Region : Kamchatka
Geolocation Country Code : RU
Geolocation Country : Russia
Geolocation Distance : 1.98 km
|
Но не знаю как прописать в Config.txt плагина ExifToolWDX.wdx, для получения этих данных в колонки TC. Может кто подскажет? |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 890
|
(Separately) Posted: Sat Oct 04, 2025 14:01 Post subject: |
|
|
Monarch-LFV
Если с плагином ничего не получится, можно попробовать извлечь данные через Autorun или WinScriptAdv. Алгоритм не должен быть сложный. В теории можно из любой консольной утилиты вытянуть что угодно, если заранее известен формат вывода.
Пример на Autorun:
 Hidden text Code: | Pragma AutorunPluginFields "GeoCity:::ExifGeoData" "GeoRegion:::ExifGeoData" "GeoCountryCode:::ExifGeoData""GeoCountry:::ExifGeoData" "GeoDistance:::ExifGeoData"
Global gExifDir = COMMANDER_PATH & "\Plugins\wlx\ExifToolView\"
Global gExifExe = gExifDir & "exiftool.exe", gExifParam = '-charset filename=Cyrillic -api geolocation "-geolocation city*" "-geolocation region*" "-geolocation country*" "-geolocation Distance*"'
Global gGeoOut = List(), gGeoData = List("", "", "", "", "")
Global gGeoList = List("Geolocation City", "Geolocation Region", "Geolocation Country Code", "Geolocation Country", "Geolocation Distance")
Func ExifGeoData(FileName, FieldIndex, UnitIndex)
Static lst, dat, idx
If StrPos(FileGetAttr(FileName), "D") Then Return
If FieldIndex = 1 Then
gGeoOut.Count = 0
gGeoOut.Text = ProcessExecGetOutput(FileName, gExifExe gExifDir)
For idx = 0 To gGeoData.Count - 1
gGeoData[idx] = ""
Next
For geo In gGeoOut
If StrPos(geo, ":") Then
lst = StrTrim(StrPart(geo, ":", 1))
dat = StrTrim(StrPart(geo, ":", 2))
idx = gGeoList.IndexOf(lst)
If idx <> -1 Then gGeoData[idx] = dat
EndIf
Next
Endif
Return gGeoData[FieldIndex-1]
EndFunc |
Пример больше концептуальный, его еще нужно на практике проверять и доводить до рабочего состояния. Единственное правда, что стоит отметить, если в Autorun уже есть созданные поля через директиву Pragma AutorunPluginFields, то новые поля нужно добавлять в начало. Если добавить в конец, то FieldIndex не будет равен 1. Тогда придется это учитывать и прибавлять значение в условии
Code: | If FieldIndex = 1+10 Then |
А в результате отбавлять
Code: | Return gGeoData[FieldIndex-1-10] |
если полей было, например 10. |
|
Back to top |
|
 |
Monarch-LFV

Joined: 22 Jul 2019 Posts: 343
|
(Separately) Posted: Sat Oct 04, 2025 16:00 Post subject: |
|
|
Orion9
На самом деле я уже давно реализовал это через WinScriptADV, но думал, что есть стандартное решение через плагин.
 Exiftool_Geolocation.vbs Code: | ' Script for WinScriptAdv content plugin
' На основе EXIF-данных о координатах показывает
' название города, области, страны и расстояние от центра
' ВАЖНО! Для работы необходима утилита Exiftool
on error resume next
Set WshShell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
tmp = WshShell.ExpandEnvironmentStrings("%temp%")
tcp = WshShell.ExpandEnvironmentStrings("%commander_path%")
fn = FSO.GetfileName(filename) ' Имя файла
GetTheParent = FSO.GetParentFolderName(filename)
Set fold= FSO.GetFolder(GetTheParent)
Parname=fold.name
Parsize=fold.size
If not FSO.FolderExists(tmp & "\_TC_Exiftool\") Then
FSO.createfolder tmp & "\_TC_Exiftool\"
End if
txtfile = tmp & "\_TC_Exiftool\~$" & Parname & "-" & Parsize & ".txt"
if not FSO.FileExists(txtfile) then
WshShell.run "cmd /c """"" & tcp & "\Plugins\wdx\ExifTool\exiftool.exe"" -charset filename=Cyrillic -api geolocation ""-geolocation city*"" ""-geolocation region*"" ""-geolocation country*"" ""-geolocation Distance*"" """ & GetTheParent & """>""" & txtfile & """", 0, True
end if
Set objStream = CreateObject("ADODB.Stream")
objStream.CharSet = "UTF-8"
objStream.Open
objStream.LoadFromFile txtfile
strData = objStream.ReadText()
objStream.Close
For Each F In Split(strData, vbNewLine)
if Instr(F, "====") and curFile<>"" then exit for
if Instr(F, fn) then curFile = fn
if Instr(F, "Geolocation City") and curFile<>"" then content2 = right(F, len(F)-34)
if Instr(F, "Geolocation Region") and curFile<>"" then content1 = right(F, len(F)-34)
if Instr(F, "Geolocation Country") and curFile<>"" then content = right(F, len(F)-34)
if Instr(F, "Geolocation Distance") and curFile<>"" then content3 = right(F, len(F)-34)
Next
If curFile = "" then FSO.deletefile(txtfile) |
Для ускорения загрузки я использовал метод геотегирования всей папки с фотографиями, поэтому код немного нелеп с точки зрения создания временного файла (в папке %Temp%). В скрипте нужно подправить путь до утилиты, у всех он разный.
В "options.ini" плагина WinscriptADV:
Code: | ActiveScripts=...|Exiftool_Geolocation|...
[Exiftool_Geolocation]
Script=Exiftool_Geolocation.vbs
content=Exiftool_Country
content1=Exiftool_Region
content2=Exiftool_City
content3=Exiftool_Distance
extensions=jpg|jpeg|jpe|heic|mov
FoldersPaths=1 |
Это я, кстати, обсуждаю в настоящее время на оф.форуме Гислера. Имеются предлжения от Flasher'a, но пока не рабочие. Будем надеяться, что здесь или там найдется решение. |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 890
|
(Separately) Posted: Sun Oct 05, 2025 00:41 Post subject: |
|
|
Monarch-LFV
Да, я помню, что у вас нет проблем с WinscriptADV, поэтому решил сделать на Autorun. Этот код все-равно еще пригодится, нужно только по мелочи поправить, типа gGeoList свой задать и другую консольную утилиту.
Quote: | Это я, кстати, обсуждаю в настоящее время на оф.форуме Гислера. Имеются предлжения от Flasher'a |
Что он там все шатается? Пора уже домой. |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|