Нужна помощь (отблагодарю)

Обсуждение программы xStarter
Ответить
filmax
Пассажир
Сообщения: 5
Зарегистрирован: Сб июн 27, 2020 6:52 pm
Благодарил (а): 1 раз
Поблагодарили: 0

Нужна помощь (отблагодарю)

Сообщение filmax » Сб июн 27, 2020 7:39 pm

Всем здравствуйте!

Есть задача:
Данные:
1. ежедневный поток писем с вложениями вида "20200627T131110.imfx" (imfx он же архив zip)
2. среди этих вложений, в основном до 100 кб, есть вложения 150-900 кб.
3. Эти вложения(zip архивы *.imfx) содержат внутри архива документ либо doc3.pdf, либо doc3.xps, и до десятка мелких файлов xml.
4. И doc3.pdf, и doc3.xps имеют стандартную структуру и вид, включая номер в правом верхнем углу вида ХХХХХХХХХХ/ДДДД/НННННН

Задача:
1. Отловить все вложения(*.imfx) больше 140 кб, так как это признак содержания нужного документа внутри. Остальные удаляем.
2. Так как наименование файла внутри каждого архива(*.imfx) одинаковое doc3, то распаковать надо сразу с переименовыванием.
3. Имя файла извлечь из самого файла(doc3.pdf или doc3.xps) - последние 6 цифр номера в правом углу документа.
4. Удаление мусорных файлов(все что не xps или не pdf) после распаковок вложений архивов(*.imfx)

Примеры содержимого imfx файлов прикрепил. Пример содержимого xps или pdf прикрепил.
Вложения
wecA8XXh.jpg
wecA8XXh.jpg (58.22 КБ) 6421 просмотр
gtd-2019_invecta_page_1.jpg
gtd-2019_invecta_page_1.jpg (52.62 КБ) 6421 просмотр
rzbhiLVy.jpg
rzbhiLVy.jpg (57.83 КБ) 6422 просмотра

vijei
Пилот экстра класса
Сообщения: 42
Зарегистрирован: Сб окт 06, 2012 6:22 pm
Благодарил (а): 0
Поблагодарили: 3 раза

Re: Нужна помощь (отблагодарю)

Сообщение vijei » Сб июл 11, 2020 2:58 pm

Вложения из писем тоже надо будет доставать из почты? или вы их руками сохраняете?

filmax
Пассажир
Сообщения: 5
Зарегистрирован: Сб июн 27, 2020 6:52 pm
Благодарил (а): 1 раз
Поблагодарили: 0

Re: Нужна помощь (отблагодарю)

Сообщение filmax » Сб июл 11, 2020 3:10 pm

Автоматом будет сыпаться с помощью почтовой программы в ThunderBird плагин AttachmentExtractor.

Установите плагин, затем зайдите в «Инструменты->Настройки AttachmentExtractor», где укажите все необходимые настройки.

Еще не пробовал.

Сейчас пробую решить многоступенчатую задачу с помощью foldermill.
В принципе все получается. Кроме имени файла, которое надо извлечь из самого файла.

vijei
Пилот экстра класса
Сообщения: 42
Зарегистрирован: Сб окт 06, 2012 6:22 pm
Благодарил (а): 0
Поблагодарили: 3 раза

Re: Нужна помощь (отблагодарю)

Сообщение vijei » Сб июл 11, 2020 4:33 pm

Имя файла может содержаться в xml файлах. Как правило это служебные файлы, в них может содержаться информация о запакованных файлах. Если в xml есть такая информация, то её легко можно найти с помощью xstarter.

Если в документах нет персональных данных, залейте куда-нибудь архив, я посмотрю что можно сделать.

filmax
Пассажир
Сообщения: 5
Зарегистрирован: Сб июн 27, 2020 6:52 pm
Благодарил (а): 1 раз
Поблагодарили: 0

Re: Нужна помощь (отблагодарю)

Сообщение filmax » Вс июл 12, 2020 11:55 pm

В архиве типичные вложения.
Это все архивы zip.
Нужные и не нужные.
Нужные можно отсеивать по размеру, например больше 100кб
В нужных внутри бывает PDF или XPS.
Вот их и нужно "отмыть и переименовать"
Остальное удалить.
Последний раз редактировалось filmax Пн июл 13, 2020 12:31 am, всего редактировалось 1 раз.

vijei
Пилот экстра класса
Сообщения: 42
Зарегистрирован: Сб окт 06, 2012 6:22 pm
Благодарил (а): 0
Поблагодарили: 3 раза

Re: Нужна помощь (отблагодарю)

Сообщение vijei » Пн июл 13, 2020 12:11 am

Как я и предполагал, в xml есть атрибут DocNumber.
Правильно ли я понял, пример:
архив 20191224T151626.imfx
в архиве много файлов.
надо удалить все .xml и .p7s, а всё оставшееся переименовать в то, что хранится в атрибуте DocNumber (*****170/2***/804032)?
номер в xml файле в атрибуте DocNumber - это тот же номер, что находится в pdf файле в правом верхнем углу.

Если всё правильно, завтра постараюсь залить задачу с полным описанием.

filmax
Пассажир
Сообщения: 5
Зарегистрирован: Сб июн 27, 2020 6:52 pm
Благодарил (а): 1 раз
Поблагодарили: 0

Re: Нужна помощь (отблагодарю)

Сообщение filmax » Пн июл 13, 2020 12:32 am

Все точно. Супер!
Будут оставаться только файлы pdf и xps

vijei
Пилот экстра класса
Сообщения: 42
Зарегистрирован: Сб окт 06, 2012 6:22 pm
Благодарил (а): 0
Поблагодарили: 3 раза

Re: Нужна помощь (отблагодарю)

Сообщение vijei » Вт июл 14, 2020 12:48 pm

Вчера было много дел, не получилось даже начать делать задачу.
Вложения
mail_control.xsc
(20.9 КБ) 250 скачиваний
За это сообщение автора vijei поблагодарил:
adept (Сб июл 18, 2020 7:22 pm)
Рейтинг: 33.33%

vijei
Пилот экстра класса
Сообщения: 42
Зарегистрирован: Сб окт 06, 2012 6:22 pm
Благодарил (а): 0
Поблагодарили: 3 раза

Re: Нужна помощь (отблагодарю)

Сообщение vijei » Вт июл 14, 2020 1:27 pm

Описание по пунктам и переменным.

1. Указать путь до папки, в которую складываются архивы .imfx
2. Путь до папки в которую будут перемещаться переименнованные файлы .pdf или .xps
3. Счётчик для перебора списка найденных архивов
4. Указать размер для архива (в байтах). Архив меньше этого значения будет удалён
5. Указать путь до 7zip (c:\Program Files\7-Zip\7zG.exe)

6. Ищем файлы в папке, в которой находятся архивы .imfx
7. Цикл (пока Счётчик из 3 пункта будет меньше или равен количеству найденных архивов)
8. Получаем путь+имя архива из перебора (поочерёдно)
9. Парсим путь и имя архива из пункта 8 (разделяем)
10. Получаем имя архива из пункта 9
11. Получаем имя архива без расширения из пункта 10
12. Получаем путь до архива из пунта из пунта 8
13. Получаем размер архива

14. Если размер архива меньше чем переменная из пунта 4, то удаляем архив
15. Если размер архива больше, то создаём каталог с именем файла без расширения (пунтк 11) и распаковываем в него архив

16. Прибавляем + 1 к переменной Счётчика (пунтк 3)
17. Обновляем переменную Счётчика

18. Указать имя файла, в котором хранится Значение для переименования файлов .pdf и .xps (в данном случае это doc.xml)
19. Сбрасываем значение Счетчика (пункт 3) для поиска распакованных архивов
20. Ищем каталоги с файлами из архивов
21. Цикл (пока Счётчик из 19 пункта будет меньше или равен количеству найденных каталогов)

22. Получаем путь+имя найденного каталога
23. Ищем номер по атрибуту (в данном случае <DocNumber>) (пункт 18) для переименования .pdf или .xps
24. Удаляем из найденного лишнее (пунтк 23)
25. Ещё раз удаляем из найденного лишнее (пунтк 24)
26. Получаем номер (пунтк 25)
27. Ищем .pdf или .xps в каталоге из цикла
28. Парсим имя файла из пункта 27
29. Получаем имя найденного файла из пунта 28
30. Перемещаем найденный файл в каталог для перемещения (пункт 2) и сразу переименовываем его (пунтк 2 + пунтк 23 + пунтк 28)
31. Удаляем найденный каталог
32. Прибавляем + 1 к переменной Счётчика (пунтк 19)
33. Обновляем переменную Счётчика
Вложения
mail_control_info.png
mail_control_info.png (134.95 КБ) 6312 просмотров
За это сообщение автора vijei поблагодарил:
adept (Сб июл 18, 2020 7:22 pm)
Рейтинг: 33.33%

filmax
Пассажир
Сообщения: 5
Зарегистрирован: Сб июн 27, 2020 6:52 pm
Благодарил (а): 1 раз
Поблагодарили: 0

Re: Нужна помощь (отблагодарю)

Сообщение filmax » Вт июл 14, 2020 5:37 pm

Все работает!
Просто песня!

vijei
Пилот экстра класса
Сообщения: 42
Зарегистрирован: Сб окт 06, 2012 6:22 pm
Благодарил (а): 0
Поблагодарили: 3 раза

Re: Нужна помощь (отблагодарю)

Сообщение vijei » Сб июл 25, 2020 4:13 pm

Спасибо
получил. Заказчику всё понравилось.
Любые вопросы и решения по работе с программой xstarter на этом форуме, оставляйте заявки, наверняка (100%) найдётся айтишник, способный удовлетворить ваши потребности в автоматизаиии различных процессов, и я уверен не только с помощью xstarter.
Ведь автоматизация, процесс творческий, и выбор средств для автоматизации зависит исключительно от автоматизатора.
А автоматизировать можно всё что угодно.
За это сообщение автора vijei поблагодарил:
filmax (Сб июл 25, 2020 4:32 pm)
Рейтинг: 33.33%

Ответить