From 345c9bbddb4e05fbf18a309963f90f15179c8f1f Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Sat, 9 Sep 2017 16:05:15 +0700 Subject: [PATCH 01/53] initial system initial all base system --- Procfile | 1 + app.py | 50 +++++++++++++++++++++++ requirements.txt | 28 +++++++++++++ src/Template/MessageTemplateFactory.py | 12 ++++++ src/Template/TextTemplate.py | 12 ++++++ src/Template/__init__.py | 0 src/__init__.py | 0 src/command/__init__.py | 0 src/command/command.py | 18 +++++++++ src/command/command_registry.py | 56 ++++++++++++++++++++++++++ src/command_bus.py | 26 ++++++++++++ src/handler.py | 20 +++++++++ src/middleware/__init__.py | 0 src/middleware/you_said_middleware.py | 13 ++++++ src/receiver.py | 11 +++++ 15 files changed, 247 insertions(+) create mode 100644 Procfile create mode 100644 app.py create mode 100644 requirements.txt create mode 100644 src/Template/MessageTemplateFactory.py create mode 100644 src/Template/TextTemplate.py create mode 100644 src/Template/__init__.py create mode 100644 src/__init__.py create mode 100644 src/command/__init__.py create mode 100644 src/command/command.py create mode 100644 src/command/command_registry.py create mode 100644 src/command_bus.py create mode 100644 src/handler.py create mode 100644 src/middleware/__init__.py create mode 100644 src/middleware/you_said_middleware.py create mode 100644 src/receiver.py diff --git a/Procfile b/Procfile new file mode 100644 index 0000000..8001d1a --- /dev/null +++ b/Procfile @@ -0,0 +1 @@ +web: gunicorn app:app \ No newline at end of file diff --git a/app.py b/app.py new file mode 100644 index 0000000..df68c53 --- /dev/null +++ b/app.py @@ -0,0 +1,50 @@ +from flask import Flask, request, abort + +from linebot import ( + LineBotApi, WebhookHandler +) +from linebot.exceptions import ( + InvalidSignatureError +) +from linebot.models import ( + MessageEvent, TextMessage, TextSendMessage, +) +from src.receiver import Receiver +app = Flask(__name__) + +line_bot_api = LineBotApi( + 'xJBvxhncO6zH7t/Hsynzv9Dq6ODqrc+lMZb3ZzcObJV6fPSttweWZ6qAvNWrQ0aJ6GPaUP5JOBHcbRctlLKDd6NRo65Dp81luK57sQ33sB2gVaKlAQ8I6rGMs0/uLuztQIku+cF70s5ZomBKClrR/gdB04t89/1O/w1cDnyilFU=') +handler = WebhookHandler('9533878dc5a95ba1077d0e3555013b25') + + +@app.route('/') +def index(): + line_bot_api.push_message( + 'U931873f839d5c043513c54fceebddb58', TextSendMessage(text='Hello World!')) + return "

Hello I'm fine!

" + + +@app.route("/callback", methods=['POST']) +def callback(): + # get X-Line-Signature header value + signature = request.headers['X-Line-Signature'] + + # get request body as text + body = request.get_data(as_text=True) + app.logger.info("Request body: " + body) + # handle webhook body + try: + handler.handle(body, signature) + except InvalidSignatureError: + abort(400) + return 'OK' + + +@handler.add(MessageEvent, message=TextMessage) +def handle_message(event): + print ('receiver here!') + receiver = Receiver(event) + + +if __name__ == "__main__": + app.run() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..2c058ef --- /dev/null +++ b/requirements.txt @@ -0,0 +1,28 @@ +auth==0.5.3 +blinker==1.4 +click==6.7 +Django==1.10.6 +enum-compat==0.0.2 +enum34==1.1.6 +eventlet==0.20.1 +falcon==1.1.0 +Flask==0.12 +future==0.16.0 +greenlet==0.4.12 +gunicorn==19.7.0 +helper==2.4.2 +imgurpython==1.1.7 +itsdangerous==0.24 +Jinja2==2.9.5 +line-bot-sdk==1.3.0 +MarkupSafe==1.0 +mongoengine==0.11.0 +psycopg2==2.7.1 +pymongo==3.4.0 +python-firebase==1.2 +python-mimeparse==1.6.0 +PyYAML==3.12 +requests==2.13.0 +six==1.10.0 +virtualenv==15.1.0 +Werkzeug==0.12.1 diff --git a/src/Template/MessageTemplateFactory.py b/src/Template/MessageTemplateFactory.py new file mode 100644 index 0000000..4ebcc66 --- /dev/null +++ b/src/Template/MessageTemplateFactory.py @@ -0,0 +1,12 @@ +from .TextTemplate import TextTemplate + + +class MessageTemplateFactory(): + + def __init__(self, command): + self.command = command + if(self.command.get_template() == 'TextTemplate'): + self.template = TextTemplate(self.command).get() + + def get(self): + return self.template diff --git a/src/Template/TextTemplate.py b/src/Template/TextTemplate.py new file mode 100644 index 0000000..96a46fb --- /dev/null +++ b/src/Template/TextTemplate.py @@ -0,0 +1,12 @@ +from linebot.models import ( + TextSendMessage, +) + + +class TextTemplate(): + + def __init__(self, command): + self.text = command.event.message.text + + def get(self): + return TextSendMessage(self.text) diff --git a/src/Template/__init__.py b/src/Template/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/command/__init__.py b/src/command/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/command/command.py b/src/command/command.py new file mode 100644 index 0000000..7516fc8 --- /dev/null +++ b/src/command/command.py @@ -0,0 +1,18 @@ +class Command(): + + def __init__(self, event, command, template): + self.event = event + self.command = command + self.template = template + + def set_command(selt, command): + self.command = command + + def get_command(self): + return self.command + + def set_template(self, template): + self.template = template + + def get_template(self): + return self.template diff --git a/src/command/command_registry.py b/src/command/command_registry.py new file mode 100644 index 0000000..072e5b3 --- /dev/null +++ b/src/command/command_registry.py @@ -0,0 +1,56 @@ +from linebot.models import ( + TextMessage, StickerMessage, LocationMessage, ImageMessage, VideoMessage, AudioMessage +) +from .command import Command + + +class CommandRegistry(): + + def __init__(self, event): + self.event = event + self.command = None + self.check() + + def get_command(self): + return self.command + + def check(self): + if isinstance(self.event.message, TextMessage): + self.set_text_message_command() + elif isinstance(self.event.message, StickerMessage): + pass + elif isinstance(self.event.message, LocationMessage): + pass + elif isinstance(self.event.message, ImageMessage): + pass + elif isinstance(self.event.message, VideoMessage): + pass + elif isinstance(self.event.message, AudioMessage): + pass + else: + self.set_default_message_command() + + def set_text_message_command(self): + text = self.event.message.text + if text == 'hello': + self.command = Command(self.event, 'command1', 'TextTemplate') + elif text == 'goodbye': + self.command = Command(self.event, 'command2', 'TextTemplate') + + def set_sticker_message_command(self): + pass + + def set_location_message_command(self): + pass + + def set_image_message_command(self): + pass + + def set_video_message_command(self): + pass + + def set_audio_message_command(self): + pass + + def set_default_message_command(self): + self.command.set('default') diff --git a/src/command_bus.py b/src/command_bus.py new file mode 100644 index 0000000..b001670 --- /dev/null +++ b/src/command_bus.py @@ -0,0 +1,26 @@ +from .middleware.you_said_middleware import YouSaidMiddleware +from .handler import Handler + + +class CommandBus(): + + def __init__(self, command): + self.command = command + self.middleware = list() + self.initial() + self.run() + + def initial(self): + self.add(YouSaidMiddleware(self.command)) + + def add(self, middleware): + self.middleware.append(middleware) + + def get(self, index): + return self.middleware[index] + + def run(self): + for middleware in self.middleware: + if(not middleware.next()): + break + handler = Handler(self.command) diff --git a/src/handler.py b/src/handler.py new file mode 100644 index 0000000..5d71192 --- /dev/null +++ b/src/handler.py @@ -0,0 +1,20 @@ +from linebot import ( + LineBotApi, WebhookHandler +) + +from .Template.MessageTemplateFactory import MessageTemplateFactory + + +class Handler(): + + def __init__(self, command): + self.command = command + self.template = MessageTemplateFactory(command).get() + self.sendMessage() + + def sendMessage(self): + line_bot_api = LineBotApi( + 'xJBvxhncO6zH7t/Hsynzv9Dq6ODqrc+lMZb3ZzcObJV6fPSttweWZ6qAvNWrQ0aJ6GPaUP5JOBHcbRctlLKDd6NRo65Dp81luK57sQ33sB2gVaKlAQ8I6rGMs0/uLuztQIku+cF70s5ZomBKClrR/gdB04t89/1O/w1cDnyilFU=') + if(self.command.get_template() == 'TextTemplate'): + line_bot_api.reply_message( + self.command.event.reply_token, self.template) diff --git a/src/middleware/__init__.py b/src/middleware/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/middleware/you_said_middleware.py b/src/middleware/you_said_middleware.py new file mode 100644 index 0000000..c966f39 --- /dev/null +++ b/src/middleware/you_said_middleware.py @@ -0,0 +1,13 @@ +class YouSaidMiddleware(): + + def __init__(self, command): + self.command = command + + def next(self): + self.execute() + return True + + def execute(self): + if(self.command.get_command() == 'command1'): + self.command.event.message.text = 'You said : ' + self.command.event.message.text + print (self.command.event.message.text) diff --git a/src/receiver.py b/src/receiver.py new file mode 100644 index 0000000..df0b900 --- /dev/null +++ b/src/receiver.py @@ -0,0 +1,11 @@ +from .command.command_registry import CommandRegistry +from .command_bus import CommandBus + + +class Receiver(): + + def __init__(self, event): + self.event = event + command_registry = CommandRegistry(self.event) + command = command_registry.get_command() + command_bus = CommandBus(command) From 5936af8317c3ca93012a2d031b8991b276d257fe Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Sat, 9 Sep 2017 16:20:59 +0700 Subject: [PATCH 02/53] delete ACCESS_TOKEN and SECRET --- app.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app.py b/app.py index df68c53..eeb050e 100644 --- a/app.py +++ b/app.py @@ -12,9 +12,8 @@ from src.receiver import Receiver app = Flask(__name__) -line_bot_api = LineBotApi( - 'xJBvxhncO6zH7t/Hsynzv9Dq6ODqrc+lMZb3ZzcObJV6fPSttweWZ6qAvNWrQ0aJ6GPaUP5JOBHcbRctlLKDd6NRo65Dp81luK57sQ33sB2gVaKlAQ8I6rGMs0/uLuztQIku+cF70s5ZomBKClrR/gdB04t89/1O/w1cDnyilFU=') -handler = WebhookHandler('9533878dc5a95ba1077d0e3555013b25') +line_bot_api = LineBotApi('YOUR_CHANNEL_ACCESS_TOKEN') +handler = WebhookHandler('YOUR_CHANNEL_SECRET') @app.route('/') @@ -42,7 +41,7 @@ def callback(): @handler.add(MessageEvent, message=TextMessage) def handle_message(event): - print ('receiver here!') + print('receiver here!') receiver = Receiver(event) From 64831ab2883d14a34fee34e99eaa3e16357fa7f0 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Sat, 9 Sep 2017 16:24:54 +0700 Subject: [PATCH 03/53] fix read me --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ef1a0f6..1f1d7a6 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ # core-python LineMob Core in Python +Using Flask and Deploy on Heroku \ No newline at end of file From 769ac647da099bb290550623c00d8c2c768e0e86 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Sat, 9 Sep 2017 16:26:09 +0700 Subject: [PATCH 04/53] delete requirements file --- requirements.txt | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 2c058ef..0000000 --- a/requirements.txt +++ /dev/null @@ -1,28 +0,0 @@ -auth==0.5.3 -blinker==1.4 -click==6.7 -Django==1.10.6 -enum-compat==0.0.2 -enum34==1.1.6 -eventlet==0.20.1 -falcon==1.1.0 -Flask==0.12 -future==0.16.0 -greenlet==0.4.12 -gunicorn==19.7.0 -helper==2.4.2 -imgurpython==1.1.7 -itsdangerous==0.24 -Jinja2==2.9.5 -line-bot-sdk==1.3.0 -MarkupSafe==1.0 -mongoengine==0.11.0 -psycopg2==2.7.1 -pymongo==3.4.0 -python-firebase==1.2 -python-mimeparse==1.6.0 -PyYAML==3.12 -requests==2.13.0 -six==1.10.0 -virtualenv==15.1.0 -Werkzeug==0.12.1 From e05a6a9e5bbcf259461a4c0a24a7b1ce84213902 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Sat, 9 Sep 2017 16:28:55 +0700 Subject: [PATCH 05/53] fix read me2 --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1f1d7a6..8b74b02 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ # core-python LineMob Core in Python -Using Flask and Deploy on Heroku \ No newline at end of file +Using Flask and Deploy on Heroku + +run "pip freeze > requirments.txt" before deploy \ No newline at end of file From e3571be100a305b7a6849c41da8a39f7f65a1abf Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 18:03:44 +0700 Subject: [PATCH 06/53] core-python V2 MiddleWare - button_template_middleware - carousel_template_middleware - confirm_template_middleware - default_message_middleware - image_carousel_template_middleware - image_message_middleware - imagemap_send_message_middleware - location_message_middleware - sticker_message_middleware Structure - use dependency injection for middleware --- app.py | 6 +- requirements.txt | 28 +++++++++ src/Template/ImageMessage.py | 13 ++++ src/Template/LocationMessage.py | 15 +++++ src/Template/MessageTemplateFactory.py | 17 ++++- src/Template/StickerMessage.py | 13 ++++ src/Template/TemplateMessage.py | 13 ++++ src/Template/TextTemplate.py | 2 +- src/command/command.py | 7 +++ src/command/command_registry.py | 27 ++++++-- src/command_bus.py | 24 ++++++- src/handler.py | 7 +-- src/middleware/button_template_middleware.py | 34 ++++++++++ .../carousel_template_middleware.py | 62 +++++++++++++++++++ src/middleware/confirm_template_middleware.py | 31 ++++++++++ src/middleware/default_message_middleware.py | 12 ++++ src/middleware/hello_middleware.py | 11 ++++ .../image_carousel_template_middleware.py | 37 +++++++++++ src/middleware/image_message_middleware.py | 12 ++++ .../imagemap_send_message_middleware.py | 33 ++++++++++ src/middleware/location_message_middleware.py | 14 +++++ src/middleware/sticker_message_middleware.py | 12 ++++ src/middleware/you_said_middleware.py | 13 ---- test.py | 61 ++++++++++++++++++ 24 files changed, 475 insertions(+), 29 deletions(-) create mode 100644 requirements.txt create mode 100644 src/Template/ImageMessage.py create mode 100644 src/Template/LocationMessage.py create mode 100644 src/Template/StickerMessage.py create mode 100644 src/Template/TemplateMessage.py create mode 100644 src/middleware/button_template_middleware.py create mode 100644 src/middleware/carousel_template_middleware.py create mode 100644 src/middleware/confirm_template_middleware.py create mode 100644 src/middleware/default_message_middleware.py create mode 100644 src/middleware/hello_middleware.py create mode 100644 src/middleware/image_carousel_template_middleware.py create mode 100644 src/middleware/image_message_middleware.py create mode 100644 src/middleware/imagemap_send_message_middleware.py create mode 100644 src/middleware/location_message_middleware.py create mode 100644 src/middleware/sticker_message_middleware.py delete mode 100644 src/middleware/you_said_middleware.py create mode 100644 test.py diff --git a/app.py b/app.py index eeb050e..565baaf 100644 --- a/app.py +++ b/app.py @@ -12,14 +12,12 @@ from src.receiver import Receiver app = Flask(__name__) -line_bot_api = LineBotApi('YOUR_CHANNEL_ACCESS_TOKEN') -handler = WebhookHandler('YOUR_CHANNEL_SECRET') + +handler = WebhookHandler('cc19d3de5e1f7201cdbff7f0e8dfbf3e') @app.route('/') def index(): - line_bot_api.push_message( - 'U931873f839d5c043513c54fceebddb58', TextSendMessage(text='Hello World!')) return "

Hello I'm fine!

" diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..2c058ef --- /dev/null +++ b/requirements.txt @@ -0,0 +1,28 @@ +auth==0.5.3 +blinker==1.4 +click==6.7 +Django==1.10.6 +enum-compat==0.0.2 +enum34==1.1.6 +eventlet==0.20.1 +falcon==1.1.0 +Flask==0.12 +future==0.16.0 +greenlet==0.4.12 +gunicorn==19.7.0 +helper==2.4.2 +imgurpython==1.1.7 +itsdangerous==0.24 +Jinja2==2.9.5 +line-bot-sdk==1.3.0 +MarkupSafe==1.0 +mongoengine==0.11.0 +psycopg2==2.7.1 +pymongo==3.4.0 +python-firebase==1.2 +python-mimeparse==1.6.0 +PyYAML==3.12 +requests==2.13.0 +six==1.10.0 +virtualenv==15.1.0 +Werkzeug==0.12.1 diff --git a/src/Template/ImageMessage.py b/src/Template/ImageMessage.py new file mode 100644 index 0000000..7175461 --- /dev/null +++ b/src/Template/ImageMessage.py @@ -0,0 +1,13 @@ +from linebot.models import ( + ImageSendMessage, +) + + +class ImageMessage(): + + def __init__(self, command): + self.original_content_url = command.get_message()['original_content_url'] + self.preview_image_url = command.get_message()['preview_image_url'] + + def get(self): + return ImageSendMessage(self.original_content_url,self.preview_image_url) diff --git a/src/Template/LocationMessage.py b/src/Template/LocationMessage.py new file mode 100644 index 0000000..bcf5ffc --- /dev/null +++ b/src/Template/LocationMessage.py @@ -0,0 +1,15 @@ +from linebot.models import ( + LocationSendMessage, +) + + +class LocationMessage(): + + def __init__(self, command): + self.title = command.get_message()['title'] + self.address = command.get_message()['address'] + self.latitude = command.get_message()['latitude'] + self.longtitude = command.get_message()['longtitude'] + + def get(self): + return LocationSendMessage(self.title, self.address, self.latitude, self.longtitude) diff --git a/src/Template/MessageTemplateFactory.py b/src/Template/MessageTemplateFactory.py index 4ebcc66..4e45411 100644 --- a/src/Template/MessageTemplateFactory.py +++ b/src/Template/MessageTemplateFactory.py @@ -1,12 +1,27 @@ from .TextTemplate import TextTemplate +from .ImageMessage import ImageMessage +from .LocationMessage import LocationMessage +from .StickerMessage import StickerMessage +from .TemplateMessage import TemplateMessage class MessageTemplateFactory(): def __init__(self, command): self.command = command - if(self.command.get_template() == 'TextTemplate'): + if self.command.get_template() == 'TextTemplate': self.template = TextTemplate(self.command).get() + elif self.command.get_template() == 'ImageMessage': + self.template = ImageMessage(self.command).get() + elif self.command.get_template() == 'LocationMessage': + self.template = LocationMessage(self.command).get() + elif self.command.get_template() == 'StickerMessage': + self.template = StickerMessage(self.command).get() + elif self.command.get_template() == 'TemplateMessage': + self.template = TemplateMessage(self.command).get() + else: + self.command = Command( + self.event, 'commandDefault', 'TextTemplate') def get(self): return self.template diff --git a/src/Template/StickerMessage.py b/src/Template/StickerMessage.py new file mode 100644 index 0000000..e056b19 --- /dev/null +++ b/src/Template/StickerMessage.py @@ -0,0 +1,13 @@ +from linebot.models import ( + StickerSendMessage, +) + + +class StickerMessage(): + + def __init__(self, command): + self.package_id = command.get_message()['package_id'] + self.sticker_id = command.get_message()['sticker_id'] + + def get(self): + return StickerSendMessage(self.package_id, self.sticker_id) diff --git a/src/Template/TemplateMessage.py b/src/Template/TemplateMessage.py new file mode 100644 index 0000000..a7a5f4b --- /dev/null +++ b/src/Template/TemplateMessage.py @@ -0,0 +1,13 @@ +from linebot.models import ( + TemplateSendMessage, +) + + +class TemplateMessage(): + + def __init__(self, command): + self.alt_text = command.get_message()['alt_text'] + self.template = command.get_message()['template'] + + def get(self): + return TemplateSendMessage(self.alt_text, self.template) diff --git a/src/Template/TextTemplate.py b/src/Template/TextTemplate.py index 96a46fb..f622e32 100644 --- a/src/Template/TextTemplate.py +++ b/src/Template/TextTemplate.py @@ -6,7 +6,7 @@ class TextTemplate(): def __init__(self, command): - self.text = command.event.message.text + self.text = command.get_message() def get(self): return TextSendMessage(self.text) diff --git a/src/command/command.py b/src/command/command.py index 7516fc8..eb56783 100644 --- a/src/command/command.py +++ b/src/command/command.py @@ -4,6 +4,7 @@ def __init__(self, event, command, template): self.event = event self.command = command self.template = template + self.message = None def set_command(selt, command): self.command = command @@ -16,3 +17,9 @@ def set_template(self, template): def get_template(self): return self.template + + def set_message(self, message): + self.message = message + + def get_message(self): + return self.message diff --git a/src/command/command_registry.py b/src/command/command_registry.py index 072e5b3..8416f4b 100644 --- a/src/command/command_registry.py +++ b/src/command/command_registry.py @@ -32,10 +32,29 @@ def check(self): def set_text_message_command(self): text = self.event.message.text - if text == 'hello': - self.command = Command(self.event, 'command1', 'TextTemplate') - elif text == 'goodbye': - self.command = Command(self.event, 'command2', 'TextTemplate') + if text == '1': + self.command = Command(self.event, 'command1', 'TextMessage') + elif text == '2': + self.command = Command(self.event, 'command2', 'ImageMessage') + elif text == '3': + self.command = Command(self.event, 'command3', 'LocationMessage') + elif text == '4': + self.command = Command(self.event, 'command4', 'StickerMessage') + elif text == '5': + self.command = Command(self.event, 'command5', 'TemplateMessage') + elif text == '6': + self.command = Command(self.event, 'command6', 'TemplateMessage') + elif text == '7': + self.command = Command(self.event, 'command7', 'TemplateMessage') + elif text == '8': + self.command = Command( + self.event, 'command8', 'TemplateMessage') + elif text == '9': + self.command = Command( + self.event, 'command9', 'TemplateMessage') + else: + self.command = Command( + self.event, 'commandDefault', 'TextTemplate') def set_sticker_message_command(self): pass diff --git a/src/command_bus.py b/src/command_bus.py index b001670..5d8498c 100644 --- a/src/command_bus.py +++ b/src/command_bus.py @@ -1,4 +1,13 @@ -from .middleware.you_said_middleware import YouSaidMiddleware +from .middleware.hello_middleware import HelloMiddleware +from .middleware.button_template_middleware import ButtonTemplateMiddleware +from .middleware.carousel_template_middleware import CarouselTemplateMiddleware +from .middleware.confirm_template_middleware import ConfirmTemplateMiddleware +from .middleware.default_message_middleware import DefaultMessageMiddleware +from .middleware.image_carousel_template_middleware.py import ImageCarouselTemplateMiddleware +from .middleware.image_message_middleware import ImageMiddleware +from .middleware.imagemap_send_message_middleware import ImagemapSendMessageMiddleware +from .middleware.location_message_middleware import LocationMessageMiddleware +from .middleware.sticker_message_middleware import StickerMessageMiddleware from .handler import Handler @@ -11,7 +20,17 @@ def __init__(self, command): self.run() def initial(self): - self.add(YouSaidMiddleware(self.command)) + self.add(HelloMiddleware()) + self.add(ButtonTemplateMiddleware()) + self.add(CarouselTemplateMiddleware()) + self.add(ConfirmTemplateMiddleware()) + self.add(DefaultMessageMiddleware()) + self.add(ImageCarouselTemplateMiddleware()) + self.add(ImageMiddleware()) + self.add(LocationMessageMiddleware()) + self.add(StickerMessageMiddleware()) + self.add(ImagemapSendMessageMiddleware()) + def add(self, middleware): self.middleware.append(middleware) @@ -21,6 +40,7 @@ def get(self, index): def run(self): for middleware in self.middleware: + middleware.execute(self.command) if(not middleware.next()): break handler = Handler(self.command) diff --git a/src/handler.py b/src/handler.py index 5d71192..e3a3a79 100644 --- a/src/handler.py +++ b/src/handler.py @@ -14,7 +14,6 @@ def __init__(self, command): def sendMessage(self): line_bot_api = LineBotApi( - 'xJBvxhncO6zH7t/Hsynzv9Dq6ODqrc+lMZb3ZzcObJV6fPSttweWZ6qAvNWrQ0aJ6GPaUP5JOBHcbRctlLKDd6NRo65Dp81luK57sQ33sB2gVaKlAQ8I6rGMs0/uLuztQIku+cF70s5ZomBKClrR/gdB04t89/1O/w1cDnyilFU=') - if(self.command.get_template() == 'TextTemplate'): - line_bot_api.reply_message( - self.command.event.reply_token, self.template) + 'hMMdUsmj1Mq7JmTo3x0gCh/L6WilPgxU5UfCEh24aHQNad8NOAMu8+4XdaKgFMzcG4nO+CSf/vVHMJ+4MvtBLV+akhxxXChn3X5tD0dPE+M/ixVqml7WFi2baNlzz7izNNXmL4LlnL56eZs1Dh4m9QdB04t89/1O/w1cDnyilFU=') + line_bot_api.reply_message( + self.command.event.reply_token, self.template) diff --git a/src/middleware/button_template_middleware.py b/src/middleware/button_template_middleware.py new file mode 100644 index 0000000..9a3f518 --- /dev/null +++ b/src/middleware/button_template_middleware.py @@ -0,0 +1,34 @@ +from linebot.models import ( + ButtonsTemplate, PostbackTemplateAction, MessageTemplateAction, URITemplateAction +) + + +class ButtonTemplateMiddleware(): + + def __init__(self): + self.next = True + + def next(self): + return self.next + + def execute(self, command): + if(command.get_command() == 'command6'): + command.set_message({'thumbnail_image_url': 'https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', + 'title': 'Menu', + 'text': 'Please Select', + 'actions': [ + PostbackTemplateAction( + label='postback', + text='postback text', + data='action=buy&itemid=1' + ), + MessageTemplateAction( + label='message', + text='message text' + ), + URITemplateAction( + label='uri', + uri='http://www.google.com/' + ) + ] + }) diff --git a/src/middleware/carousel_template_middleware.py b/src/middleware/carousel_template_middleware.py new file mode 100644 index 0000000..05a13ec --- /dev/null +++ b/src/middleware/carousel_template_middleware.py @@ -0,0 +1,62 @@ +from linebot.models import ( + CarouselTemplate, CarouselColumn, ConfirmTemplate +) + + +class CarouselTemplateMiddleware(): + + def __init__(self): + self.next = True + + def next(self): + return self.next + + def execute(self, command): + if(command.get_command() == 'command7'): + command.set_message({'alt_text': 'Carousel template', + 'template': CarouselTemplate( + columns=[ + CarouselColumn( + thumbnail_image_url='https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', + title='this is menu1', + text='description1', + actions=[ + PostbackTemplateAction( + label='postback1', + text='postback text1', + data='action=buy&itemid=1' + ), + MessageTemplateAction( + label='message1', + text='message text1' + ), + URITemplateAction( + label='uri1', + uri='https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg' + ) + ] + ), + CarouselColumn( + thumbnail_image_url='https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', + title='this is menu2', + text='description2', + actions=[ + PostbackTemplateAction( + label='postback2', + text='postback text2', + data='action=buy&itemid=2' + ), + MessageTemplateAction( + label='message2', + text='message text2' + ), + URITemplateAction( + label='uri2', + uri='https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg' + ) + ] + ) + ] + ) + + }) diff --git a/src/middleware/confirm_template_middleware.py b/src/middleware/confirm_template_middleware.py new file mode 100644 index 0000000..f8f0d28 --- /dev/null +++ b/src/middleware/confirm_template_middleware.py @@ -0,0 +1,31 @@ +from linebot.models import ( + PostbackTemplateAction, MessageTemplateAction, ConfirmTemplate +) + + +class ConfirmTemplateMiddleware(): + + def __init__(self): + self.next = True + + def next(self): + return self.next + + def execute(self, command): + if(command.get_command() == 'command5'): + command.set_message({'alt_text': 'Confirm template', + 'template': ConfirmTemplate( + text='Are you sure?', + actions=[ + PostbackTemplateAction( + label='postback', + text='postback text', + data='action=buy&itemid=1' + ), + MessageTemplateAction( + label='message', + text='message text' + ) + ] + ) + }) diff --git a/src/middleware/default_message_middleware.py b/src/middleware/default_message_middleware.py new file mode 100644 index 0000000..d414593 --- /dev/null +++ b/src/middleware/default_message_middleware.py @@ -0,0 +1,12 @@ +class DefaultMessageMiddleware(): + + def __init__(self): + self.next = True + + def next(self): + return self.next + + def execute(self, command): + if(command.get_command() == 'commandDefault'): + message = "Press Number for order\n1.TextMessage\n2.ImageMessage\n3.LocationMessage\n4.StickerMessage\n5.ConfirmTemplate\n6.ButtonTemplate\n7.CarouselTemplate\n8.ImageCarouselTemplate\n9.ImagemapSendMessage" + command.set_message(message) diff --git a/src/middleware/hello_middleware.py b/src/middleware/hello_middleware.py new file mode 100644 index 0000000..2a59486 --- /dev/null +++ b/src/middleware/hello_middleware.py @@ -0,0 +1,11 @@ +class HelloMiddleware(): + + def __init__(self): + self.next = True + + def next(self): + return self.next + + def execute(self, command): + if(command.get_command() == 'command1'): + command.set_message('Hello! World') diff --git a/src/middleware/image_carousel_template_middleware.py b/src/middleware/image_carousel_template_middleware.py new file mode 100644 index 0000000..701d438 --- /dev/null +++ b/src/middleware/image_carousel_template_middleware.py @@ -0,0 +1,37 @@ +from linebot.models import ( + ImageCarouselTemplate, ImageCarouselColumn, PostbackTemplateAction +) + + +class ImageCarouselTemplateMiddleware(): + + def __init__(self): + self.next = True + + def next(self): + return self.next + + def execute(self, command): + if(command.get_command() == 'command8'): + command.set_message({'alt_text'='ImageCarousel template', + 'template'=ImageCarouselTemplate( + columns=[ + ImageCarouselColumn( + image_url='https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', + action=PostbackTemplateAction( + label='postback1', + text='postback text1', + data='action=buy&itemid=1' + ) + ), + ImageCarouselColumn( + image_url='https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', + action=PostbackTemplateAction( + label='postback2', + text='postback text2', + data='action=buy&itemid=2' + ) + ) + ] + ) + }) diff --git a/src/middleware/image_message_middleware.py b/src/middleware/image_message_middleware.py new file mode 100644 index 0000000..25b7ea0 --- /dev/null +++ b/src/middleware/image_message_middleware.py @@ -0,0 +1,12 @@ +class ImageMiddleware(): + + def __init__(self): + self.next = True + + def next(self): + return self.next + + def execute(self, command): + if(command.get_command() == 'command2'): + command.set_message({'original_content_url': 'https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', + 'preview_image_url': 'https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg'}) diff --git a/src/middleware/imagemap_send_message_middleware.py b/src/middleware/imagemap_send_message_middleware.py new file mode 100644 index 0000000..3193d9a --- /dev/null +++ b/src/middleware/imagemap_send_message_middleware.py @@ -0,0 +1,33 @@ +from linebot.models import ( + BaseSize, URIImagemapAction, MessageImagemapAction, ImagemapArea +) + + +class ImagemapSendMessageMiddleware(): + + def __init__(self): + self.next = True + + def next(self): + return self.next + + def execute(self): + if(command.get_command() == 'command9'): + command.set_message({'base_url': 'https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', + 'alt_text': 'this is an imagemap', + 'base_size': BaseSize(height=1040, width=1040), + 'actions': [ + URIImagemapAction( + link_uri='https://www.google.com/', + area=ImagemapArea( + x=0, y=0, width=520, height=1040 + ) + ), + MessageImagemapAction( + text='hello', + area=ImagemapArea( + x=520, y=0, width=520, height=1040 + ) + ) + ] + }) diff --git a/src/middleware/location_message_middleware.py b/src/middleware/location_message_middleware.py new file mode 100644 index 0000000..f221354 --- /dev/null +++ b/src/middleware/location_message_middleware.py @@ -0,0 +1,14 @@ +class LocationMessageMiddleware(): + + def __init__(self): + self.next = True + + def next(self): + return self.next + + def execute(self, command): + if(command.get_command() == 'command3'): + command.set_message({'title'='my location', + 'address'='Tokyo', + 'latitude'='35.65910807942215', + 'longitude'='139.70372892916203'}) diff --git a/src/middleware/sticker_message_middleware.py b/src/middleware/sticker_message_middleware.py new file mode 100644 index 0000000..7bdf2a3 --- /dev/null +++ b/src/middleware/sticker_message_middleware.py @@ -0,0 +1,12 @@ +class StickerMessageMiddleware(): + + def __init__(self): + self.next = True + + def next(self): + return self.next + + def execute(self, command): + if(command.get_command() == 'command4'): + command.set_message({'package_id'='1', + 'sticker_id'='1'}) diff --git a/src/middleware/you_said_middleware.py b/src/middleware/you_said_middleware.py deleted file mode 100644 index c966f39..0000000 --- a/src/middleware/you_said_middleware.py +++ /dev/null @@ -1,13 +0,0 @@ -class YouSaidMiddleware(): - - def __init__(self, command): - self.command = command - - def next(self): - self.execute() - return True - - def execute(self): - if(self.command.get_command() == 'command1'): - self.command.event.message.text = 'You said : ' + self.command.event.message.text - print (self.command.event.message.text) diff --git a/test.py b/test.py new file mode 100644 index 0000000..f74d25a --- /dev/null +++ b/test.py @@ -0,0 +1,61 @@ +class Bus { + property middlewares = [] + + function run(Command) { + for(middleares as middleware) { + new middlware(Command); + } + } +} + +class Middleware1 { + function constructor(Command) { + var x ; + } +} + +class Bus { + property middlewares = [] + + function run(Command) { + for(middleares as middleware) { + middlware.excute(Command); + } + } +} + +class Middleware1 { + property x; + function constructor(xxxx) { + + } + + function execute(Command) { + if (Command != xxx) { + return; + } + + this.x.bar(command) + } +} + + +class CommandA { + property type = 'vdo'; + property cmd = '/abc'; + + function checkCmd(cmd) { + ..... + } +} + +class CommandA { + property type = 'vdo'; + property cmd = ''; + + +} + + +dependency injection + From 7273405025d301137512860b8484ff9905e0e730 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 18:11:28 +0700 Subject: [PATCH 07/53] fix bug1 --- src/middleware/hello_middleware.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/middleware/hello_middleware.py b/src/middleware/hello_middleware.py index 2a59486..02d9a32 100644 --- a/src/middleware/hello_middleware.py +++ b/src/middleware/hello_middleware.py @@ -1,7 +1,7 @@ class HelloMiddleware(): def __init__(self): - self.next = True + self.next = True def next(self): return self.next From f27dc592ef1fdd1ed6e2916deb918707ab3299c4 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 18:14:24 +0700 Subject: [PATCH 08/53] fix bug2 --- src/middleware/image_carousel_template_middleware.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/middleware/image_carousel_template_middleware.py b/src/middleware/image_carousel_template_middleware.py index 701d438..ccb7c22 100644 --- a/src/middleware/image_carousel_template_middleware.py +++ b/src/middleware/image_carousel_template_middleware.py @@ -13,8 +13,8 @@ def next(self): def execute(self, command): if(command.get_command() == 'command8'): - command.set_message({'alt_text'='ImageCarousel template', - 'template'=ImageCarouselTemplate( + command.set_message({'alt_text': 'ImageCarousel template', + 'template': ImageCarouselTemplate( columns=[ ImageCarouselColumn( image_url='https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', From 51c4a6f2da4a0ebecf2c54fffc4d6bd4b04a21af Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 18:24:30 +0700 Subject: [PATCH 09/53] fix bug3 --- src/middleware/image_carousel_template_middleware.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/middleware/image_carousel_template_middleware.py b/src/middleware/image_carousel_template_middleware.py index ccb7c22..5219e56 100644 --- a/src/middleware/image_carousel_template_middleware.py +++ b/src/middleware/image_carousel_template_middleware.py @@ -1,5 +1,13 @@ from linebot.models import ( - ImageCarouselTemplate, ImageCarouselColumn, PostbackTemplateAction + MessageEvent, TextMessage, TextSendMessage, + SourceUser, SourceGroup, SourceRoom, + TemplateSendMessage, ConfirmTemplate, MessageTemplateAction, + ButtonsTemplate, ImageCarouselTemplate, ImageCarouselColumn, URITemplateAction, + PostbackTemplateAction, DatetimePickerTemplateAction, + CarouselTemplate, CarouselColumn, PostbackEvent, + StickerMessage, StickerSendMessage, LocationMessage, LocationSendMessage, + ImageMessage, VideoMessage, AudioMessage, FileMessage, + UnfollowEvent, FollowEvent, JoinEvent, LeaveEvent, BeaconEvent ) From 6a822f75e19319bb160c07ff0a7095762a853498 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 18:29:09 +0700 Subject: [PATCH 10/53] fix bug --- src/command_bus.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/command_bus.py b/src/command_bus.py index 5d8498c..c932205 100644 --- a/src/command_bus.py +++ b/src/command_bus.py @@ -3,7 +3,7 @@ from .middleware.carousel_template_middleware import CarouselTemplateMiddleware from .middleware.confirm_template_middleware import ConfirmTemplateMiddleware from .middleware.default_message_middleware import DefaultMessageMiddleware -from .middleware.image_carousel_template_middleware.py import ImageCarouselTemplateMiddleware + from .middleware.image_message_middleware import ImageMiddleware from .middleware.imagemap_send_message_middleware import ImagemapSendMessageMiddleware from .middleware.location_message_middleware import LocationMessageMiddleware @@ -25,7 +25,7 @@ def initial(self): self.add(CarouselTemplateMiddleware()) self.add(ConfirmTemplateMiddleware()) self.add(DefaultMessageMiddleware()) - self.add(ImageCarouselTemplateMiddleware()) + self.add(ImageMiddleware()) self.add(LocationMessageMiddleware()) self.add(StickerMessageMiddleware()) From 2bc9019166a145499c3df0219bb3f118416ef6c5 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 18:31:19 +0700 Subject: [PATCH 11/53] fix bug SyntaxError: invalid syntax --- src/middleware/location_message_middleware.py | 8 ++++---- src/middleware/sticker_message_middleware.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/middleware/location_message_middleware.py b/src/middleware/location_message_middleware.py index f221354..57aca18 100644 --- a/src/middleware/location_message_middleware.py +++ b/src/middleware/location_message_middleware.py @@ -8,7 +8,7 @@ def next(self): def execute(self, command): if(command.get_command() == 'command3'): - command.set_message({'title'='my location', - 'address'='Tokyo', - 'latitude'='35.65910807942215', - 'longitude'='139.70372892916203'}) + command.set_message({'title':'my location', + 'address':'Tokyo', + 'latitude':'35.65910807942215', + 'longitude':'139.70372892916203'}) diff --git a/src/middleware/sticker_message_middleware.py b/src/middleware/sticker_message_middleware.py index 7bdf2a3..25f4213 100644 --- a/src/middleware/sticker_message_middleware.py +++ b/src/middleware/sticker_message_middleware.py @@ -8,5 +8,5 @@ def next(self): def execute(self, command): if(command.get_command() == 'command4'): - command.set_message({'package_id'='1', - 'sticker_id'='1'}) + command.set_message({'package_id':'1', + 'sticker_id':'1'}) From 7903084691e6e2f627dfc55b7593f16933de758b Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 23:05:05 +0700 Subject: [PATCH 12/53] inherit middleware class --- src/middleware/button_template_middleware.py | 8 +++----- src/middleware/carousel_template_middleware.py | 8 +++----- src/middleware/confirm_template_middleware.py | 8 +++----- src/middleware/default_message_middleware.py | 10 +++++----- src/middleware/hello_middleware.py | 10 +++++----- .../image_carousel_template_middleware.py | 8 +++----- src/middleware/image_message_middleware.py | 10 +++++----- .../imagemap_send_message_middleware.py | 8 +++----- src/middleware/location_message_middleware.py | 18 +++++++++--------- src/middleware/middleware.py | 10 ++++++++++ src/middleware/sticker_message_middleware.py | 14 +++++++------- 11 files changed, 56 insertions(+), 56 deletions(-) create mode 100644 src/middleware/middleware.py diff --git a/src/middleware/button_template_middleware.py b/src/middleware/button_template_middleware.py index 9a3f518..261fcb4 100644 --- a/src/middleware/button_template_middleware.py +++ b/src/middleware/button_template_middleware.py @@ -1,15 +1,13 @@ from linebot.models import ( ButtonsTemplate, PostbackTemplateAction, MessageTemplateAction, URITemplateAction ) +from .middleware import Middleware -class ButtonTemplateMiddleware(): +class ButtonTemplateMiddleware(Middleware): def __init__(self): - self.next = True - - def next(self): - return self.next + self.do_next = True def execute(self, command): if(command.get_command() == 'command6'): diff --git a/src/middleware/carousel_template_middleware.py b/src/middleware/carousel_template_middleware.py index 05a13ec..c431b7e 100644 --- a/src/middleware/carousel_template_middleware.py +++ b/src/middleware/carousel_template_middleware.py @@ -1,15 +1,13 @@ from linebot.models import ( CarouselTemplate, CarouselColumn, ConfirmTemplate ) +from .middleware import Middleware -class CarouselTemplateMiddleware(): +class CarouselTemplateMiddleware(Middleware): def __init__(self): - self.next = True - - def next(self): - return self.next + self.do_next = True def execute(self, command): if(command.get_command() == 'command7'): diff --git a/src/middleware/confirm_template_middleware.py b/src/middleware/confirm_template_middleware.py index f8f0d28..250e2cd 100644 --- a/src/middleware/confirm_template_middleware.py +++ b/src/middleware/confirm_template_middleware.py @@ -1,15 +1,13 @@ from linebot.models import ( PostbackTemplateAction, MessageTemplateAction, ConfirmTemplate ) +from .middleware import Middleware -class ConfirmTemplateMiddleware(): +class ConfirmTemplateMiddleware(Middleware): def __init__(self): - self.next = True - - def next(self): - return self.next + self.do_next = True def execute(self, command): if(command.get_command() == 'command5'): diff --git a/src/middleware/default_message_middleware.py b/src/middleware/default_message_middleware.py index d414593..4f838e8 100644 --- a/src/middleware/default_message_middleware.py +++ b/src/middleware/default_message_middleware.py @@ -1,10 +1,10 @@ -class DefaultMessageMiddleware(): +from .middleware import Middleware - def __init__(self): - self.next = True - def next(self): - return self.next +class DefaultMessageMiddleware(Middleware): + + def __init__(self): + self.do_next = True def execute(self, command): if(command.get_command() == 'commandDefault'): diff --git a/src/middleware/hello_middleware.py b/src/middleware/hello_middleware.py index 02d9a32..39dd793 100644 --- a/src/middleware/hello_middleware.py +++ b/src/middleware/hello_middleware.py @@ -1,10 +1,10 @@ -class HelloMiddleware(): +from .middleware import Middleware - def __init__(self): - self.next = True - def next(self): - return self.next +class HelloMiddleware(Middleware): + + def __init__(self): + self.do_next = True def execute(self, command): if(command.get_command() == 'command1'): diff --git a/src/middleware/image_carousel_template_middleware.py b/src/middleware/image_carousel_template_middleware.py index 5219e56..2a91964 100644 --- a/src/middleware/image_carousel_template_middleware.py +++ b/src/middleware/image_carousel_template_middleware.py @@ -9,15 +9,13 @@ ImageMessage, VideoMessage, AudioMessage, FileMessage, UnfollowEvent, FollowEvent, JoinEvent, LeaveEvent, BeaconEvent ) +from .middleware import Middleware -class ImageCarouselTemplateMiddleware(): +class ImageCarouselTemplateMiddleware(Middleware): def __init__(self): - self.next = True - - def next(self): - return self.next + self.do_next = True def execute(self, command): if(command.get_command() == 'command8'): diff --git a/src/middleware/image_message_middleware.py b/src/middleware/image_message_middleware.py index 25b7ea0..ea4968f 100644 --- a/src/middleware/image_message_middleware.py +++ b/src/middleware/image_message_middleware.py @@ -1,10 +1,10 @@ -class ImageMiddleware(): +from .middleware import Middleware - def __init__(self): - self.next = True - def next(self): - return self.next +class ImageMiddleware(Middleware): + + def __init__(self): + self.do_next = True def execute(self, command): if(command.get_command() == 'command2'): diff --git a/src/middleware/imagemap_send_message_middleware.py b/src/middleware/imagemap_send_message_middleware.py index 3193d9a..16c8c0c 100644 --- a/src/middleware/imagemap_send_message_middleware.py +++ b/src/middleware/imagemap_send_message_middleware.py @@ -1,15 +1,13 @@ from linebot.models import ( BaseSize, URIImagemapAction, MessageImagemapAction, ImagemapArea ) +from .middleware import Middleware -class ImagemapSendMessageMiddleware(): +class ImagemapSendMessageMiddleware(Middleware): def __init__(self): - self.next = True - - def next(self): - return self.next + self.do_next = True def execute(self): if(command.get_command() == 'command9'): diff --git a/src/middleware/location_message_middleware.py b/src/middleware/location_message_middleware.py index 57aca18..c3b854d 100644 --- a/src/middleware/location_message_middleware.py +++ b/src/middleware/location_message_middleware.py @@ -1,14 +1,14 @@ -class LocationMessageMiddleware(): +from .middleware import Middleware - def __init__(self): - self.next = True - def next(self): - return self.next +class LocationMessageMiddleware(Middleware): + + def __init__(self): + self.do_next = True def execute(self, command): if(command.get_command() == 'command3'): - command.set_message({'title':'my location', - 'address':'Tokyo', - 'latitude':'35.65910807942215', - 'longitude':'139.70372892916203'}) + command.set_message({'title': 'my location', + 'address': 'Tokyo', + 'latitude': '35.65910807942215', + 'longitude': '139.70372892916203'}) diff --git a/src/middleware/middleware.py b/src/middleware/middleware.py new file mode 100644 index 0000000..b084912 --- /dev/null +++ b/src/middleware/middleware.py @@ -0,0 +1,10 @@ +class Middleware(): + + def __init__(self, command): + self.do_next = True + + def next(self): + return self.do_next + + def execute(self, command): + pass diff --git a/src/middleware/sticker_message_middleware.py b/src/middleware/sticker_message_middleware.py index 25f4213..df9e947 100644 --- a/src/middleware/sticker_message_middleware.py +++ b/src/middleware/sticker_message_middleware.py @@ -1,12 +1,12 @@ -class StickerMessageMiddleware(): +from .middleware import Middleware - def __init__(self): - self.next = True - def next(self): - return self.next +class StickerMessageMiddleware(Middleware): + + def __init__(self): + self.do_next = True def execute(self, command): if(command.get_command() == 'command4'): - command.set_message({'package_id':'1', - 'sticker_id':'1'}) + command.set_message({'package_id': '1', + 'sticker_id': '1'}) From a8653b2bb734c2616d591684198210fe6f41326a Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 23:08:27 +0700 Subject: [PATCH 13/53] fix bug TypeError: execute() takes 1 positional argument but 2 were given --- src/middleware/imagemap_send_message_middleware.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/middleware/imagemap_send_message_middleware.py b/src/middleware/imagemap_send_message_middleware.py index 16c8c0c..06d64aa 100644 --- a/src/middleware/imagemap_send_message_middleware.py +++ b/src/middleware/imagemap_send_message_middleware.py @@ -9,7 +9,7 @@ class ImagemapSendMessageMiddleware(Middleware): def __init__(self): self.do_next = True - def execute(self): + def execute(self, command): if(command.get_command() == 'command9'): command.set_message({'base_url': 'https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', 'alt_text': 'this is an imagemap', From a344a2073983398dd8a9904c762e39f3da24d6c8 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 23:14:17 +0700 Subject: [PATCH 14/53] fix bug NameError: name 'Command' is not defined --- src/Template/MessageTemplateFactory.py | 5 +-- src/command/command_registry.py | 3 +- src/command_bus.py | 2 - .../image_carousel_template_middleware.py | 43 ------------------- 4 files changed, 2 insertions(+), 51 deletions(-) delete mode 100644 src/middleware/image_carousel_template_middleware.py diff --git a/src/Template/MessageTemplateFactory.py b/src/Template/MessageTemplateFactory.py index 4e45411..8eefe0f 100644 --- a/src/Template/MessageTemplateFactory.py +++ b/src/Template/MessageTemplateFactory.py @@ -9,7 +9,7 @@ class MessageTemplateFactory(): def __init__(self, command): self.command = command - if self.command.get_template() == 'TextTemplate': + if self.command.get_template() == 'TextMessage': self.template = TextTemplate(self.command).get() elif self.command.get_template() == 'ImageMessage': self.template = ImageMessage(self.command).get() @@ -19,9 +19,6 @@ def __init__(self, command): self.template = StickerMessage(self.command).get() elif self.command.get_template() == 'TemplateMessage': self.template = TemplateMessage(self.command).get() - else: - self.command = Command( - self.event, 'commandDefault', 'TextTemplate') def get(self): return self.template diff --git a/src/command/command_registry.py b/src/command/command_registry.py index 8416f4b..16695a0 100644 --- a/src/command/command_registry.py +++ b/src/command/command_registry.py @@ -47,8 +47,7 @@ def set_text_message_command(self): elif text == '7': self.command = Command(self.event, 'command7', 'TemplateMessage') elif text == '8': - self.command = Command( - self.event, 'command8', 'TemplateMessage') + pass elif text == '9': self.command = Command( self.event, 'command9', 'TemplateMessage') diff --git a/src/command_bus.py b/src/command_bus.py index c932205..15b31b9 100644 --- a/src/command_bus.py +++ b/src/command_bus.py @@ -25,13 +25,11 @@ def initial(self): self.add(CarouselTemplateMiddleware()) self.add(ConfirmTemplateMiddleware()) self.add(DefaultMessageMiddleware()) - self.add(ImageMiddleware()) self.add(LocationMessageMiddleware()) self.add(StickerMessageMiddleware()) self.add(ImagemapSendMessageMiddleware()) - def add(self, middleware): self.middleware.append(middleware) diff --git a/src/middleware/image_carousel_template_middleware.py b/src/middleware/image_carousel_template_middleware.py deleted file mode 100644 index 2a91964..0000000 --- a/src/middleware/image_carousel_template_middleware.py +++ /dev/null @@ -1,43 +0,0 @@ -from linebot.models import ( - MessageEvent, TextMessage, TextSendMessage, - SourceUser, SourceGroup, SourceRoom, - TemplateSendMessage, ConfirmTemplate, MessageTemplateAction, - ButtonsTemplate, ImageCarouselTemplate, ImageCarouselColumn, URITemplateAction, - PostbackTemplateAction, DatetimePickerTemplateAction, - CarouselTemplate, CarouselColumn, PostbackEvent, - StickerMessage, StickerSendMessage, LocationMessage, LocationSendMessage, - ImageMessage, VideoMessage, AudioMessage, FileMessage, - UnfollowEvent, FollowEvent, JoinEvent, LeaveEvent, BeaconEvent -) -from .middleware import Middleware - - -class ImageCarouselTemplateMiddleware(Middleware): - - def __init__(self): - self.do_next = True - - def execute(self, command): - if(command.get_command() == 'command8'): - command.set_message({'alt_text': 'ImageCarousel template', - 'template': ImageCarouselTemplate( - columns=[ - ImageCarouselColumn( - image_url='https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', - action=PostbackTemplateAction( - label='postback1', - text='postback text1', - data='action=buy&itemid=1' - ) - ), - ImageCarouselColumn( - image_url='https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', - action=PostbackTemplateAction( - label='postback2', - text='postback text2', - data='action=buy&itemid=2' - ) - ) - ] - ) - }) From ab1de37236006dcc5e9edb9d907394bb2edf98b0 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 23:17:37 +0700 Subject: [PATCH 15/53] fix bug AttributeError: 'MessageTemplateFactory' object has no attribute 'template' --- src/Template/MessageTemplateFactory.py | 1 + src/command/command_registry.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Template/MessageTemplateFactory.py b/src/Template/MessageTemplateFactory.py index 8eefe0f..f9531de 100644 --- a/src/Template/MessageTemplateFactory.py +++ b/src/Template/MessageTemplateFactory.py @@ -9,6 +9,7 @@ class MessageTemplateFactory(): def __init__(self, command): self.command = command + print(self.command.get_template()) if self.command.get_template() == 'TextMessage': self.template = TextTemplate(self.command).get() elif self.command.get_template() == 'ImageMessage': diff --git a/src/command/command_registry.py b/src/command/command_registry.py index 16695a0..2cc67d1 100644 --- a/src/command/command_registry.py +++ b/src/command/command_registry.py @@ -53,7 +53,7 @@ def set_text_message_command(self): self.event, 'command9', 'TemplateMessage') else: self.command = Command( - self.event, 'commandDefault', 'TextTemplate') + self.event, 'commandDefault', 'TextMessage') def set_sticker_message_command(self): pass From e8cf9e308a17ab9f4ef18d4253ebb04a7eac38c1 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 23:20:11 +0700 Subject: [PATCH 16/53] fix bug KeyError: 'longtitude' --- src/Template/LocationMessage.py | 4 ++-- src/Template/MessageTemplateFactory.py | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Template/LocationMessage.py b/src/Template/LocationMessage.py index bcf5ffc..e8dc5c8 100644 --- a/src/Template/LocationMessage.py +++ b/src/Template/LocationMessage.py @@ -9,7 +9,7 @@ def __init__(self, command): self.title = command.get_message()['title'] self.address = command.get_message()['address'] self.latitude = command.get_message()['latitude'] - self.longtitude = command.get_message()['longtitude'] + self.longitude = command.get_message()['longitude'] def get(self): - return LocationSendMessage(self.title, self.address, self.latitude, self.longtitude) + return LocationSendMessage(self.title, self.address, self.latitude, self.longitude) diff --git a/src/Template/MessageTemplateFactory.py b/src/Template/MessageTemplateFactory.py index f9531de..8eefe0f 100644 --- a/src/Template/MessageTemplateFactory.py +++ b/src/Template/MessageTemplateFactory.py @@ -9,7 +9,6 @@ class MessageTemplateFactory(): def __init__(self, command): self.command = command - print(self.command.get_template()) if self.command.get_template() == 'TextMessage': self.template = TextTemplate(self.command).get() elif self.command.get_template() == 'ImageMessage': From 60b8e9632475f3592d5348ef1271cd9a6961a3cf Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 23:24:13 +0700 Subject: [PATCH 17/53] fix bug KeyError: 'alt_text' --- src/middleware/button_template_middleware.py | 39 ++++++++++---------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/src/middleware/button_template_middleware.py b/src/middleware/button_template_middleware.py index 261fcb4..91c0e06 100644 --- a/src/middleware/button_template_middleware.py +++ b/src/middleware/button_template_middleware.py @@ -11,22 +11,23 @@ def __init__(self): def execute(self, command): if(command.get_command() == 'command6'): - command.set_message({'thumbnail_image_url': 'https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', - 'title': 'Menu', - 'text': 'Please Select', - 'actions': [ - PostbackTemplateAction( - label='postback', - text='postback text', - data='action=buy&itemid=1' - ), - MessageTemplateAction( - label='message', - text='message text' - ), - URITemplateAction( - label='uri', - uri='http://www.google.com/' - ) - ] - }) + command.set_message('alt_text': 'Buttons template', + 'template': {'thumbnail_image_url': 'https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', + 'title': 'Menu', + 'text': 'Please Select', + 'actions': [ + PostbackTemplateAction( + label='postback', + text='postback text', + data='action=buy&itemid=1' + ), + MessageTemplateAction( + label='message', + text='message text' + ), + URITemplateAction( + label='uri', + uri='http://www.google.com/' + ) + ] + }) From 39f2fd6ffaa91d66fc05c275dcf5c69d8ca81d20 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 23:28:03 +0700 Subject: [PATCH 18/53] fix bug Process exited with status 3 --- src/middleware/button_template_middleware.py | 42 ++++++++++---------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/src/middleware/button_template_middleware.py b/src/middleware/button_template_middleware.py index 91c0e06..1273ad1 100644 --- a/src/middleware/button_template_middleware.py +++ b/src/middleware/button_template_middleware.py @@ -11,23 +11,25 @@ def __init__(self): def execute(self, command): if(command.get_command() == 'command6'): - command.set_message('alt_text': 'Buttons template', - 'template': {'thumbnail_image_url': 'https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', - 'title': 'Menu', - 'text': 'Please Select', - 'actions': [ - PostbackTemplateAction( - label='postback', - text='postback text', - data='action=buy&itemid=1' - ), - MessageTemplateAction( - label='message', - text='message text' - ), - URITemplateAction( - label='uri', - uri='http://www.google.com/' - ) - ] - }) + command.set_message({'alt_text': 'Buttons template', + 'template': ButtonsTemplate( + thumbnail_image_url='https://example.com/image.jpg', + title='Menu', + text='Please select', + actions=[ + PostbackTemplateAction( + label='postback', + text='postback text', + data='action=buy&itemid=1' + ), + MessageTemplateAction( + label='message', + text='message text' + ), + URITemplateAction( + label='uri', + uri='http://example.com/' + ) + ] + ) + }) From 4f88c01cb08f089278af02fe802acc64a0bf0e83 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 23:36:53 +0700 Subject: [PATCH 19/53] fix bug CarouselTemplate ImagemapSendTemplate --- src/Template/ImagemapMessage.py | 15 +++++++++++++++ src/Template/MessageTemplateFactory.py | 2 ++ src/middleware/carousel_template_middleware.py | 2 +- 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 src/Template/ImagemapMessage.py diff --git a/src/Template/ImagemapMessage.py b/src/Template/ImagemapMessage.py new file mode 100644 index 0000000..58e0e88 --- /dev/null +++ b/src/Template/ImagemapMessage.py @@ -0,0 +1,15 @@ +from linebot.models import ( + ImagemapSendMessage, +) + + +class ImagemapMessage(): + + def __init__(self, command): + self.base_url = command.get_message()['base_url'] + self.alt_text = command.get_message()['alt_text'] + self.base_size = command.get_message()['base_size'] + self.actions = command.get_message()['actions'] + + def get(self): + return LocationSendMessage(self.base_url, self.alt_text, self.base_size, self.actions) diff --git a/src/Template/MessageTemplateFactory.py b/src/Template/MessageTemplateFactory.py index 8eefe0f..8d8be24 100644 --- a/src/Template/MessageTemplateFactory.py +++ b/src/Template/MessageTemplateFactory.py @@ -19,6 +19,8 @@ def __init__(self, command): self.template = StickerMessage(self.command).get() elif self.command.get_template() == 'TemplateMessage': self.template = TemplateMessage(self.command).get() + elif self.command.get_template() == 'ImagemapMessage': + self.template = TemplateMessage(self.command).get() def get(self): return self.template diff --git a/src/middleware/carousel_template_middleware.py b/src/middleware/carousel_template_middleware.py index c431b7e..91053dc 100644 --- a/src/middleware/carousel_template_middleware.py +++ b/src/middleware/carousel_template_middleware.py @@ -1,5 +1,5 @@ from linebot.models import ( - CarouselTemplate, CarouselColumn, ConfirmTemplate + CarouselTemplate, CarouselColumn, ConfirmTemplate, PostbackTemplateAction, MessageTemplateAction, URITemplateAction ) from .middleware import Middleware From 80aef7920af52e5d8f14f1bf48feb585ec8a399c Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 23:40:31 +0700 Subject: [PATCH 20/53] fix bug KeyError: 'template' --- src/command/command_registry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/command/command_registry.py b/src/command/command_registry.py index 2cc67d1..3559aa7 100644 --- a/src/command/command_registry.py +++ b/src/command/command_registry.py @@ -50,7 +50,7 @@ def set_text_message_command(self): pass elif text == '9': self.command = Command( - self.event, 'command9', 'TemplateMessage') + self.event, 'command9', 'ImagemapMessage') else: self.command = Command( self.event, 'commandDefault', 'TextMessage') From 3e25164cbb51290f91c7a7193fa008dfb40c841d Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 23:43:08 +0700 Subject: [PATCH 21/53] fix bug KeyError: 'template'(again) --- src/Template/MessageTemplateFactory.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Template/MessageTemplateFactory.py b/src/Template/MessageTemplateFactory.py index 8d8be24..f8fc2d4 100644 --- a/src/Template/MessageTemplateFactory.py +++ b/src/Template/MessageTemplateFactory.py @@ -3,6 +3,7 @@ from .LocationMessage import LocationMessage from .StickerMessage import StickerMessage from .TemplateMessage import TemplateMessage +from .ImagemapMessage import ImagemapMessage class MessageTemplateFactory(): @@ -20,7 +21,7 @@ def __init__(self, command): elif self.command.get_template() == 'TemplateMessage': self.template = TemplateMessage(self.command).get() elif self.command.get_template() == 'ImagemapMessage': - self.template = TemplateMessage(self.command).get() + self.template = ImagemapMessage(self.command).get() def get(self): return self.template From efef54e90a959425e341f813d671313a84c6ad96 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 23:44:44 +0700 Subject: [PATCH 22/53] fix bug NameError: name 'LocationSendMessage' is not defined --- src/Template/ImagemapMessage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Template/ImagemapMessage.py b/src/Template/ImagemapMessage.py index 58e0e88..7c5c35c 100644 --- a/src/Template/ImagemapMessage.py +++ b/src/Template/ImagemapMessage.py @@ -12,4 +12,4 @@ def __init__(self, command): self.actions = command.get_message()['actions'] def get(self): - return LocationSendMessage(self.base_url, self.alt_text, self.base_size, self.actions) + return ImagemapSendMessage(self.base_url, self.alt_text, self.base_size, self.actions) From 3c6abb97cb9853b48bc1839c5aa11cd6bc768c07 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 23:48:17 +0700 Subject: [PATCH 23/53] fix content change base_url ImageMapSendMessage --- src/middleware/imagemap_send_message_middleware.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/middleware/imagemap_send_message_middleware.py b/src/middleware/imagemap_send_message_middleware.py index 06d64aa..dc18a4e 100644 --- a/src/middleware/imagemap_send_message_middleware.py +++ b/src/middleware/imagemap_send_message_middleware.py @@ -11,7 +11,7 @@ def __init__(self): def execute(self, command): if(command.get_command() == 'command9'): - command.set_message({'base_url': 'https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', + command.set_message({'base_url': 'https://www.google.co.th/', 'alt_text': 'this is an imagemap', 'base_size': BaseSize(height=1040, width=1040), 'actions': [ From 0c6bc633e3463b1aef5d28524bad811933c6992f Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 23:51:11 +0700 Subject: [PATCH 24/53] fix content ImageMapSendMessage change base_url change link_uri --- src/middleware/imagemap_send_message_middleware.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/middleware/imagemap_send_message_middleware.py b/src/middleware/imagemap_send_message_middleware.py index dc18a4e..83e8610 100644 --- a/src/middleware/imagemap_send_message_middleware.py +++ b/src/middleware/imagemap_send_message_middleware.py @@ -11,12 +11,12 @@ def __init__(self): def execute(self, command): if(command.get_command() == 'command9'): - command.set_message({'base_url': 'https://www.google.co.th/', + command.set_message({'base_url': 'https://d2gg9evh47fn9z.cloudfront.net/800px_COLOURBOX17605783.jpg', 'alt_text': 'this is an imagemap', 'base_size': BaseSize(height=1040, width=1040), 'actions': [ URIImagemapAction( - link_uri='https://www.google.com/', + link_uri='https://d2gg9evh47fn9z.cloudfront.net/800px_COLOURBOX17605783.jpg', area=ImagemapArea( x=0, y=0, width=520, height=1040 ) From 75418b18e6b927c46124ec5decc55f5fa93cc678 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Mon, 25 Sep 2017 23:57:40 +0700 Subject: [PATCH 25/53] Take out ImagemapMessage --- src/Template/ImagemapMessage.py | 15 --------- src/Template/MessageTemplateFactory.py | 3 -- src/command/command_registry.py | 5 --- src/command_bus.py | 3 -- src/middleware/default_message_middleware.py | 2 +- .../imagemap_send_message_middleware.py | 31 ------------------- 6 files changed, 1 insertion(+), 58 deletions(-) delete mode 100644 src/Template/ImagemapMessage.py delete mode 100644 src/middleware/imagemap_send_message_middleware.py diff --git a/src/Template/ImagemapMessage.py b/src/Template/ImagemapMessage.py deleted file mode 100644 index 7c5c35c..0000000 --- a/src/Template/ImagemapMessage.py +++ /dev/null @@ -1,15 +0,0 @@ -from linebot.models import ( - ImagemapSendMessage, -) - - -class ImagemapMessage(): - - def __init__(self, command): - self.base_url = command.get_message()['base_url'] - self.alt_text = command.get_message()['alt_text'] - self.base_size = command.get_message()['base_size'] - self.actions = command.get_message()['actions'] - - def get(self): - return ImagemapSendMessage(self.base_url, self.alt_text, self.base_size, self.actions) diff --git a/src/Template/MessageTemplateFactory.py b/src/Template/MessageTemplateFactory.py index f8fc2d4..8eefe0f 100644 --- a/src/Template/MessageTemplateFactory.py +++ b/src/Template/MessageTemplateFactory.py @@ -3,7 +3,6 @@ from .LocationMessage import LocationMessage from .StickerMessage import StickerMessage from .TemplateMessage import TemplateMessage -from .ImagemapMessage import ImagemapMessage class MessageTemplateFactory(): @@ -20,8 +19,6 @@ def __init__(self, command): self.template = StickerMessage(self.command).get() elif self.command.get_template() == 'TemplateMessage': self.template = TemplateMessage(self.command).get() - elif self.command.get_template() == 'ImagemapMessage': - self.template = ImagemapMessage(self.command).get() def get(self): return self.template diff --git a/src/command/command_registry.py b/src/command/command_registry.py index 3559aa7..c01c665 100644 --- a/src/command/command_registry.py +++ b/src/command/command_registry.py @@ -46,11 +46,6 @@ def set_text_message_command(self): self.command = Command(self.event, 'command6', 'TemplateMessage') elif text == '7': self.command = Command(self.event, 'command7', 'TemplateMessage') - elif text == '8': - pass - elif text == '9': - self.command = Command( - self.event, 'command9', 'ImagemapMessage') else: self.command = Command( self.event, 'commandDefault', 'TextMessage') diff --git a/src/command_bus.py b/src/command_bus.py index 15b31b9..1ef2bdd 100644 --- a/src/command_bus.py +++ b/src/command_bus.py @@ -3,9 +3,7 @@ from .middleware.carousel_template_middleware import CarouselTemplateMiddleware from .middleware.confirm_template_middleware import ConfirmTemplateMiddleware from .middleware.default_message_middleware import DefaultMessageMiddleware - from .middleware.image_message_middleware import ImageMiddleware -from .middleware.imagemap_send_message_middleware import ImagemapSendMessageMiddleware from .middleware.location_message_middleware import LocationMessageMiddleware from .middleware.sticker_message_middleware import StickerMessageMiddleware from .handler import Handler @@ -28,7 +26,6 @@ def initial(self): self.add(ImageMiddleware()) self.add(LocationMessageMiddleware()) self.add(StickerMessageMiddleware()) - self.add(ImagemapSendMessageMiddleware()) def add(self, middleware): self.middleware.append(middleware) diff --git a/src/middleware/default_message_middleware.py b/src/middleware/default_message_middleware.py index 4f838e8..199c537 100644 --- a/src/middleware/default_message_middleware.py +++ b/src/middleware/default_message_middleware.py @@ -8,5 +8,5 @@ def __init__(self): def execute(self, command): if(command.get_command() == 'commandDefault'): - message = "Press Number for order\n1.TextMessage\n2.ImageMessage\n3.LocationMessage\n4.StickerMessage\n5.ConfirmTemplate\n6.ButtonTemplate\n7.CarouselTemplate\n8.ImageCarouselTemplate\n9.ImagemapSendMessage" + message = "Press Number for order\n1.TextMessage\n2.ImageMessage\n3.LocationMessage\n4.StickerMessage\n5.ConfirmTemplate\n6.ButtonTemplate\n7.CarouselTemplate\n" command.set_message(message) diff --git a/src/middleware/imagemap_send_message_middleware.py b/src/middleware/imagemap_send_message_middleware.py deleted file mode 100644 index 83e8610..0000000 --- a/src/middleware/imagemap_send_message_middleware.py +++ /dev/null @@ -1,31 +0,0 @@ -from linebot.models import ( - BaseSize, URIImagemapAction, MessageImagemapAction, ImagemapArea -) -from .middleware import Middleware - - -class ImagemapSendMessageMiddleware(Middleware): - - def __init__(self): - self.do_next = True - - def execute(self, command): - if(command.get_command() == 'command9'): - command.set_message({'base_url': 'https://d2gg9evh47fn9z.cloudfront.net/800px_COLOURBOX17605783.jpg', - 'alt_text': 'this is an imagemap', - 'base_size': BaseSize(height=1040, width=1040), - 'actions': [ - URIImagemapAction( - link_uri='https://d2gg9evh47fn9z.cloudfront.net/800px_COLOURBOX17605783.jpg', - area=ImagemapArea( - x=0, y=0, width=520, height=1040 - ) - ), - MessageImagemapAction( - text='hello', - area=ImagemapArea( - x=520, y=0, width=520, height=1040 - ) - ) - ] - }) From 2d35bb3673ac632a21501febd732133e692b268c Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Tue, 26 Sep 2017 00:00:08 +0700 Subject: [PATCH 26/53] fix content DefaultMessageMiddleware fix word --- src/middleware/default_message_middleware.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/middleware/default_message_middleware.py b/src/middleware/default_message_middleware.py index 199c537..edae15e 100644 --- a/src/middleware/default_message_middleware.py +++ b/src/middleware/default_message_middleware.py @@ -8,5 +8,5 @@ def __init__(self): def execute(self, command): if(command.get_command() == 'commandDefault'): - message = "Press Number for order\n1.TextMessage\n2.ImageMessage\n3.LocationMessage\n4.StickerMessage\n5.ConfirmTemplate\n6.ButtonTemplate\n7.CarouselTemplate\n" + message = "************\nPress Number for order\n1.TextMessage\n2.ImageMessage\n3.LocationMessage\n4.StickerMessage\n5.ConfirmTemplate\n6.ButtonTemplate\n7.CarouselTemplate\n************" command.set_message(message) From 7314a45f465149114de14c8fbbb0277f1ad8b1c8 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 15:34:11 +0700 Subject: [PATCH 27/53] core-python V2.1 - modify command object --- src/command/command.py | 14 +++-- src/command/command1.py | 13 +++++ src/command/command2.py | 13 +++++ src/command/command3.py | 13 +++++ src/command/command4.py | 13 +++++ src/command/command5.py | 13 +++++ src/command/command6.py | 13 +++++ src/command/command7.py | 13 +++++ src/command/commandDefault.py | 13 +++++ src/command/command_registry.py | 56 ++++++++----------- src/middleware/button_template_middleware.py | 4 +- .../carousel_template_middleware.py | 4 +- src/middleware/confirm_template_middleware.py | 4 +- src/middleware/default_message_middleware.py | 1 + src/middleware/hello_middleware.py | 4 +- src/middleware/image_message_middleware.py | 4 +- src/middleware/location_message_middleware.py | 4 +- src/middleware/sticker_message_middleware.py | 4 +- src/receiver.py | 17 +++++- 19 files changed, 175 insertions(+), 45 deletions(-) create mode 100644 src/command/command1.py create mode 100644 src/command/command2.py create mode 100644 src/command/command3.py create mode 100644 src/command/command4.py create mode 100644 src/command/command5.py create mode 100644 src/command/command6.py create mode 100644 src/command/command7.py create mode 100644 src/command/commandDefault.py diff --git a/src/command/command.py b/src/command/command.py index eb56783..05817d8 100644 --- a/src/command/command.py +++ b/src/command/command.py @@ -1,10 +1,13 @@ class Command(): - def __init__(self, event, command, template): + def __init__(self): + pass + + def set_event(selt, event): self.event = event - self.command = command - self.template = template - self.message = None + + def get_event(self): + return self.event def set_command(selt, command): self.command = command @@ -23,3 +26,6 @@ def set_message(self, message): def get_message(self): return self.message + + def isisValidCmd(self): + raise NotImplementedError("Please Implement this method") diff --git a/src/command/command1.py b/src/command/command1.py new file mode 100644 index 0000000..0cd2240 --- /dev/null +++ b/src/command/command1.py @@ -0,0 +1,13 @@ +from .command import Command + + +class Command1(Command): + + def __init__(self): + self.event = None + self.command = '1' + self.template = None + self.message = None + + def isisValidCmd(self): + return self.event.message.text == self.command diff --git a/src/command/command2.py b/src/command/command2.py new file mode 100644 index 0000000..0ef49a0 --- /dev/null +++ b/src/command/command2.py @@ -0,0 +1,13 @@ +from .command import Command + + +class Command2(Command): + + def __init__(self): + self.event = None + self.command = '2' + self.template = None + self.message = None + + def isisValidCmd(self): + return self.event.message.text == self.command diff --git a/src/command/command3.py b/src/command/command3.py new file mode 100644 index 0000000..9b1e3cc --- /dev/null +++ b/src/command/command3.py @@ -0,0 +1,13 @@ +from .command import Command + + +class Command3(Command): + + def __init__(self): + self.event = None + self.command = '3' + self.template = None + self.message = None + + def isisValidCmd(self): + return self.event.message.text == self.command diff --git a/src/command/command4.py b/src/command/command4.py new file mode 100644 index 0000000..11b8514 --- /dev/null +++ b/src/command/command4.py @@ -0,0 +1,13 @@ +from .command import Command + + +class Command4(Command): + + def __init__(self): + self.event = None + self.command = '4' + self.template = None + self.message = None + + def isisValidCmd(self): + return self.event.message.text == self.command diff --git a/src/command/command5.py b/src/command/command5.py new file mode 100644 index 0000000..1eb2c39 --- /dev/null +++ b/src/command/command5.py @@ -0,0 +1,13 @@ +from .command import Command + + +class Command5(Command): + + def __init__(self): + self.event = None + self.command = '5' + self.template = None + self.message = None + + def isisValidCmd(self): + return self.event.message.text == self.command diff --git a/src/command/command6.py b/src/command/command6.py new file mode 100644 index 0000000..6507504 --- /dev/null +++ b/src/command/command6.py @@ -0,0 +1,13 @@ +from .command import Command + + +class Command6(Command): + + def __init__(self): + self.event = None + self.command = '6' + self.template = None + self.message = None + + def isisValidCmd(self): + return self.event.message.text == self.command diff --git a/src/command/command7.py b/src/command/command7.py new file mode 100644 index 0000000..933fd7d --- /dev/null +++ b/src/command/command7.py @@ -0,0 +1,13 @@ +from .command import Command + + +class Command7(Command): + + def __init__(self): + self.event = None + self.command = '7' + self.template = None + self.message = None + + def isisValidCmd(self): + return self.event.message.text == self.command diff --git a/src/command/commandDefault.py b/src/command/commandDefault.py new file mode 100644 index 0000000..3707fd8 --- /dev/null +++ b/src/command/commandDefault.py @@ -0,0 +1,13 @@ +from .command import Command + + +class CommandDefault(Command): + + def __init__(self): + self.event = None + self.command = 'commandDefault' + self.template = None + self.message = None + + def isisValidCmd(self): + return self.event.message.text == self.command diff --git a/src/command/command_registry.py b/src/command/command_registry.py index c01c665..e48e825 100644 --- a/src/command/command_registry.py +++ b/src/command/command_registry.py @@ -8,15 +8,16 @@ class CommandRegistry(): def __init__(self, event): self.event = event - self.command = None + self.default_command = None + self.command_list = list() self.check() - def get_command(self): - return self.command + def add_command(self, command): + self.command_list.append(command) - def check(self): + def get_command(self): if isinstance(self.event.message, TextMessage): - self.set_text_message_command() + self.get_text_message_command() elif isinstance(self.event.message, StickerMessage): pass elif isinstance(self.event.message, LocationMessage): @@ -27,43 +28,32 @@ def check(self): pass elif isinstance(self.event.message, AudioMessage): pass - else: - self.set_default_message_command() - def set_text_message_command(self): - text = self.event.message.text - if text == '1': - self.command = Command(self.event, 'command1', 'TextMessage') - elif text == '2': - self.command = Command(self.event, 'command2', 'ImageMessage') - elif text == '3': - self.command = Command(self.event, 'command3', 'LocationMessage') - elif text == '4': - self.command = Command(self.event, 'command4', 'StickerMessage') - elif text == '5': - self.command = Command(self.event, 'command5', 'TemplateMessage') - elif text == '6': - self.command = Command(self.event, 'command6', 'TemplateMessage') - elif text == '7': - self.command = Command(self.event, 'command7', 'TemplateMessage') - else: - self.command = Command( - self.event, 'commandDefault', 'TextMessage') + def get_text_message_command(self): + for command in self.command_list: + command.set_event(self.event) + if command.isValidCmd(): + return command + default_command.set_event(self.event) + return default_command - def set_sticker_message_command(self): + def get_sticker_message_command(self): pass - def set_location_message_command(self): + def get_location_message_command(self): pass - def set_image_message_command(self): + def get_image_message_command(self): pass - def set_video_message_command(self): + def get_video_message_command(self): pass - def set_audio_message_command(self): + def get_audio_message_command(self): pass - def set_default_message_command(self): - self.command.set('default') + def set_default_command(self, default_command): + self.default_command = default_command + + def get_default_command(self): + return default_command diff --git a/src/middleware/button_template_middleware.py b/src/middleware/button_template_middleware.py index 1273ad1..54a18e4 100644 --- a/src/middleware/button_template_middleware.py +++ b/src/middleware/button_template_middleware.py @@ -8,9 +8,10 @@ class ButtonTemplateMiddleware(Middleware): def __init__(self): self.do_next = True + self.middleware_command = '6' def execute(self, command): - if(command.get_command() == 'command6'): + if(command.get_command() == self.middleware_command): command.set_message({'alt_text': 'Buttons template', 'template': ButtonsTemplate( thumbnail_image_url='https://example.com/image.jpg', @@ -33,3 +34,4 @@ def execute(self, command): ] ) }) + command.set_template('TemplateMessage') diff --git a/src/middleware/carousel_template_middleware.py b/src/middleware/carousel_template_middleware.py index 91053dc..0406342 100644 --- a/src/middleware/carousel_template_middleware.py +++ b/src/middleware/carousel_template_middleware.py @@ -8,9 +8,10 @@ class CarouselTemplateMiddleware(Middleware): def __init__(self): self.do_next = True + self.middleware_command = '7' def execute(self, command): - if(command.get_command() == 'command7'): + if(command.get_command() == self.middleware_command): command.set_message({'alt_text': 'Carousel template', 'template': CarouselTemplate( columns=[ @@ -58,3 +59,4 @@ def execute(self, command): ) }) + command.set_template('TemplateMessage') diff --git a/src/middleware/confirm_template_middleware.py b/src/middleware/confirm_template_middleware.py index 250e2cd..ede2cff 100644 --- a/src/middleware/confirm_template_middleware.py +++ b/src/middleware/confirm_template_middleware.py @@ -8,9 +8,10 @@ class ConfirmTemplateMiddleware(Middleware): def __init__(self): self.do_next = True + self.middleware_command = '5' def execute(self, command): - if(command.get_command() == 'command5'): + if(command.get_command() == self.middleware_command): command.set_message({'alt_text': 'Confirm template', 'template': ConfirmTemplate( text='Are you sure?', @@ -27,3 +28,4 @@ def execute(self, command): ] ) }) + command.set_template('TemplateMessage') diff --git a/src/middleware/default_message_middleware.py b/src/middleware/default_message_middleware.py index edae15e..7a12bcb 100644 --- a/src/middleware/default_message_middleware.py +++ b/src/middleware/default_message_middleware.py @@ -10,3 +10,4 @@ def execute(self, command): if(command.get_command() == 'commandDefault'): message = "************\nPress Number for order\n1.TextMessage\n2.ImageMessage\n3.LocationMessage\n4.StickerMessage\n5.ConfirmTemplate\n6.ButtonTemplate\n7.CarouselTemplate\n************" command.set_message(message) + command.set_template('TextMessage') diff --git a/src/middleware/hello_middleware.py b/src/middleware/hello_middleware.py index 39dd793..aef2310 100644 --- a/src/middleware/hello_middleware.py +++ b/src/middleware/hello_middleware.py @@ -5,7 +5,9 @@ class HelloMiddleware(Middleware): def __init__(self): self.do_next = True + self.middleware_command = '1' def execute(self, command): - if(command.get_command() == 'command1'): + if(command.get_command() == self.middleware_command): command.set_message('Hello! World') + command.set_template('TextMessage') diff --git a/src/middleware/image_message_middleware.py b/src/middleware/image_message_middleware.py index ea4968f..289d9bf 100644 --- a/src/middleware/image_message_middleware.py +++ b/src/middleware/image_message_middleware.py @@ -5,8 +5,10 @@ class ImageMiddleware(Middleware): def __init__(self): self.do_next = True + self.middleware_command = '2' def execute(self, command): - if(command.get_command() == 'command2'): + if(command.get_command() == self.middleware_command): command.set_message({'original_content_url': 'https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', 'preview_image_url': 'https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg'}) + command.set_template('ImageMessage') diff --git a/src/middleware/location_message_middleware.py b/src/middleware/location_message_middleware.py index c3b854d..20a2dbb 100644 --- a/src/middleware/location_message_middleware.py +++ b/src/middleware/location_message_middleware.py @@ -5,10 +5,12 @@ class LocationMessageMiddleware(Middleware): def __init__(self): self.do_next = True + self.middleware_command = '3' def execute(self, command): - if(command.get_command() == 'command3'): + if(command.get_command() == self.middleware_command): command.set_message({'title': 'my location', 'address': 'Tokyo', 'latitude': '35.65910807942215', 'longitude': '139.70372892916203'}) + command.set_template('LocationMessage') diff --git a/src/middleware/sticker_message_middleware.py b/src/middleware/sticker_message_middleware.py index df9e947..bdc7928 100644 --- a/src/middleware/sticker_message_middleware.py +++ b/src/middleware/sticker_message_middleware.py @@ -5,8 +5,10 @@ class StickerMessageMiddleware(Middleware): def __init__(self): self.do_next = True + self.middleware_command = '4' def execute(self, command): - if(command.get_command() == 'command4'): + if(command.get_command() == self.middleware_command): command.set_message({'package_id': '1', 'sticker_id': '1'}) + command.set_template('StickerMessage') diff --git a/src/receiver.py b/src/receiver.py index df0b900..01d834c 100644 --- a/src/receiver.py +++ b/src/receiver.py @@ -1,11 +1,26 @@ from .command.command_registry import CommandRegistry +from .command.command1 import Command1 +from .command.command2 import Command2 +from .command.command3 import Command3 +from .command.command4 import Command4 +from .command.command5 import Command5 +from .command.command6 import Command6 +from .command.command7 import Command7 +from .command.commandDefault import CommandDefault from .command_bus import CommandBus - class Receiver(): def __init__(self, event): self.event = event command_registry = CommandRegistry(self.event) + command_registry.add_command(Command1()) + command_registry.add_command(Command2()) + command_registry.add_command(Command3()) + command_registry.add_command(Command4()) + command_registry.add_command(Command5()) + command_registry.add_command(Command6()) + command_registry.add_command(Command7()) + command_registry.set_default_command(CommandDefault()) command = command_registry.get_command() command_bus = CommandBus(command) From 4ebbf8cbb3714f5e943ba64543417faa06850a37 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 15:39:11 +0700 Subject: [PATCH 28/53] fix bug AttributeError: 'CommandRegistry' object has no attribute 'check' --- src/command/command_registry.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/command/command_registry.py b/src/command/command_registry.py index e48e825..a4914a0 100644 --- a/src/command/command_registry.py +++ b/src/command/command_registry.py @@ -10,7 +10,6 @@ def __init__(self, event): self.event = event self.default_command = None self.command_list = list() - self.check() def add_command(self, command): self.command_list.append(command) From dd0198c130558211f6419a4daa4a693a4db55f40 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 15:41:01 +0700 Subject: [PATCH 29/53] fix bug NameError: name 'self' is not defined --- src/command/command.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/command/command.py b/src/command/command.py index 05817d8..0216d1f 100644 --- a/src/command/command.py +++ b/src/command/command.py @@ -3,7 +3,7 @@ class Command(): def __init__(self): pass - def set_event(selt, event): + def set_event(self, event): self.event = event def get_event(self): From 9634a6091b32756a94069c8cc509aff5c6e7b4f5 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 15:43:56 +0700 Subject: [PATCH 30/53] fix bug AttributeError: 'Command1' object has no attribute 'isValidCmd' --- src/command/command.py | 2 +- src/command/command1.py | 2 +- src/command/command2.py | 2 +- src/command/command3.py | 2 +- src/command/command4.py | 2 +- src/command/command5.py | 2 +- src/command/command6.py | 2 +- src/command/command7.py | 2 +- src/command/commandDefault.py | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/command/command.py b/src/command/command.py index 0216d1f..b83f12b 100644 --- a/src/command/command.py +++ b/src/command/command.py @@ -27,5 +27,5 @@ def set_message(self, message): def get_message(self): return self.message - def isisValidCmd(self): + def isValidCmd(self): raise NotImplementedError("Please Implement this method") diff --git a/src/command/command1.py b/src/command/command1.py index 0cd2240..492f949 100644 --- a/src/command/command1.py +++ b/src/command/command1.py @@ -9,5 +9,5 @@ def __init__(self): self.template = None self.message = None - def isisValidCmd(self): + def isValidCmd(self): return self.event.message.text == self.command diff --git a/src/command/command2.py b/src/command/command2.py index 0ef49a0..3d006f8 100644 --- a/src/command/command2.py +++ b/src/command/command2.py @@ -9,5 +9,5 @@ def __init__(self): self.template = None self.message = None - def isisValidCmd(self): + def isValidCmd(self): return self.event.message.text == self.command diff --git a/src/command/command3.py b/src/command/command3.py index 9b1e3cc..2d9455e 100644 --- a/src/command/command3.py +++ b/src/command/command3.py @@ -9,5 +9,5 @@ def __init__(self): self.template = None self.message = None - def isisValidCmd(self): + def isValidCmd(self): return self.event.message.text == self.command diff --git a/src/command/command4.py b/src/command/command4.py index 11b8514..d7d56b5 100644 --- a/src/command/command4.py +++ b/src/command/command4.py @@ -9,5 +9,5 @@ def __init__(self): self.template = None self.message = None - def isisValidCmd(self): + def isValidCmd(self): return self.event.message.text == self.command diff --git a/src/command/command5.py b/src/command/command5.py index 1eb2c39..74d3c69 100644 --- a/src/command/command5.py +++ b/src/command/command5.py @@ -9,5 +9,5 @@ def __init__(self): self.template = None self.message = None - def isisValidCmd(self): + def isValidCmd(self): return self.event.message.text == self.command diff --git a/src/command/command6.py b/src/command/command6.py index 6507504..97a1ff1 100644 --- a/src/command/command6.py +++ b/src/command/command6.py @@ -9,5 +9,5 @@ def __init__(self): self.template = None self.message = None - def isisValidCmd(self): + def isValidCmd(self): return self.event.message.text == self.command diff --git a/src/command/command7.py b/src/command/command7.py index 933fd7d..e862ea8 100644 --- a/src/command/command7.py +++ b/src/command/command7.py @@ -9,5 +9,5 @@ def __init__(self): self.template = None self.message = None - def isisValidCmd(self): + def isValidCmd(self): return self.event.message.text == self.command diff --git a/src/command/commandDefault.py b/src/command/commandDefault.py index 3707fd8..b8cfc68 100644 --- a/src/command/commandDefault.py +++ b/src/command/commandDefault.py @@ -9,5 +9,5 @@ def __init__(self): self.template = None self.message = None - def isisValidCmd(self): + def isValidCmd(self): return self.event.message.text == self.command From f11a0ef25206dcaddf5f6050cdb69d75710efece Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 15:45:39 +0700 Subject: [PATCH 31/53] fix bug NameError: name 'default_command' is not defined --- src/command/command_registry.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/command/command_registry.py b/src/command/command_registry.py index a4914a0..f59f28e 100644 --- a/src/command/command_registry.py +++ b/src/command/command_registry.py @@ -33,8 +33,8 @@ def get_text_message_command(self): command.set_event(self.event) if command.isValidCmd(): return command - default_command.set_event(self.event) - return default_command + self.default_command.set_event(self.event) + return self.default_command def get_sticker_message_command(self): pass From be7b6a6e5c55e73f6e6bd2b0fbea3442c3ab4001 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 16:03:01 +0700 Subject: [PATCH 32/53] debug AttributeError: 'NoneType' object has no attribute 'get_command' --- src/command/command.py | 5 ++++- src/command/command_registry.py | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/command/command.py b/src/command/command.py index b83f12b..4a570e1 100644 --- a/src/command/command.py +++ b/src/command/command.py @@ -1,7 +1,10 @@ class Command(): def __init__(self): - pass + self.event = None + self.command = None + self.template = None + self.message = None def set_event(self, event): self.event = event diff --git a/src/command/command_registry.py b/src/command/command_registry.py index f59f28e..f2b7809 100644 --- a/src/command/command_registry.py +++ b/src/command/command_registry.py @@ -32,8 +32,10 @@ def get_text_message_command(self): for command in self.command_list: command.set_event(self.event) if command.isValidCmd(): + print ('return valid command') return command self.default_command.set_event(self.event) + print ('return default command') return self.default_command def get_sticker_message_command(self): From 45fd9b8f6387f0aa201da169d9050b8f0ff79687 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 16:07:02 +0700 Subject: [PATCH 33/53] debug AttributeError: 'NoneType' object has no attribute 'get_command' --- src/command/command_registry.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/command/command_registry.py b/src/command/command_registry.py index f2b7809..dda607c 100644 --- a/src/command/command_registry.py +++ b/src/command/command_registry.py @@ -35,7 +35,11 @@ def get_text_message_command(self): print ('return valid command') return command self.default_command.set_event(self.event) - print ('return default command') + if(self.default_command == None): + print ('default command is None!') + else: + print ('default command Not None!') + return self.default_command def get_sticker_message_command(self): From 0154cd7a9c4e79864f5a8b1a7b3579c117cc2842 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 16:29:38 +0700 Subject: [PATCH 34/53] fix bug AttributeError: 'NoneType' object has no attribute 'get_command' --- src/command/command_registry.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/command/command_registry.py b/src/command/command_registry.py index dda607c..e6ac662 100644 --- a/src/command/command_registry.py +++ b/src/command/command_registry.py @@ -2,6 +2,7 @@ TextMessage, StickerMessage, LocationMessage, ImageMessage, VideoMessage, AudioMessage ) from .command import Command +from .commandDefault import CommandDefault class CommandRegistry(): @@ -31,16 +32,12 @@ def get_command(self): def get_text_message_command(self): for command in self.command_list: command.set_event(self.event) + if isinstance(command, CommandDefault): + print('default command') + return command if command.isValidCmd(): - print ('return valid command') + print('return valid command') return command - self.default_command.set_event(self.event) - if(self.default_command == None): - print ('default command is None!') - else: - print ('default command Not None!') - - return self.default_command def get_sticker_message_command(self): pass From 013e6f341e9b20b3d0bb5cdea1327834a55cb2c3 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 16:37:44 +0700 Subject: [PATCH 35/53] debug AttributeError: 'NoneType' object has no attribute 'get_command' --- src/command/command_registry.py | 8 +------- src/receiver.py | 6 +++--- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/command/command_registry.py b/src/command/command_registry.py index e6ac662..3fd38d6 100644 --- a/src/command/command_registry.py +++ b/src/command/command_registry.py @@ -9,7 +9,6 @@ class CommandRegistry(): def __init__(self, event): self.event = event - self.default_command = None self.command_list = list() def add_command(self, command): @@ -34,6 +33,7 @@ def get_text_message_command(self): command.set_event(self.event) if isinstance(command, CommandDefault): print('default command') + print('get command :' + command.get_command()) return command if command.isValidCmd(): print('return valid command') @@ -53,9 +53,3 @@ def get_video_message_command(self): def get_audio_message_command(self): pass - - def set_default_command(self, default_command): - self.default_command = default_command - - def get_default_command(self): - return default_command diff --git a/src/receiver.py b/src/receiver.py index 01d834c..331e95f 100644 --- a/src/receiver.py +++ b/src/receiver.py @@ -9,6 +9,7 @@ from .command.commandDefault import CommandDefault from .command_bus import CommandBus + class Receiver(): def __init__(self, event): @@ -21,6 +22,5 @@ def __init__(self, event): command_registry.add_command(Command5()) command_registry.add_command(Command6()) command_registry.add_command(Command7()) - command_registry.set_default_command(CommandDefault()) - command = command_registry.get_command() - command_bus = CommandBus(command) + command_registry.add_command(CommandDefault()) + command_bus = CommandBus(command_registry.get_command()) From 0abc3172d250e46736be1a1abc49f323ef3af227 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 16:43:35 +0700 Subject: [PATCH 36/53] debug --- src/command/command_registry.py | 2 +- src/command_bus.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/command/command_registry.py b/src/command/command_registry.py index 3fd38d6..deedcbc 100644 --- a/src/command/command_registry.py +++ b/src/command/command_registry.py @@ -30,10 +30,10 @@ def get_command(self): def get_text_message_command(self): for command in self.command_list: + print('get command :' + command.get_command()) command.set_event(self.event) if isinstance(command, CommandDefault): print('default command') - print('get command :' + command.get_command()) return command if command.isValidCmd(): print('return valid command') diff --git a/src/command_bus.py b/src/command_bus.py index 1ef2bdd..9e30667 100644 --- a/src/command_bus.py +++ b/src/command_bus.py @@ -13,6 +13,7 @@ class CommandBus(): def __init__(self, command): self.command = command + print ('get command in commandBus:'+self.command.get_command()) self.middleware = list() self.initial() self.run() From 13682f8d995d9279f2a35cd2720f6c82b1da2b69 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 16:46:51 +0700 Subject: [PATCH 37/53] fix bug I think it's work now! --- src/command/command_registry.py | 5 +---- src/command_bus.py | 1 - 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/command/command_registry.py b/src/command/command_registry.py index deedcbc..6aba09b 100644 --- a/src/command/command_registry.py +++ b/src/command/command_registry.py @@ -16,7 +16,7 @@ def add_command(self, command): def get_command(self): if isinstance(self.event.message, TextMessage): - self.get_text_message_command() + return self.get_text_message_command() elif isinstance(self.event.message, StickerMessage): pass elif isinstance(self.event.message, LocationMessage): @@ -30,13 +30,10 @@ def get_command(self): def get_text_message_command(self): for command in self.command_list: - print('get command :' + command.get_command()) command.set_event(self.event) if isinstance(command, CommandDefault): - print('default command') return command if command.isValidCmd(): - print('return valid command') return command def get_sticker_message_command(self): diff --git a/src/command_bus.py b/src/command_bus.py index 9e30667..1ef2bdd 100644 --- a/src/command_bus.py +++ b/src/command_bus.py @@ -13,7 +13,6 @@ class CommandBus(): def __init__(self, command): self.command = command - print ('get command in commandBus:'+self.command.get_command()) self.middleware = list() self.initial() self.run() From 7797bcbd9b1e0c3d6f57fa73a8fb96dc0ace12ba Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 16:57:04 +0700 Subject: [PATCH 38/53] debug : TypeError: string indices must be integers --- src/middleware/default_message_middleware.py | 3 ++- src/middleware/hello_middleware.py | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/middleware/default_message_middleware.py b/src/middleware/default_message_middleware.py index 7a12bcb..2ce5ce3 100644 --- a/src/middleware/default_message_middleware.py +++ b/src/middleware/default_message_middleware.py @@ -5,9 +5,10 @@ class DefaultMessageMiddleware(Middleware): def __init__(self): self.do_next = True + self.middleware_command = 'commandDefault' def execute(self, command): - if(command.get_command() == 'commandDefault'): + if(command.get_command() == self.middleware_command: message = "************\nPress Number for order\n1.TextMessage\n2.ImageMessage\n3.LocationMessage\n4.StickerMessage\n5.ConfirmTemplate\n6.ButtonTemplate\n7.CarouselTemplate\n************" command.set_message(message) command.set_template('TextMessage') diff --git a/src/middleware/hello_middleware.py b/src/middleware/hello_middleware.py index aef2310..ef3c3da 100644 --- a/src/middleware/hello_middleware.py +++ b/src/middleware/hello_middleware.py @@ -8,6 +8,8 @@ def __init__(self): self.middleware_command = '1' def execute(self, command): + print ('command in hello:'+command.get_command()) if(command.get_command() == self.middleware_command): command.set_message('Hello! World') command.set_template('TextMessage') + print ('command.get_command() == self.middleware_command') From 3f3ecc63e9d2e13b9cfabc6766515ec462e9db54 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 16:58:54 +0700 Subject: [PATCH 39/53] fix bug TabError: inconsistent use of tabs and spaces in indentation --- src/middleware/hello_middleware.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/middleware/hello_middleware.py b/src/middleware/hello_middleware.py index ef3c3da..d67cfe4 100644 --- a/src/middleware/hello_middleware.py +++ b/src/middleware/hello_middleware.py @@ -8,8 +8,8 @@ def __init__(self): self.middleware_command = '1' def execute(self, command): - print ('command in hello:'+command.get_command()) + print('command in hello:' + command.get_command()) if(command.get_command() == self.middleware_command): command.set_message('Hello! World') command.set_template('TextMessage') - print ('command.get_command() == self.middleware_command') + print('command.get_command() == self.middleware_command') From a16fa573f98ea4478bf9a8739aaeae459c504a36 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 17:01:11 +0700 Subject: [PATCH 40/53] fix bug SyntaxError: invalid syntax --- src/middleware/default_message_middleware.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/middleware/default_message_middleware.py b/src/middleware/default_message_middleware.py index 2ce5ce3..ca3fd16 100644 --- a/src/middleware/default_message_middleware.py +++ b/src/middleware/default_message_middleware.py @@ -8,7 +8,7 @@ def __init__(self): self.middleware_command = 'commandDefault' def execute(self, command): - if(command.get_command() == self.middleware_command: + if(command.get_command() == self.middleware_command): message = "************\nPress Number for order\n1.TextMessage\n2.ImageMessage\n3.LocationMessage\n4.StickerMessage\n5.ConfirmTemplate\n6.ButtonTemplate\n7.CarouselTemplate\n************" command.set_message(message) command.set_template('TextMessage') From b6c52372f2f8f49f958443a68b0e769c294b9ebb Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 17:02:56 +0700 Subject: [PATCH 41/53] debug debug hello middleware --- src/middleware/hello_middleware.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/middleware/hello_middleware.py b/src/middleware/hello_middleware.py index d67cfe4..07ab0ce 100644 --- a/src/middleware/hello_middleware.py +++ b/src/middleware/hello_middleware.py @@ -13,3 +13,4 @@ def execute(self, command): command.set_message('Hello! World') command.set_template('TextMessage') print('command.get_command() == self.middleware_command') + print(command.get_message()) \ No newline at end of file From 1a7ec547ecb076b8f7d7054131c84d0fbf272eff Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 17:12:07 +0700 Subject: [PATCH 42/53] debug --- src/Template/MessageTemplateFactory.py | 2 ++ src/middleware/hello_middleware.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Template/MessageTemplateFactory.py b/src/Template/MessageTemplateFactory.py index 8eefe0f..4503a11 100644 --- a/src/Template/MessageTemplateFactory.py +++ b/src/Template/MessageTemplateFactory.py @@ -9,6 +9,8 @@ class MessageTemplateFactory(): def __init__(self, command): self.command = command + print('MessageTemplateFactory template:'+self.command.get_template()) + print('MessageTemplateFactory message:'+self.command.get_message()) if self.command.get_template() == 'TextMessage': self.template = TextTemplate(self.command).get() elif self.command.get_template() == 'ImageMessage': diff --git a/src/middleware/hello_middleware.py b/src/middleware/hello_middleware.py index 07ab0ce..670cd33 100644 --- a/src/middleware/hello_middleware.py +++ b/src/middleware/hello_middleware.py @@ -13,4 +13,5 @@ def execute(self, command): command.set_message('Hello! World') command.set_template('TextMessage') print('command.get_command() == self.middleware_command') - print(command.get_message()) \ No newline at end of file + print('hellomiddleware message:' + command.get_message()) + print('hellomiddleware template:' + command.get_template()) From 2570ce11409e87a51516c2113261145a79dcdade Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 17:17:53 +0700 Subject: [PATCH 43/53] debug --- src/Template/MessageTemplateFactory.py | 4 ++-- src/command_bus.py | 2 ++ src/handler.py | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Template/MessageTemplateFactory.py b/src/Template/MessageTemplateFactory.py index 4503a11..90cf0ae 100644 --- a/src/Template/MessageTemplateFactory.py +++ b/src/Template/MessageTemplateFactory.py @@ -9,8 +9,8 @@ class MessageTemplateFactory(): def __init__(self, command): self.command = command - print('MessageTemplateFactory template:'+self.command.get_template()) - print('MessageTemplateFactory message:'+self.command.get_message()) + print('MessageTemplateFactory template:' + self.command.get_template()) + print('MessageTemplateFactory message:' + self.command.get_message()) if self.command.get_template() == 'TextMessage': self.template = TextTemplate(self.command).get() elif self.command.get_template() == 'ImageMessage': diff --git a/src/command_bus.py b/src/command_bus.py index 1ef2bdd..d3efb1f 100644 --- a/src/command_bus.py +++ b/src/command_bus.py @@ -38,4 +38,6 @@ def run(self): middleware.execute(self.command) if(not middleware.next()): break + print('Commandbus template:' + self.command.template) + print('Commandbus message:' + self.command.message) handler = Handler(self.command) diff --git a/src/handler.py b/src/handler.py index e3a3a79..0884c98 100644 --- a/src/handler.py +++ b/src/handler.py @@ -9,7 +9,9 @@ class Handler(): def __init__(self, command): self.command = command - self.template = MessageTemplateFactory(command).get() + print('Handler template:'+self.command.template) + print('Handler message:'+self.command.message) + self.template = MessageTemplateFactory(self.command).get() self.sendMessage() def sendMessage(self): From db631c512dd055350b7d32a579e0e4277c27105d Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 17:23:51 +0700 Subject: [PATCH 44/53] debug --- src/middleware/hello_middleware.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/middleware/hello_middleware.py b/src/middleware/hello_middleware.py index 670cd33..96a0fe4 100644 --- a/src/middleware/hello_middleware.py +++ b/src/middleware/hello_middleware.py @@ -10,7 +10,7 @@ def __init__(self): def execute(self, command): print('command in hello:' + command.get_command()) if(command.get_command() == self.middleware_command): - command.set_message('Hello! World') + command.set_message('Hello! World pawa') command.set_template('TextMessage') print('command.get_command() == self.middleware_command') print('hellomiddleware message:' + command.get_message()) From aab451f4aa095aa8463f860083262011d843e04f Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 17:28:27 +0700 Subject: [PATCH 45/53] debug --- src/command/command.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/command/command.py b/src/command/command.py index 4a570e1..e9fa58e 100644 --- a/src/command/command.py +++ b/src/command/command.py @@ -19,6 +19,7 @@ def get_command(self): return self.command def set_template(self, template): + print('set template in command: ' + template) self.template = template def get_template(self): From 8b8d6ea140d081c7d916ee47e611db19a080b60f Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 17:32:36 +0700 Subject: [PATCH 46/53] delete pycache --- src/middleware/hello_middleware.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/middleware/hello_middleware.py b/src/middleware/hello_middleware.py index 96a0fe4..a43a6b9 100644 --- a/src/middleware/hello_middleware.py +++ b/src/middleware/hello_middleware.py @@ -8,9 +8,8 @@ def __init__(self): self.middleware_command = '1' def execute(self, command): - print('command in hello:' + command.get_command()) if(command.get_command() == self.middleware_command): - command.set_message('Hello! World pawa') + command.set_message('Hello! World!!') command.set_template('TextMessage') print('command.get_command() == self.middleware_command') print('hellomiddleware message:' + command.get_message()) From 48c9195ed186847db3daa66f2dc820c99d10d5de Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 17:35:11 +0700 Subject: [PATCH 47/53] debug --- src/command_bus.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/command_bus.py b/src/command_bus.py index d3efb1f..22a3d01 100644 --- a/src/command_bus.py +++ b/src/command_bus.py @@ -35,6 +35,7 @@ def get(self, index): def run(self): for middleware in self.middleware: + print('middlewareCommand:'+middleware.command) middleware.execute(self.command) if(not middleware.next()): break From 8e22cf182a1e838cec3ad7a1a6697758bb1fb1f8 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 17:37:14 +0700 Subject: [PATCH 48/53] fix bug debug AttributeError: 'HelloMiddleware' object has no attribute 'command' --- src/command_bus.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/command_bus.py b/src/command_bus.py index 22a3d01..9709bad 100644 --- a/src/command_bus.py +++ b/src/command_bus.py @@ -35,7 +35,7 @@ def get(self, index): def run(self): for middleware in self.middleware: - print('middlewareCommand:'+middleware.command) + print('middlewareCommand:'+middleware.middleware_command) middleware.execute(self.command) if(not middleware.next()): break From a5b8406c034b0c733f91ac4c74f2cc77372a806c Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 17:42:01 +0700 Subject: [PATCH 49/53] debug in all middleware --- src/middleware/button_template_middleware.py | 1 + src/middleware/carousel_template_middleware.py | 1 + src/middleware/confirm_template_middleware.py | 1 + src/middleware/default_message_middleware.py | 1 + src/middleware/image_message_middleware.py | 1 + src/middleware/location_message_middleware.py | 1 + src/middleware/sticker_message_middleware.py | 1 + 7 files changed, 7 insertions(+) diff --git a/src/middleware/button_template_middleware.py b/src/middleware/button_template_middleware.py index 54a18e4..e14ba5a 100644 --- a/src/middleware/button_template_middleware.py +++ b/src/middleware/button_template_middleware.py @@ -12,6 +12,7 @@ def __init__(self): def execute(self, command): if(command.get_command() == self.middleware_command): + print('in ButtonTemplateMiddleware ') command.set_message({'alt_text': 'Buttons template', 'template': ButtonsTemplate( thumbnail_image_url='https://example.com/image.jpg', diff --git a/src/middleware/carousel_template_middleware.py b/src/middleware/carousel_template_middleware.py index 0406342..f001424 100644 --- a/src/middleware/carousel_template_middleware.py +++ b/src/middleware/carousel_template_middleware.py @@ -12,6 +12,7 @@ def __init__(self): def execute(self, command): if(command.get_command() == self.middleware_command): + print('in CarouselTemplateMiddleware ') command.set_message({'alt_text': 'Carousel template', 'template': CarouselTemplate( columns=[ diff --git a/src/middleware/confirm_template_middleware.py b/src/middleware/confirm_template_middleware.py index ede2cff..ad5cd9e 100644 --- a/src/middleware/confirm_template_middleware.py +++ b/src/middleware/confirm_template_middleware.py @@ -12,6 +12,7 @@ def __init__(self): def execute(self, command): if(command.get_command() == self.middleware_command): + print('in ConfirmTemplateMiddleware ') command.set_message({'alt_text': 'Confirm template', 'template': ConfirmTemplate( text='Are you sure?', diff --git a/src/middleware/default_message_middleware.py b/src/middleware/default_message_middleware.py index ca3fd16..0e1eac5 100644 --- a/src/middleware/default_message_middleware.py +++ b/src/middleware/default_message_middleware.py @@ -12,3 +12,4 @@ def execute(self, command): message = "************\nPress Number for order\n1.TextMessage\n2.ImageMessage\n3.LocationMessage\n4.StickerMessage\n5.ConfirmTemplate\n6.ButtonTemplate\n7.CarouselTemplate\n************" command.set_message(message) command.set_template('TextMessage') + print('in DefaultMessageMiddleware ') diff --git a/src/middleware/image_message_middleware.py b/src/middleware/image_message_middleware.py index 289d9bf..320359e 100644 --- a/src/middleware/image_message_middleware.py +++ b/src/middleware/image_message_middleware.py @@ -9,6 +9,7 @@ def __init__(self): def execute(self, command): if(command.get_command() == self.middleware_command): + print('in ImageMiddleware ') command.set_message({'original_content_url': 'https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', 'preview_image_url': 'https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg'}) command.set_template('ImageMessage') diff --git a/src/middleware/location_message_middleware.py b/src/middleware/location_message_middleware.py index 20a2dbb..d5b7134 100644 --- a/src/middleware/location_message_middleware.py +++ b/src/middleware/location_message_middleware.py @@ -9,6 +9,7 @@ def __init__(self): def execute(self, command): if(command.get_command() == self.middleware_command): + print('in LocationMessageMiddleware ') command.set_message({'title': 'my location', 'address': 'Tokyo', 'latitude': '35.65910807942215', diff --git a/src/middleware/sticker_message_middleware.py b/src/middleware/sticker_message_middleware.py index bdc7928..c51e4fe 100644 --- a/src/middleware/sticker_message_middleware.py +++ b/src/middleware/sticker_message_middleware.py @@ -9,6 +9,7 @@ def __init__(self): def execute(self, command): if(command.get_command() == self.middleware_command): + print('in StickerMessageMiddleware ') command.set_message({'package_id': '1', 'sticker_id': '1'}) command.set_template('StickerMessage') From cf7164f692c586bd79b526ef4d5063627008e445 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 17:45:00 +0700 Subject: [PATCH 50/53] debug --- src/command_bus.py | 1 - src/middleware/hello_middleware.py | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/command_bus.py b/src/command_bus.py index 9709bad..d3efb1f 100644 --- a/src/command_bus.py +++ b/src/command_bus.py @@ -35,7 +35,6 @@ def get(self, index): def run(self): for middleware in self.middleware: - print('middlewareCommand:'+middleware.middleware_command) middleware.execute(self.command) if(not middleware.next()): break diff --git a/src/middleware/hello_middleware.py b/src/middleware/hello_middleware.py index a43a6b9..3f685aa 100644 --- a/src/middleware/hello_middleware.py +++ b/src/middleware/hello_middleware.py @@ -10,7 +10,6 @@ def __init__(self): def execute(self, command): if(command.get_command() == self.middleware_command): command.set_message('Hello! World!!') - command.set_template('TextMessage') - print('command.get_command() == self.middleware_command') + command.set_template('TextMessageNAAA') print('hellomiddleware message:' + command.get_message()) print('hellomiddleware template:' + command.get_template()) From 24594e13fbe52eaaf92b8d6050fb59ddc0c8749d Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 17:58:40 +0700 Subject: [PATCH 51/53] debug --- src/middleware/button_template_middleware.py | 3 +-- src/middleware/carousel_template_middleware.py | 3 +-- src/middleware/confirm_template_middleware.py | 3 +-- src/middleware/hello_middleware.py | 2 +- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/middleware/button_template_middleware.py b/src/middleware/button_template_middleware.py index e14ba5a..8c60fbf 100644 --- a/src/middleware/button_template_middleware.py +++ b/src/middleware/button_template_middleware.py @@ -12,7 +12,6 @@ def __init__(self): def execute(self, command): if(command.get_command() == self.middleware_command): - print('in ButtonTemplateMiddleware ') command.set_message({'alt_text': 'Buttons template', 'template': ButtonsTemplate( thumbnail_image_url='https://example.com/image.jpg', @@ -35,4 +34,4 @@ def execute(self, command): ] ) }) - command.set_template('TemplateMessage') + command.set_template('TemplateMessageButtonTemplateMiddleware') diff --git a/src/middleware/carousel_template_middleware.py b/src/middleware/carousel_template_middleware.py index f001424..66eeff1 100644 --- a/src/middleware/carousel_template_middleware.py +++ b/src/middleware/carousel_template_middleware.py @@ -12,7 +12,6 @@ def __init__(self): def execute(self, command): if(command.get_command() == self.middleware_command): - print('in CarouselTemplateMiddleware ') command.set_message({'alt_text': 'Carousel template', 'template': CarouselTemplate( columns=[ @@ -60,4 +59,4 @@ def execute(self, command): ) }) - command.set_template('TemplateMessage') + command.set_template('TemplateMessageCarouselTemplateMiddleware') diff --git a/src/middleware/confirm_template_middleware.py b/src/middleware/confirm_template_middleware.py index ad5cd9e..ac90329 100644 --- a/src/middleware/confirm_template_middleware.py +++ b/src/middleware/confirm_template_middleware.py @@ -12,7 +12,6 @@ def __init__(self): def execute(self, command): if(command.get_command() == self.middleware_command): - print('in ConfirmTemplateMiddleware ') command.set_message({'alt_text': 'Confirm template', 'template': ConfirmTemplate( text='Are you sure?', @@ -29,4 +28,4 @@ def execute(self, command): ] ) }) - command.set_template('TemplateMessage') + command.set_template('TemplateMessageConfirmTemplateMiddleware') diff --git a/src/middleware/hello_middleware.py b/src/middleware/hello_middleware.py index 3f685aa..85561a0 100644 --- a/src/middleware/hello_middleware.py +++ b/src/middleware/hello_middleware.py @@ -10,6 +10,6 @@ def __init__(self): def execute(self, command): if(command.get_command() == self.middleware_command): command.set_message('Hello! World!!') - command.set_template('TextMessageNAAA') + command.set_template('TextMessage') print('hellomiddleware message:' + command.get_message()) print('hellomiddleware template:' + command.get_template()) From 9c2cc6c50f11ae0b32b449996a557f571a792f48 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 18:02:49 +0700 Subject: [PATCH 52/53] fix bug --- src/Template/MessageTemplateFactory.py | 2 -- src/command/command.py | 1 - src/command_bus.py | 2 -- src/handler.py | 2 -- src/middleware/button_template_middleware.py | 2 +- src/middleware/carousel_template_middleware.py | 2 +- src/middleware/confirm_template_middleware.py | 2 +- src/middleware/default_message_middleware.py | 1 - src/middleware/hello_middleware.py | 2 -- src/middleware/image_message_middleware.py | 1 - src/middleware/location_message_middleware.py | 1 - src/middleware/sticker_message_middleware.py | 1 - 12 files changed, 3 insertions(+), 16 deletions(-) diff --git a/src/Template/MessageTemplateFactory.py b/src/Template/MessageTemplateFactory.py index 90cf0ae..8eefe0f 100644 --- a/src/Template/MessageTemplateFactory.py +++ b/src/Template/MessageTemplateFactory.py @@ -9,8 +9,6 @@ class MessageTemplateFactory(): def __init__(self, command): self.command = command - print('MessageTemplateFactory template:' + self.command.get_template()) - print('MessageTemplateFactory message:' + self.command.get_message()) if self.command.get_template() == 'TextMessage': self.template = TextTemplate(self.command).get() elif self.command.get_template() == 'ImageMessage': diff --git a/src/command/command.py b/src/command/command.py index e9fa58e..4a570e1 100644 --- a/src/command/command.py +++ b/src/command/command.py @@ -19,7 +19,6 @@ def get_command(self): return self.command def set_template(self, template): - print('set template in command: ' + template) self.template = template def get_template(self): diff --git a/src/command_bus.py b/src/command_bus.py index d3efb1f..1ef2bdd 100644 --- a/src/command_bus.py +++ b/src/command_bus.py @@ -38,6 +38,4 @@ def run(self): middleware.execute(self.command) if(not middleware.next()): break - print('Commandbus template:' + self.command.template) - print('Commandbus message:' + self.command.message) handler = Handler(self.command) diff --git a/src/handler.py b/src/handler.py index 0884c98..63f1089 100644 --- a/src/handler.py +++ b/src/handler.py @@ -9,8 +9,6 @@ class Handler(): def __init__(self, command): self.command = command - print('Handler template:'+self.command.template) - print('Handler message:'+self.command.message) self.template = MessageTemplateFactory(self.command).get() self.sendMessage() diff --git a/src/middleware/button_template_middleware.py b/src/middleware/button_template_middleware.py index 8c60fbf..5cbb8ab 100644 --- a/src/middleware/button_template_middleware.py +++ b/src/middleware/button_template_middleware.py @@ -34,4 +34,4 @@ def execute(self, command): ] ) }) - command.set_template('TemplateMessageButtonTemplateMiddleware') + command.set_template('TemplateMessage') diff --git a/src/middleware/carousel_template_middleware.py b/src/middleware/carousel_template_middleware.py index 66eeff1..0406342 100644 --- a/src/middleware/carousel_template_middleware.py +++ b/src/middleware/carousel_template_middleware.py @@ -59,4 +59,4 @@ def execute(self, command): ) }) - command.set_template('TemplateMessageCarouselTemplateMiddleware') + command.set_template('TemplateMessage') diff --git a/src/middleware/confirm_template_middleware.py b/src/middleware/confirm_template_middleware.py index ac90329..ede2cff 100644 --- a/src/middleware/confirm_template_middleware.py +++ b/src/middleware/confirm_template_middleware.py @@ -28,4 +28,4 @@ def execute(self, command): ] ) }) - command.set_template('TemplateMessageConfirmTemplateMiddleware') + command.set_template('TemplateMessage') diff --git a/src/middleware/default_message_middleware.py b/src/middleware/default_message_middleware.py index 0e1eac5..ca3fd16 100644 --- a/src/middleware/default_message_middleware.py +++ b/src/middleware/default_message_middleware.py @@ -12,4 +12,3 @@ def execute(self, command): message = "************\nPress Number for order\n1.TextMessage\n2.ImageMessage\n3.LocationMessage\n4.StickerMessage\n5.ConfirmTemplate\n6.ButtonTemplate\n7.CarouselTemplate\n************" command.set_message(message) command.set_template('TextMessage') - print('in DefaultMessageMiddleware ') diff --git a/src/middleware/hello_middleware.py b/src/middleware/hello_middleware.py index 85561a0..c1b0319 100644 --- a/src/middleware/hello_middleware.py +++ b/src/middleware/hello_middleware.py @@ -11,5 +11,3 @@ def execute(self, command): if(command.get_command() == self.middleware_command): command.set_message('Hello! World!!') command.set_template('TextMessage') - print('hellomiddleware message:' + command.get_message()) - print('hellomiddleware template:' + command.get_template()) diff --git a/src/middleware/image_message_middleware.py b/src/middleware/image_message_middleware.py index 320359e..289d9bf 100644 --- a/src/middleware/image_message_middleware.py +++ b/src/middleware/image_message_middleware.py @@ -9,7 +9,6 @@ def __init__(self): def execute(self, command): if(command.get_command() == self.middleware_command): - print('in ImageMiddleware ') command.set_message({'original_content_url': 'https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg', 'preview_image_url': 'https://i.pinimg.com/736x/48/bd/3f/48bd3f6e928d7cb4b8d499cb0f96b8a8--despicable-minions-funny-minion.jpg'}) command.set_template('ImageMessage') diff --git a/src/middleware/location_message_middleware.py b/src/middleware/location_message_middleware.py index d5b7134..20a2dbb 100644 --- a/src/middleware/location_message_middleware.py +++ b/src/middleware/location_message_middleware.py @@ -9,7 +9,6 @@ def __init__(self): def execute(self, command): if(command.get_command() == self.middleware_command): - print('in LocationMessageMiddleware ') command.set_message({'title': 'my location', 'address': 'Tokyo', 'latitude': '35.65910807942215', diff --git a/src/middleware/sticker_message_middleware.py b/src/middleware/sticker_message_middleware.py index c51e4fe..bdc7928 100644 --- a/src/middleware/sticker_message_middleware.py +++ b/src/middleware/sticker_message_middleware.py @@ -9,7 +9,6 @@ def __init__(self): def execute(self, command): if(command.get_command() == self.middleware_command): - print('in StickerMessageMiddleware ') command.set_message({'package_id': '1', 'sticker_id': '1'}) command.set_template('StickerMessage') From dc66e95676ec232ea615995eadfe65aaa2ba5405 Mon Sep 17 00:00:00 2001 From: criticalnooks Date: Wed, 27 Sep 2017 18:04:27 +0700 Subject: [PATCH 53/53] remove test file --- test.py | 61 --------------------------------------------------------- 1 file changed, 61 deletions(-) delete mode 100644 test.py diff --git a/test.py b/test.py deleted file mode 100644 index f74d25a..0000000 --- a/test.py +++ /dev/null @@ -1,61 +0,0 @@ -class Bus { - property middlewares = [] - - function run(Command) { - for(middleares as middleware) { - new middlware(Command); - } - } -} - -class Middleware1 { - function constructor(Command) { - var x ; - } -} - -class Bus { - property middlewares = [] - - function run(Command) { - for(middleares as middleware) { - middlware.excute(Command); - } - } -} - -class Middleware1 { - property x; - function constructor(xxxx) { - - } - - function execute(Command) { - if (Command != xxx) { - return; - } - - this.x.bar(command) - } -} - - -class CommandA { - property type = 'vdo'; - property cmd = '/abc'; - - function checkCmd(cmd) { - ..... - } -} - -class CommandA { - property type = 'vdo'; - property cmd = ''; - - -} - - -dependency injection -