...

понедельник, 3 марта 2014 г.

Скрипт Automator, загружающий изображения на Habrastorage: второе пришествие

Некоторое время назад я сделал скрипт, который загружает изображения на Habrastorage прямо из файлового менеджера. Но вот беда: после обновления он перестал работать.

image

Но вчера мне все-таки надоело загружать фотографии через веб-интерфейс, и я пошел чинить скрипт.

За решение надо ставить плюсики в карму пользователю avalak, который рассказал как это сделать в моем вопросе на тостере. Тостер — торт!

Итак, как теперь загружать изображения?


Раньше для загрузки картинок использовалась вот такая команда:

curl -F "Filedata=@/Users/vvzvlad/Documents/REVIEWS/003.jpg" "http://ift.tt/1kL7X5e"


С новой версией HS она приняла вот такой вид:

curl --cookie "habrastorage_sid= fs5csqksk0hdm5mq3o91cmdm97" --form "files[]=@/Users/vvzvlad/Documents/REVIEWS/003.jpg --header "X-Requested-With: XMLHttpRequest" --header "Referer: http://ift.tt/1fDur5d" --request POST http://ift.tt/1kL7X5i


Авторизация теперь происходит не по коду, а по содержимому куки. Чтобы его узнать, надо зайти на хабрасторедж, нажать(в хроме) на пустой листик перед адресом и выбрать «Показать cookie и данные сайта»:

image

После чего найти ее в списке и скопировать содержимое:

image

И вставить ее в скрипт:

image


Кстати, у предыдущей версии скрипта были определенные проблемы с именами папок и файлов, содержащими пробелы. Чтобы избежать этого, сделаем вот так:

image

Мы перемещаем файл во временную папку, переименовываем его, чтобы убрать пробелы в имени и загружаем. А после загрузки — удаляем:rm "$FILE"


Еще из нового — у меня картинка вставляется в текст черновика автоматически. Делается это следующей конструкцией:

set the clipboard to "<img src=\"" & input & "\" alt=\"image\"/>" display notification input with title "Картинка загружена" tell application "Google Chrome" to activate tell application "System Events" to key code 9 using command down


Первая строка — формирует из адреса картинки тег изображения, вторая показывает уведомление, третья — делает приложение «Chrome» активным, а четвертая виртуально нажимает кнопку cmd+v.


Как обычно, файл со службой лежит вот тут. Надо распаковать архив и его содержимое переместить в /Users/User/Library/Services/. Открыть его, щелкнув два раза на файл, и вставить свою куку внутрь.

Правда, что делать с протухающей через несколько дней кукой — я еще не знаю. Пока буду копировать вручную.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий