Задача: закачать на сайт фотогалерею из 15 папок по 20 фото в каждой.
Проблема: 1) движок не понимает имена файлов содержащие кирилицу
2) Для закачки используется стандартный input type=file который разрешает добавлять только один файл за раз. Для 300 файлов придется сделать около 1000 кликов
Решение проблемы 1: Переименовать все файлы с папке с помощью bat
Имя файла renameTo.bat
cls
@echo
set /a counter = 0
for /r %%i in (*.jpg) do (
call :rename "%%i" %1
)
goto:eof
:rename
set /a counter += 1
rename %1 %2%counter%.jpg
goto:eof
Теперь достаточно запустить
renameTo.bat birthday
и все *.jpg будуть иметь имена birthday1.jpg, birthday2.jpg и т.д.
Решение проблемы 2: закачка множества файлов с использованием плагина iMacros под FireFox.
Сначала сгенерируем файл источника для iMacros. Это будет опять bat-ник.
Назовем его filesToList.bat
for /r %%i in (*.jpg) do (echo "%%i" >> files.csv)
Запускаем без параметров
filesToList.bat
Он создаст файл со списком всех jpg-ов в папке. Обратите внимение - в кавычках и с полными путями.
Например:
"C:\Documents and Settings\Larry\Рабочий стол\photo\birthday1.jpg"
"C:\Documents and Settings\Larry\Рабочий стол\photo\birthday2.jpg"
"C:\Documents and Settings\Larry\Рабочий стол\photo\birthday3.jpg"
"C:\Documents and Settings\Larry\Рабочий стол\photo\birthday4.jpg"
"C:\Documents and Settings\Larry\Рабочий стол\photo\birthday5.jpg"
"C:\Documents and Settings\Larry\Рабочий стол\photo\birthday6.jpg"
Теперь основное - сам макрос. Во первых он будет использовать наш сгенерированый список файлов files.csv. Этот файл надо поместить в папку Datasources, у меня она здесь C:\Documents and Settings\Larry\Мои документы\iMacros\Datasources. Конфигурируется настройками аддона
Теперь сам макрос. Думаю разберетесь куда его вставить
CMDLINE !DATASOURCE files.csv
SET !DATASOURCE_COLUMNS 1
SET !LOOP 1
SET !DATASOURCE_LINE {{!LOOP}}
TAG POS=1 TYPE=INPUT:FILE ATTR=ID:edit-upload CONTENT={{!COL1}}
TAG POS=1 TYPE=INPUT:SUBMIT ATTR=ID:edit-attach
В моем случае input имеет id=edit-upload, а кнопка submit имеет id=edit-attach.
Скрипт последовательно в цикле читает строчки из файла, вставляет в инпут и нажимает сабмит. Вы ждете и смотрите. Ах да, один мутный момент, почему-то надо задавать количество итераций (то-ли он не умеет определить количество строк в datasource, то ли я) и нажимать Play(Loop).
Надеюсь это кому-то сэкономит время, как сэкономило мне.
Что можно было сделать лучше:
1. В скрипт создания списка файлов добавить copy файл в нужную директорию с rewrite-ом.
2. Разобратся с количеством итераций скрипта - чтоб-не задавать их в ручную
3. Расширить скрипт аплоуда что-б он сам создавал фотогалерею (15 раз) по заданым параметрам с файла.
4. Даный скрипт я запускал 15 раз - в идеале можно создать 1 скрипт, нажать плей и уйти на перекур.
5. Использовать вместо (или вместе с) bat какой-то умный язык программирования, что-б еще и пережать все файлы к веб размеру.
6. Что-то еще