Skip to content

Commit

Permalink
Merge pull request #61 from jlmadurga/feature/messenger_integration
Browse files Browse the repository at this point in the history
Feature/messenger integration
  • Loading branch information
jlmadurga committed May 3, 2016
2 parents 8a15847 + ad05933 commit 30bbace
Show file tree
Hide file tree
Showing 42 changed files with 1,702 additions and 105 deletions.
2 changes: 1 addition & 1 deletion microbot/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
__version__ = '1.6.1'
__version__ = '1.6.2'
default_app_config = "microbot.apps.MicrobotAppConfig"
10 changes: 8 additions & 2 deletions microbot/admin.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from django.contrib import admin
from microbot.models import TelegramMessage, TelegramChat, TelegramUpdate, TelegramUser, TelegramBot, Handler, EnvironmentVar, Request, Response, Hook, \
UrlParam, HeaderParam, TelegramRecipient, State, TelegramChatState, Bot, KikMessage, KikUser, KikChat, KikChatState, KikBot
UrlParam, HeaderParam, TelegramRecipient, State, TelegramChatState, Bot, KikMessage, KikUser, KikChat, KikChatState, KikBot, KikRecipient, \
MessengerBot, MessengerMessage, MessengerRecipient, MessengerChatState

admin.site.register(TelegramMessage)
admin.site.register(TelegramChat)
Expand All @@ -9,9 +10,11 @@
admin.site.register(KikMessage)
admin.site.register(KikChat)
admin.site.register(KikUser)
admin.site.register(MessengerMessage)
admin.site.register(Bot)
admin.site.register(TelegramBot)
admin.site.register(KikBot)
admin.site.register(MessengerBot)
admin.site.register(Handler)
admin.site.register(Request)
admin.site.register(EnvironmentVar)
Expand All @@ -20,6 +23,9 @@
admin.site.register(UrlParam)
admin.site.register(HeaderParam)
admin.site.register(TelegramRecipient)
admin.site.register(KikRecipient)
admin.site.register(MessengerRecipient)
admin.site.register(State)
admin.site.register(TelegramChatState)
admin.site.register(KikChatState)
admin.site.register(KikChatState)
admin.site.register(MessengerChatState)
15 changes: 15 additions & 0 deletions microbot/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,19 @@ def connect_kik_bot_signals():
sender=sender,
dispatch_uid='kik_bot_delete_cache')

def connect_messenger_bot_signals():
from . import signals as handlers
sender = apps.get_model("microbot", "MessengerBot")
signals.pre_save.connect(handlers.set_bot_webhook,
sender=sender,
dispatch_uid='messenger_bot_set_webhook')
signals.post_save.connect(handlers.delete_cache,
sender=sender,
dispatch_uid='messenger_bot_delete_cache')
signals.post_delete.connect(handlers.delete_cache,
sender=sender,
dispatch_uid='messenger_bot_delete_cache')

def connect_telegram_api_signals():
from . import signals as handlers
chat = apps.get_model("microbot", "Chat")
Expand All @@ -73,6 +86,7 @@ def connect_kik_api_signals():
signals.post_delete.connect(handlers.delete_cache,
sender=user,
dispatch_uid='kik_user_delete_cache')


def connect_environment_vars_signals():
from . import signals as handlers
Expand All @@ -92,6 +106,7 @@ def ready(self):
connect_bot_signals()
connect_telegram_bot_signals()
connect_kik_bot_signals()
connect_messenger_bot_signals()
connect_telegram_api_signals()
connect_kik_api_signals()
connect_environment_vars_signals()
94 changes: 94 additions & 0 deletions microbot/migrations/0005_auto_20160428_0510.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2016-04-28 10:10
from __future__ import unicode_literals

from django.db import migrations, models
import django.db.models.deletion
import uuid


class Migration(migrations.Migration):

dependencies = [
('microbot', '0004_auto_20160427_0856'),
]

operations = [
migrations.CreateModel(
name='MessengerBot',
fields=[
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Date created')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='Date updated')),
('enabled', models.BooleanField(default=True, help_text='Enable/disable telegram bot', verbose_name='Enable')),
('token', models.CharField(db_index=True, max_length=512, verbose_name='Messenger Token')),
],
options={
'verbose_name': 'Messenger Bot',
'verbose_name_plural': 'Messenger Bots',
},
),
migrations.CreateModel(
name='MessengerChatState',
fields=[
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Date created')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='Date updated')),
('context', models.TextField(blank=True, help_text='Context serialized to json when this state was set', null=True, verbose_name='Context')),
('chat', models.CharField(db_index=True, max_length=255, verbose_name='Sender Id')),
('state', models.ForeignKey(help_text='State related to the chat', on_delete=django.db.models.deletion.CASCADE, related_name='messengerchatstate_chat', to='microbot.State', verbose_name='State')),
],
options={
'verbose_name': 'Messenger Chat State',
'verbose_name_plural': 'Messenger Chats States',
},
),
migrations.CreateModel(
name='MessengerMessage',
fields=[
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Date created')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='Date updated')),
('sender', models.CharField(max_length=255, verbose_name='Sender Id')),
('recipient', models.CharField(max_length=255, verbose_name='Recipient Id')),
('timestamp', models.DateTimeField(verbose_name='Timestamp')),
('type', models.CharField(choices=[(b'message', 'Message'), (b'postback', 'Postback'), (b'delivery', 'Delivery')], max_length=255)),
('postback', models.CharField(blank=True, max_length=255, null=True, verbose_name='PostBack')),
('text', models.TextField(blank=True, null=True, verbose_name='Text')),
('bot', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='messages', to='microbot.MessengerBot', verbose_name='Messenger Bot')),
],
options={
'ordering': ['-timestamp'],
'verbose_name': 'Messenger Message',
'verbose_name_plural': 'Messenger Messages',
},
),
migrations.CreateModel(
name='MessengerRecipient',
fields=[
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Date created')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='Date updated')),
('chat_id', models.CharField(db_index=True, help_text='Chat identifier provided by Messenger API', max_length=150, verbose_name='Chat Id')),
('name', models.CharField(db_index=True, help_text='Name of recipient', max_length=100, verbose_name='Name')),
('hook', models.ForeignKey(help_text='Hook which recipient is attached to', on_delete=django.db.models.deletion.CASCADE, related_name='messenger_recipients', to='microbot.Hook', verbose_name='Hook')),
],
options={
'verbose_name': 'Messenger Recipient',
'verbose_name_plural': 'Messenger Recipients',
},
),
migrations.AlterModelOptions(
name='kikchatstate',
options={'verbose_name': 'Kik Chat State', 'verbose_name_plural': 'Kik Chats States'},
),
migrations.AlterModelOptions(
name='telegramchatstate',
options={'verbose_name': 'Telegram Chat State', 'verbose_name_plural': 'Telegram Chats States'},
),
migrations.AddField(
model_name='bot',
name='messenger_bot',
field=models.OneToOneField(blank=True, help_text='Messenger Bot', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='bot', to='microbot.MessengerBot', verbose_name='Messenger Bot'),
),
]
7 changes: 4 additions & 3 deletions microbot/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
Message as TelegramMessage, # NOQA
Update as TelegramUpdate) # NOQA
from microbot.models.kik_api import (KikUser, KikChat, KikMessage) # NOQA
from microbot.models.state import State, TelegramChatState, KikChatState # NOQA
from microbot.models.bot import Bot, TelegramBot, KikBot # NOQA
from microbot.models.messenger_api import MessengerMessage # NOQA
from microbot.models.state import State, TelegramChatState, KikChatState, MessengerChatState # NOQA
from microbot.models.bot import Bot, TelegramBot, KikBot, MessengerBot # NOQA
from microbot.models.response import Response # NOQA
from microbot.models.handler import Handler, Request, UrlParam, HeaderParam # NOQA
from microbot.models.environment_vars import EnvironmentVar # NOQA
from microbot.models.hook import Hook, TelegramRecipient, KikRecipient # NOQA
from microbot.models.hook import Hook, TelegramRecipient, KikRecipient, MessengerRecipient # NOQA

0 comments on commit 30bbace

Please sign in to comment.