Photofile - скачування фотографій з фотохостингів, мої програми

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

Photofile - скачування фотографій з фотохостингів, мої програми
Якщо клікнути (натиснути Enter) на папку "з'єднання" то відкриється діалог введення URL. На ім'я сервісу в URL плагін підвантажує необхідний скрипт. За допомогою завантаженого скрипта розбирається URL для визначення який ресурс запросив користувач. У разі якщо URL посилається на сторінку користувача, то плагін відображає список фотоальбомів у вигляді папок. Якщо URL посилається на альбом користувача, то плагін відображає список фотографій в альбомі.

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

По кліку з налагодження виведеться список доступних опцій.

Photofile - скачування фотографій з фотохостингів, мої програми
На малюнку зображений процес копіювання фотографій відразу з декількох альбомів. Якщо додати закладку на користувача, то при копіюванні закладки запуститься процес копіювання всіх альбомів (з фотографіями) користувача.

Photofile - скачування фотографій з фотохостингів, мої програми

Так як це плагін файлової системи, то він підтримує можливість синхронізації папок. Дуже зручно якщо користувач часто додає фотографії в альбоми. В цьому випадку 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. Соромно, дуже соромно 😳

Photofile - скачування фотографій з фотохостингів, мої програми

Photofile - скачування фотографій з фотохостингів, мої програми