django-vkontakte-photos

Django implementation for vkontakte API photos


License
BSD-3-Clause
Install
pip install django-vkontakte-photos==0.4.5

Documentation

Django Vkontakte Photos

PyPI version Build Status Coverage Status

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ позволяСт Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Ρ„ΠΎΡ‚ΠΎΠ°Π»ΡŒΠ±ΠΎΠΌΠ°ΠΌΠΈ ΠΈ фотографиями Π’ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ стандартныС ΠΌΠΎΠ΄Π΅Π»ΠΈ Django Ρ‡Π΅Ρ€Π΅Π· Π’ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ API

Установка

pip install django-vkontakte-photos

Π’ settings.py Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ:

INSTALLED_APPS = (
    ...
    'oauth_tokens',
    'taggit',
    'vkontakte_api',
    'vkontakte_places,
    'vkontakte_groups',
    'vkontakte_users',
    'vkontakte_photos',
)

# oauth-tokens settings
OAUTH_TOKENS_HISTORY = True                                         # to keep in DB expired access tokens
OAUTH_TOKENS_VKONTAKTE_CLIENT_ID = ''                               # application ID
OAUTH_TOKENS_VKONTAKTE_CLIENT_SECRET = ''                           # application secret key
OAUTH_TOKENS_VKONTAKTE_SCOPE = ['ads,wall,photos,friends,stats']    # application scopes
OAUTH_TOKENS_VKONTAKTE_USERNAME = ''                                # user login
OAUTH_TOKENS_VKONTAKTE_PASSWORD = ''                                # user password
OAUTH_TOKENS_VKONTAKTE_PHONE_END = ''                               # last 4 digits of user mobile phone

ΠŸΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² API

  • photos.getAlbums – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список альбомов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ;
  • photos.get – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ Π² альбомС;
  • photos.getComments – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΊ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ;
  • photos.createComment – создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ;
  • photos.deleteComment – сдаляСт ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ;
  • photos.restoreComment – восстанавливаСт ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ;
  • photos.editComment – измСняСт тСкст коммСнтария ΠΊ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ;

Π’ ΠΏΠ»Π°Π½Π°Ρ…:

  • photos.getById – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ фотографиях;
  • photos.getAllComments – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ отсортированный Π² антихронологичСском порядкС список всСх ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Π°Π»ΡŒΠ±ΠΎΠΌΡƒ ΠΈΠ»ΠΈ ΠΊΠΎ всСм альбомам ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

ИспользованиС парсСра

  • ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ количСства ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΊ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ; *
  • ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ количСства Π»Π°ΠΉΠΊΠΎΠ² Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ; *

(*) Π”ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° API

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ‚ΠΎΠ°Π»ΡŒΠ±ΠΎΠΌΠΎΠ² Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ Π³Ρ€ΡƒΠΏΠΏΡ‹

Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ django-vkontakte-groups ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² INSTALLED_APPS

>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> group.fetch_albums()
[<Album: Coca-Cola ΠΏΡ€ΠΈΠ²ΠΎΠ·ΠΈΠ»Π° ΠΊΡƒΠ±ΠΎΠΊ ΠΌΠΈΡ€Π° ΠΏΠΎ Ρ„ΡƒΡ‚Π±ΠΎΠ»Ρƒ FIFA>,
 <Album: Бтарая Ρ€Π΅ΠΊΠ»Π°ΠΌΠ° Coca-Cola>,
 '...(remaining elements truncated)...']

Π€ΠΎΡ‚ΠΎΠ°Π»ΡŒΠ±ΠΎΠΌΡ‹ Π³Ρ€ΡƒΠΏΠΏΡ‹ доступны Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€

>>> group.photoalbums.count()
47

Π€ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ всСх альбомов Π³Ρ€ΡƒΠΏΠΏΡ‹ доступны Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€

>>> group.photos.count()
4432

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ‚ΠΎΠ°Π»ΡŒΠ±ΠΎΠΌΠΎΠ² Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€

>>> from vkontakte_groups.models import Group
>>> from vkontakte_photos.models import Album
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> Album.remote.fetch(group=group, ids=[106769855])
[<Album: Coca-Cola ΠΏΡ€ΠΈΠ²ΠΎΠ·ΠΈΠ»Π° ΠΊΡƒΠ±ΠΎΠΊ ΠΌΠΈΡ€Π° ΠΏΠΎ Ρ„ΡƒΡ‚Π±ΠΎΠ»Ρƒ FIFA>]

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ альбома ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€

Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ django-vkontakte-users ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² INSTALLED_APPS

>>> from vkontakte_users.models import User
>>> from vkontakte_photos.models import Album, Photo
>>> user = User.remote.fetch(ids=[1])[0]
>>> album = Album.remote.fetch(user=user, ids=[159337866])[0]
>>> Photo.remote.fetch(album=album)
[<Photo: Photo object>,
 <Photo: Photo object>,
 <Photo: Photo object>,
 <Photo: Photo object>]