Photofile - скачування фотографій з фотохостингів, мої програми
Photofile є плагіном розширення файлової системи, так званий FS-плагін. Після установки знайти його можна в папці мережевого оточення Total Commander. Так як це плагін файлової системи то все дій користувача відбуваються за допомогою маніпуляцій з папками і файлами. Зайшовши в плагін (запустивши його) користувачу доступні 3 дії: додати закладку, встановити з'єднання з потрібним файлом (альбомів), викликати вікно налаштувань.

Якщо клікнути на папку "додати закладку" то відкриється діалог для введення URL користувача або фотоальбому користувача і введення назви для відображення в панелі.
По кліку з налагодження виведеться список доступних опцій.


Так як це плагін файлової системи, то він підтримує можливість синхронізації папок. Дуже зручно якщо користувач часто додає фотографії в альбоми. В цьому випадку Total Commander покаже нові файли і ви зможете скопіювати тільки їх.
Спробую розповісти трохи про формат скрипта. Багато що вже не пам'ятаю. Власне скрипт виглядає наступним чином:
User = 5
Album = 7
Original = 0
Жирним шрифтом виділені змінні, а праворуч від них правила їх отримання. Правила описані за допомогою регулярних виразів. Зеленим глобальні змінні. Червоним індекс аргументу отриманого в результаті виконання попереднього регулярного виразу. Справа в тому, що сервіси фотохостингу не надавали API для доступу до них. Тому мені доводилося довільні HTML сторінки. Всі сервіси можна структурно описати у вигляді дерева з потрійною вкладеністю: Користувач -> Альбоми користувача -> Фотографії в альбомі. Для роботи плагіна досить описати правила отримання списку альбомів і списку фотографій.
У представленому прикладі верхня група правил описує як отримувати список альбомів.
Мінлива DirExpression служить для перевірки чи є введений URL користувача. Якщо URL задовольняє умові, то з нього витягується ID користувача за допомогою змінної User = 5 яка говорить, що ID користувача дорівнює 5-му аргументу результату виконання регулярного виразу.
Мінлива AlbumExpression визначає правило отримання опису альбомів в HTML. Я трохи розширив регулярні вирази додавши спеціальний символ "` "підстановки в регулярний вираз раніше отриманих значень. Для параметра AlbumExpression запис () `User; означає, що замість `User буде підставлена отримане значення ID користувача.
Мінлива NameAlbum визначає правило формування (складання) назви альбому. Назва альбому дорівнюватиме 6-му аргументу результату виконання регулярного виразу AlbumExpression.
Мінлива UrlAlbum визначає правило формування URL на альбом. Замість символів% s будуть підставлені значення ID користувача і 4-й аргументу результату виконання регулярного виразу AlbumExpression.
І на останок. Так як список альбомів сервер повертає посторінково. Необхідно описати правила переходу на попередню сторінку списку. Мінлива IfNextPageAlbum служить для перевірки наявності наступної сторінки, а NextPageAlbum для отримання URL на наступну сторінку.
Нижня група правил служить для отримання списку фотографій всередині альбому.
Так вже вийшло, що не дивлячись на те, що я реалізував роботу плагіна по скриптам, роботи мені це не зменшило. Так як сайти часто міняли форматування сторінки мені доводилося часто правити скрипти і стежити за їх працездатністю. Через деякий час я виклав вихідні програми і закинув її.
Нещодавно дізнався, що на форумі все ще йде обговорення роботи плагіна. Користувачі розібралися в роботі скриптів і самі викладають оновлені версії.
Сторінка плагіна на wincmd.ru
Так виглядали перші версії плагіна :-D. Соромно, дуже соромно 😳

