Namecheap.com - Cheap domain name registration, renewal and transfers - Free SSL Certificates - Web Hosting

Going soicial. Социализация блога. Добавляем Facebook и Twitter.

Sunday, November 14th, 2010

Было бы неплохо добавить автоматический кроспостинг записей блога на фэйсбук и твиттер, подумал я ранним воскресным утром. Следующая мысль пролетевшая в разогнанной кофеином голове была – “нужно погуглить”. Тщательные исследования поисковых систем выявили насколько вариантов, при ближайшем рассмотрении несколько сразу отвалились и выбирать осталось не из чего.
Вообщем есть отличный плагин для организации сабмита постов в фэйсбук и твиттер (и попутно еще в тучу социальных сетей) – Network Publisher.

Publish NetworkРегистрация пролетела за пару кликов (Sign Up with Facebook). OAuth когда ты залогинен на фэйсе или твиттере решает. Вообщем внутри все просто добавляешь аккаунты + привязываешь блоги. Как я понял часть социальных сетей можно добавить за отдельную плату + есть ограничения на максимальное количество постов – 200, что как бе дохуя. Больше, чем может понадобится для этого блога в сутки. А еще сервис предоставляет API – http://apidocs.linksalpha.com/home/getting-started API очень простое (пост запрос + json ответ):

Summary
Enables Publishing of content to Networks

URL

http://api.linksalpha.com/ext/publish

Request Method
POST

Response Format
json

Required Parameters
    * api_key
      API key of the Network to which content needs to be published to
    * content_text
      content that you want to post to the Network

Я бы даже сказал типичное API, в ближейшее время напишу пост как писать обертки для апи подобного типа на Python используя pycurl.
В итоге после нехитрых манипуляция я поставил и настроил этот плагин – результаты можно посмотреть на моем твиттере и фэйсбуке.

Блог теперь do-follow

Sunday, November 14th, 2010

Поставил do-follow на комментарии, теперь любой кто напишет комментарий получит бэклинк на свой сайт/блог. + Посидел вечер за правкой кода и css, внес массу незначительных изменений, чтобы блог выглядел более web 2.0′ым. В ближайшее время (благо оно появилось, хотя, как не странно работать стал больше, главное втянуться) продолжу допиливать дизайн : хочу практически полностью отказаться от картинок и сделать все на css. Не помешало бы еще и как ускорить загрузку блога, гугл любит когда сайт быстрый =) да и пользователям это по нраву.

Добавить категории через WordPress API

Wednesday, March 10th, 2010

Класс описанный в статье “Постинг в WordPress” позволяет прикрепить к посту уже созданные категории, что как бы несколько неудобно если их нужно создавать динамически. Это можно сделать через WordPress API (по XML-RPC), но в библиотеке эта функция не реализованна, впрочем как и многие другие. Пришлось написать самому :

import xmlrpclib

def uniq(input):
  output = []
  for x in input:
    if x not in output:
      output.append(x)
  return output

def getCategories(blog_url, blog_user, blog_pwd):
    _server = xmlrpclib.ServerProxy(blog_url)
    cat = _server.wp.getCategories(1, blog_user, blog_pwd)
    categories = []
    for item in cat:
        categories.append(item['categoryName'].replace("&", "&"))
    return categories

def addCategories(blog_url, blog_user, blog_pwd, categories):
    _server = xmlrpclib.ServerProxy(blog_url)
    categories = uniq(categories)
    created_cat = getCategories(blog_url, blog_user, blog_pwd)
    for item in categories:
        itm = item.replace("&", "&")
        if (itm not in created_cat):
            post_name = itm
            post_slug = itm.replace(" ", "-")
            post_slug = post_slug.replace("&", "")
            post_parent_id = 0
            post_description = itm
            catStructure = {'name' : post_name,
                            'slug' : post_slug,
                            'parent_id' : post_parent_id,
                            'description' : post_description}
            category_id = _server.wp.newCategory(1, blog_user, blog_pwd, catStructure)

Подобный образом можно реализовать вызов практически любого документированного метода. btw разработчики вордпресса сильно отстают с документацией, поэтому проще посмореть исходный код файла xml-rpc.php в последней сборке вордпресса, чтобы быть в курсе. Я так понимаю, используя вордпрессовскую реализацию metaWeblog API (metaWeblog.newPost) можно добавлять еще и тэги к посту, но саму функцию вроде addTags я не нашел, к сожалению.

Вот так это выглядит на практике :

        wp_cat.addCategories(category)
        cats_id = []
        for item in category:
            if (wp.getCategoryIdFromName(item) <> None):
                cats_id.append(wp.getCategoryIdFromName(item))
        post.categories = tuple(uniq(cats_id))
        idPost = wp.newPost(post, True)

Где wp – это экземпляр класса wordpresslib, а category – это список категрий в виде списка – ['look', 'here']. Типа того, вообщем разобраться несложно.

Работа с Blogspot

Friday, September 4th, 2009

Да-да, теперь не лезет, в свое время многие постарались на славу, чтобы ушатать этот блогхост кодеками и прочими интересными вещами. Но тем не менее даже на данный момент блогспот можно использовать для привлечения траффика, хотя для этого теперь нужно приложить хоть какие-то усилия. Помимо этого хост можно использовать в качестве индексируемой базы данных (я например какое-то время сохранял результаты google hot trends), собрания каких-либо тематических ссылок. На самом деле вариантов масса, в результате будут получаться различные блоги, и если обновленеи будет поставленно на поток, то эти сайты в конечном итоге послужат фундаментом SEO-империи.

Помимо этого гугл любезно предоставляет API для работы с большей частью своих сервисов, все это дело регулярно апдейтится и документируется, скачать библиотеку для Python можно на официальной странице Google GData Python Client. В данном случае нас интересует работа с blogspot.com. Внутри архива Google GData есть подробная (и короткая) инструкция по установке пакетов (package) для Python.

По поводу использования, на активстэйт как обычно все уже сделали до нас, однако в этом примере мой питон выдает ошибку :
TypeError: CreatePost() takes exactly 6 arguments (5 given)
Это легко исправить, функция CreatePost() помимов всего прочего принимает список тэгов которые нужно добавить к посту. В примере не хватает как раз этого параметра, хз в чем прикол, возможно защита от дурака =) Я пофиксил баг (пример работы с blogspot через API), чтобы все запускалось без проблем, нужно только разобраться в коде и использовать уже готовые функции, единственная не поддающаяся автоматизации через API задача – регистрация аккаунтов, но гмыла можно купить, а регистрировать и оформлять блог или руками, или используя софт эмулирующий работу браузера вроде Human Emulator, хардкорные кодеры, конечно могут реализовать это через curl.

Работать через API конечно удобно, если собирать более-менее красивые блоги в небольшом количестве. В остальных случаях, крайне желательно использовать прокси и как вы понимаете этого (во всяком случае прямо) в API не предусмотрено, нужно или хитрить запуская код через различные проксификаторы или править код самой библиотеки.

Постинг в wordpress.

Tuesday, August 18th, 2009

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

import wordpresslib
url = 'http://www.mysite.com/wordpress/xmlrpc.php'
wp = wordpresslib.WordPressClient(url, 'username', 'password')
wp.selectBlog(0)
post = wordpresslib.WordPressPost()
post.title = 'Post title'
post.description = 'Post content'
idPost = wp.newPost(post, True)

Заявленные функции :

  • Создание новых постов
  • Редактирование старых
  • Публикация “черновиков” (т.е. ранее сохраненных но неопубликованных)
  • Удаление постов
  • Изменение категорий привязанных к посту
  • Информация по  блогу и пользователям
  • Загрузка мультимедиа файлов (фотографии & видео)
  • Получить последний пост/пинги/трекбэки

My blog is Do-Follow


Пишу код, делаю сайты.
Check out my about.me profile!

парсинг сайтов, форумов, интернет магазинов

Want to subscribe?

istinspring twitter account
istinspring facebook account

 Subscribe in a reader Or, subscribe via email:
Enter your email address:  
Find entries :