Pikabu

Неофициальная библиотека имитирующее неофициальное апи для pikabu.ru


License
Other
Install
pip install Pikabu==0.0.3

Documentation

pikabu

Неофициальный клиент на Python для pikabu.ru

pikabu - это источник интересных статей, фотографий и видео, добавляемых пользователями. Вы добавляете пост: фото, видео или историю. Данная библиотека была создана от безысходности из-за отсутствия официального Апи на сайте pikabu.ru. Автором библиотеки является Blackwave.

В ближайшее время планирую добавить публикацию поста/комментария, изменение рейтинга у постов/комментариев и настройки.

Установка

Из pip:

$ sudo pip install pikabu

Из исходников:

$ git clone https://github.com/Blackwave-rt/pikabu && cd pikabu
$ sudo python setup.py install

Готово!

Быстрый старт

Все до ужаса просто.

   import pikabu
   pika_api = pikabu.Api(login='ваш логин', password='ваш пароль')

Все дальнейшие операции будут происходить через pika_api.

Например, получим заоблачный рейтинг пользователя Admin:

   import pikabu
   pika_api = pikabu.Api(login='ваш логин', password='ваш пароль')
   pika_api.users.get("admin", "rating")

Документация по возможностям

api.posts.get( (string)category, (int)page )

Возвращает массив постов по выборке: горячее, популярные, свежее.

Аргументы: [hot|best|new], страница

Результат: А в результате возвращается массив с объектом "ObjectPosts", который обладает аргументами:

title    - вернет название поста
url      - вернет название ссылки
text     - вернет текст поста (в случае, если это изображение - вернет None)
image    - вернет изображение поста (в случае, если пост текстовый - вернет None)
time     - вернет дату создания (два часа назад, etc)
author   - вернет ник автора
comments - вернет количество комментариев
rating   - вернет рейтинг поста
tags     - вернет массив тегов поста

api.users.get( (string)login ) - вернет объект "ObjectUserInfo", который имеет аргументы:

Возвращает объект "ObjectUserInfo"

Параметры:

dor      - дата регистрации
rating   - рейтинг юзера
comments - количество комментариев
news     - возвращает массив вида [количество новостей, в горячем]
actions  - возвращает словарь вида {"like":count, "dislike":count}
avatar   - возвращает ссылку на аватарку юзера
awards   - возвращает список наград

api.comments.get( (int)post_id )

Возвращает комментарии к выбранному посту

api.comments.get(1234567) - вернет объект "ObjectComments"

Аргументы:

    id     - id комментария
    rating - рейтинг комментария
    author - логин автора
    time   - время добавления
    text   - текст комментария

api.top_tags.get()

Возвращает популярные за сутки теги. Вид: [название тега, количество]

api.posts.search( (string)query, (int)cur_page, (bool)in_hot, (bool)in_pics, (bool)in_text, (bool)in_video )

Возвращает результаты поиска в виде объекта ObjectPosts. Аргументы соответствуют api.posts.get

api.posts.tag( (string)tag_name, (int)page, (string)category )

Возвращает отфильтрованные по тегам посты в виде объекта ObjectPosts. Аргументы соответствуют api.posts.get

api.rate.set( (bool)action, (int)type, (int)post_id, (int or None)comment_id )

Позволяет ставить рейтинг постам и комментариям. Параметры: action - True/False +/-, соответственно. type - 1 - пост, 2 - комментарий post_id - ид поста comment_id - ид комментария. Не указывается при type=1

api.comments.add( (string)text, (int)post_id, (int)comment_id )

Позволяет добавлять комментарии к посту post_id или к комментарию comment_id (обязательно указывайте post_id)

api.register() - возвращает код капчи, которая указывается при вызове api.register.add( (string)login, (string)password, (string)email, (string) captcha_key )

В случае успеха api.register.add() вернет True. Иначе вернет список с описанием ошибки (логин/почта используется, неверная капча)

# -*- coding: utf-8 -*-
import pikabu
import base64

api = pikabu.Api(login="", password="")
g = open("captcha.jpg", "wb")
data = api.register()
captcha = data["image"]
g.write(base64.decodestring(captcha))
g.close()
captcha_ = raw_input("captcha:")
print api.register.add("логин", "пароль", "почта", captcha_)

Лицензия

Библиотека доступна на условиях лицензии Apache версии 2.0

http://www.apache.org/licenses/LICENSE-2.0