Сегодня хочу поделиться мелкой, но полезной находкой. Я отношусь к фотоальбомам довольно традиционным образом: стараюсь выстраивать фотографии в том порядке, который мне кажется правильным, комментирую в меру способностей и наличия свободного времени... Думаю, нет необходимости доказывать, что проще всего выстроить файлы в нужном порядке, попросту придавая им имена, следующие по алфавиту.
Проблема в том, что Google Photos, куда я обычно выкладываю фотоальбомы, не позволяет осуществить сортировку фотоальбома по имени. Как же добиться желаемого? Оказывается, не очень сложно. Правда, пришлось изрядно повозиться, прежде чем выйти на этот нехитрый метод.
Нам понадобится утилита
upload-gphotos (откомпилированные версии
также доступны), браузер Chrome и небольшой код на Python:
import os
import sys
import subprocess
album = "ALBUM-NAME"
user = "USER-NAME"
password = "PASSWORD"
gphotos_path = r'C:\Utils\upload-gphotos-win.exe'
os.environ['PUPPETEER_EXECUTABLE_PATH'] = r'C:\Utils\Chromium\Chrome.exe'
target_extension = ".jpg"
files = sorted([name for name in os.listdir() if name.lower().endswith(target_extension)], reverse=True)
for file in files:
print("Uploading: " + file)
subprocess.call([gphotos_path, file, "-u", user, "-p", password, "-a", album])
Суть в том, что Google Photos позволяет отсортировать альбом "по дате загрузки" (в действительности в обратном порядке). Соответственно, мы должны загружать снимки в обратном алфавитном порядке, чтобы добиться требуемого эффекта. Для этого и нужен приведённый фрагмент: он проходит по файлам с указанным расширением в обратном порядке и вызывает upload-gphotos (у меня вызывается Windows-версия, но аналогичный код должен работать и на Linux/Mac). Необходимо лишь прописать пути к Chrome и утилите upload-gphotos, а также указать имя пользователя и пароль к учётной записи Google и название целевого альбома. Если такого альбома не существует, он будет создан.