Два дня назад я написал статью Мой полуавтоматический рабочий процесс для ведения блога. В этой статье одним из шагов, который я еще не автоматизировал, была публикация в блоггере, и я сказал, что собираюсь реализовать его в ближайшее время. Итак, этот урок является продолжением этого. В этой статье я покажу, как вы можете автоматически загружать файлы в Blogger, а также покажу, как я планирую использовать это в своем рабочем процессе ведения блога.
Прежде чем все это, позвольте мне рассказать вам о нескольких вещах, которые произошли, когда я исследовал автоматизацию взаимодействия с Blogger. Я начал изучать API Blogger от Google и начал пробовать некоторые вещи, но вскоре понял, что есть много вещей, которыми нужно управлять и о которых нужно позаботиться, и я, конечно, не смогу закончить вовремя, чтобы опубликовать эту статью. Тогда я подумал, что кто-то уже сделал это и предоставил единый способ заставить это работать. Итак, вместо того, чтобы пытаться понять это самостоятельно, я решил посмотреть, что другие сделали для автоматизации блоггеров. И вот что я нашел.
Я нашел несколько инструментов для этого, но я решил использовать Easy Blogger от Raghu. Мне он понравился из-за хорошей документации и понятного интерфейса, и теперь я буду использовать его для публикации статей в блоггерах.
Инструкций в файле README проекта уже вполне достаточно, но чтобы эта статья была полной, я добавлю некоторые инструкции по настройке и использованию.
Настройка
Вы можете установить Easyblogger с помощью pip
, запустив pip install EasyBlogger
, который установит исполняемый файл easyblogger
, а также соответствующие зависимости.
Довольно крутая вещь в этом инструменте заключается в том, что вы можете публиковать широкий спектр форматов, которые в конечном итоге будут преобразованы в html с помощью pandoc. Таким образом, вы можете написать свой документ в уценке и напрямую опубликовать его с помощью этого инструмента. Я бы хотел использовать это напрямую, но поскольку я уже преобразовал свою разметку в html, как я описал здесь, я просто опубликую html напрямую.
README также объясняет пару отображений Vim, если вы используете Vim и хотите публиковать статьи, не выходя из редактора. Да за это!
Затем вам нужно настроить аутентификацию, получив ключи клиента. Для этого вы бежите
easyblogger --blogid <yourblogid> get
Это откроет окно браузера, которое вы используете для аутентификации с помощью своей учетной записи, и после аутентификации easyblogger сохранит эти учетные данные в файле с подходящим названием ~/.easyblogger.credentials
.
Как только это будет сделано, вы готовы использовать Easyblogger.
использование
Быстрая справка показывает все доступные команды и параметры:
$ easyblogger --help usage: easyblogger [-h] [-i CLIENTID] [-s SECRET] [-v {INFO,DEBUG,WARNING,ERROR,CRITICAL}] [--blogid BLOGID | --url URL] {get,post,delete,update,file} ...
Easily manage posts on Blogger blogs
positional arguments: {get,post,delete,update,file} sub-command help get list posts post create a new post delete delete a post update update a post file Figure out what to do from the input file
optional arguments: -h, --help show this help message and exit -i CLIENTID, --clientid CLIENTID Your API Client id -s SECRET, --secret SECRET Your API Client secret -v {INFO,DEBUG,WARNING,ERROR,CRITICAL}, --verbose {INFO,DEBUG,WARNING,ERROR,CRITICAL} verbosity(log level) - default CRITICAL --blogid BLOGID Your blog id --url URL Your blog url
Получить сообщения
Начнем с получения файлов из блога. Вы можете сделать это с
easyblogger --blogid <blogid> get
Это распечатает все заголовки сообщений вместе с их идентификаторами сообщений. Но, конечно, если у вас сотни и тысячи постов, вы захотите ограничить посты определенным ярлыком или даже ограничить его несколькими постами. Вы можете сделать это, добавив параметры следующим образом:
easyblogger --blogid <blogid> get --labels programming --count 5
Что дает следующий вывод для моего блога, показывающий последние 5 статей по программированию.
437344021642199000,Datasets in Apache Spark | Part 1,http://www.freblogg.com/2017/12/apache-spark-datasets-1.html
226912361219823323,Tweeting with Python and Tweepy,http://www.freblogg.com/2017/12/tweeting-with-python-and-tweepy.html
345235372397413038,How to recover from 'git reset --hard" | Git,http://www.freblogg.com/2017/09/how-to-recover-from-git-reset-hard-git.html
63494528537546270,Functions in C Programming | Part 1,http://www.freblogg.com/2017/08/functions-in-c-programming-part-1.html
304802860468725657,Understanding Git Octopus Merge,http://www.freblogg.com/2016/12/git-octopus-merge.html
И чтобы получить только один пост, возьмите постид сверху и запустите,
easyblogger.exe --blogid <blogid> get -p 437344021642199000 -d markdown
Это выводит сообщение на консоль.
Примечание. Хотя в README сказано, что это будет напечатано в уценке, я получил только html. Я пока не понял, что может быть причиной этого. Я, вероятно, подниму вопрос о проектах github. Но для меня эта функция не особо важна. Так что меня это устраивает.
Публиковать посты
Инструкции по использованию метода post
следующие:
usage: easyblogger post [-h] [-t TITLE] [-l LABELS] [--publish] (-c CONTENT | -f FILE) [--filters FILTERS [FILTERS ...]] [--format {commonmark,creole,docbook,docx,epub,gfm,haddock,html,json,latex,markdown,markdown_github,markdown_mmd,markdown_phpextra,markdown_strict,mediawiki,muse,native,odt,opml,org,rst,t2t,textile,tikiwiki,twiki,vimwiki}]
optional arguments: -h, --help show this help message and exit -t TITLE, --title TITLE Post title -l LABELS, --labels LABELS comma separated list of labels --publish Publish to the blog [default: false] -c CONTENT, --content CONTENT Post content -f FILE, --file FILE Post content - input file --filters FILTERS [FILTERS ...] pandoc filters
Как видите, вы можете установить заголовок статьи, установить метки, а также передать файл практически в любом текстовом формате, который только можно вообразить. Я собираюсь использовать его с флагом -f
, передав файл уценки и с некоторыми метками.
В качестве пробного запуска я создал этот пост в своем экспериментальном блоге с помощью этой команды:
easyblogger.exe --blogid <blogid> post -t "Posted from CL using EasyBlogger" -l "blogging, easyblogger" --publish -f test.html
Если вы не хотите публиковать сообщение сразу, а вместо этого хотите просто сохранить его в черновиках, вы можете сделать это, удалив параметр --publish
из приведенной выше команды. И это сохранит пост как черновик.
Обновление сообщения
Вы можете обновить ранее опубликованный пост следующим образом:
easyblogger update -t 'A new title' -l "new,labels" 3295765957555899963
Это обновит заголовок и метки данного поста.
Удаление сообщения
Это может быть не для всех, так как большинство не будет удалять свои посты после публикации. Но, конечно, вы можете сделать и это, запустив delete
с постидентификацией.
easyblogger delete 234546720561632959
Я думаю, что это охватывает большую часть того, как вы можете работать с EasyBlogger
. Для получения дополнительной информации прочитайте README.md
в проекте, который содержит тщательно документированные команды.
Поскольку я собираюсь опубликовать эту статью на Medium, я не смогу использовать это для этого поста, но для всех своих будущих постов в блогах я обязательно буду использовать это.
Это все для этой статьи.
Другие статьи по программированию можно найти на Freblogg.
Несколько статей по автоматизации:
Веб-скрейпинг для начинающих с Python
Мой полуавтоматический рабочий процесс для ведения блога
Это шестая статья в рамках моего твиттер-челленджа #30DaysOfBlogging. Еще двадцать четыре статьи на различные темы, включая, помимо прочего, Java, Git, Vim, Разработка программного обеспечения, Python.
Если вам это интересно, подписывайтесь на меня в Твиттере @durgaswaroop. Пока вы это делаете, подписывайтесь на здесь, на среду, а также на мой другой блог.
Если вы заинтересованы в участии в каких-либо проектах с открытым исходным кодом и не нашли подходящий проект или не знаете, с чего начать, я хотел бы предложить свой собственный проект Delorean, который представляет собой систему управления распределенными версиями, созданную с нуля в scala. Вы можете внести свой вклад не только в виде кода, но и с документацией по использованию, а также путем выявления любых ошибок в функциональности.
Спасибо за чтение. До новых встреч в следующей статье.