django-pushall

Django app for Pushall notice system


Licenses
MIT/MIT-feh
Install
pip install django-pushall==1.0.2b1

Documentation

django-pushall

django-pushall - это приложение для поддержки системы Push-уведомлений PushAll для фреймворка Django. Подробное описание системы PushAll на официальном сайте

Поддерживает версии Django>=1.8, Python 2.7, 3.4, 3.5

Установка

Установка

pip install django-pushall

Добавить приложение в INSTALLED_APPS

INSTALLED_APPS = [
    ...
    'django_pushall',
    ... 
]    

Выполнить команду

python manage.py makemigrations django_pushall

python manage.py migrate django_pushall

для создания таблиц моделей

Если вы будете использовать Callback для определения подписавшихся пользователей, то необходимо добавить в urls.py

urlpatterns = [
    ...
    url(r'^pushall/', include('django_pushall.urls')),
    ...
]

Укажите настройки канала в settings.py

PUSHALL_CANAL_ID = 1234
PUSHALL_API_KEY = 'e789ed7bea3cbd86e951e4b268b45ed8'

PUSHALL_CANAL_ID - идентификатор канала. PUSHALL_API_KEY - ключ API канала на Pushall.ru Вы получите эти настройки при создании канала на сайте

Если вы планируете отправлять уведомления самому себе, то укажите в settings.py

PUSHALL_USER_ID = 01234
PUSHALL_USER_KEY = '3c2f2dc68c59b65ba9c789fd3a3fb4f6'

PUSHALL_USER_ID - идентификатор вашей учетной записи на сайте Pushall.ru. PUSHALL_USER_KEY - ключ API вашей учетной записи Получить эти настройки можно в личном кабинете на сайте Pushall.ru -> Администрирование -> API общее

Отправка уведомлений

Отправка самому себе

from django_pushall import Pushall

Pushall.self('Заголовок', 'Текст сообщения')  # простое уведомление
Pushall.self('Заголовок', 'Текст сообщения', url='http://site.ru')  # уведомление со ссылкой
Pushall.self('Заголовок', 'Текст сообщения', icon='http://site.ru/icon.png')  # уведомление со своей иконкой
Pushall.self('Заголовок', 'Текст сообщения', ttl=2160000)  # уведомление со временем жизни в секундах

Метод Pushall.self возвращает идентификатор уведомления

Отправка всех пользователям канала

from django_pushall import Pushall

Pushall.broadcast('Заголовок', 'Текст сообщения')

Возвращает идентификатор уведомления.

Отправка подписчику канала

from django_pushall import Pushall

Pushall.unicast(12345, 'Заголовок', 'Текст сообщения') #отправка уведомления подписчику с идентификатором 12345

Возвращает идентификатор уведомления

Отправка нескольким подписчикам канала

from django_pushall import Pushall

Pushall.milticast([12345, 12346, 12347], 'Заголовок', 'Текст сообщения') #отправка уведомления подписчикам с идентификаторами 12345, 12346, 12347

Возвращает идентификатор уведомления

Дополнительные параметры отправки уведомлений

Указание ссылки для переходе по клику на уведомление

Pushall.broadcast('Заголовок', 'Текст сообщения', url='http://site.ru')

Указание своей иконки уведомления

Pushall.broadcast('Заголовок', 'Текст сообщения', icon='http://site.ru/icon.png')

Время жизни уведомления в секундах

Pushall.broadcast('Заголовок', 'Текст сообщения', ttl=2160000)

Скрытие уведомлений из истории канала

Pushall.broadcast('Заголовок', 'Текст сообщения', hidden=PushallAPI.HIDDEN_ALL) #скрыть уведомление из истории пользователей после отправки
Pushall.broadcast('Заголовок', 'Текст сообщения', hidden=PushallAPI.HIDDEN_FEED) #скрыть уведомление из истории канала

Приоритет уведомления

Pushall.broadcast('Заголовок', 'Текст сообщения', priority=PushallAPI.PRIORITY_DEFAULT) #приоритет по-умолчанию
Pushall.broadcast('Заголовок', 'Текст сообщения', priority=PushallAPI.PRIORITY_LOW) #низкий приоритет. Не будит мобильные устройства
Pushall.broadcast('Заголовок', 'Текст сообщения', priority=PushallAPI.PRIORITY_HIGH) #высокий приоритет. Будит мобильные устройства

Включение и отключение пользовательской фильтрации уведомлений

Pushall.broadcast('Заголовок', 'Текст сообщения', filter=PushallAPI.FILTER_DISABLE) #принудительно отключить фильтрацию
Pushall.unicast(12345, 'Заголовок', 'Текст сообщения', filter=PushallAPI.FILTER_ENABLE) #принудительно включить фильтрацию

Просмотр состояния ленты канала

from django_pushall import Pushall

print(Pushall.show_list()) #вывод на экран состояния ленты канала
print(Pushall.show_list(lid=1000)) #вывод на экран состояния уведомления c идентификатором 1000

Просмотр списка подписчиков канала

from django_pushall import Pushall

print(Pushall.show_users()) #вывод на экран списка подписчиков
print(Pushall.show_users(uid=12345)) #вывод на экран информации о подписчике с идентификатором 12345

Сбор подписчиков

Чтобы приложение знало какие пользователи подписались на ваш канал необходимо использовать Callback подписки. Для этого необходимо добавить в urls.py

urlpatterns = [
    ...
    url(r'^pushall/', include('django_pushall.urls')),
    ...
]

и указать в настройках канала на сайте Pushall.ru Callback-адрес для получения ID

http://ваш-url/pushall/callback

После подписки пользователь будет переходить по этому адресу. Приложение получит его UID в системе и далее перенаправит на главную страницу вашего сайта Изменить адрес редиректа можно в setting.py

PUSHALL_CALLBACK_REDIRECT = 'адрес редиректа'

Все подписчики привязываются к пользователям сайта. Получить список подписчиков можно так

from django_pushall.models import PushUser

subscribers = PushUser.objects.all()

Отправить уведомление подписчику

from django_pushall.models import PushUser

subscriber = PushUser.objects.get(uid=12345)
subscriber.notice('Заголовок', 'Текст')

Можно использовать параметры дополнительные параметры уведомлений

Отправить уведомление пользователю сайта

from django.contrib.auth.models import User
from django_pushall.models import PushUser

user = User.objects.get(id=1)
PushUser.notice_to_user(user, 'Заголовок', 'Текст')

Можно использовать параметры дополнительные параметры уведомлений