tornadoでつくったLine bot
Revision | 92d9b6212a94497256c0b581ac05ef5ebd564594 (tree) |
---|---|
Time | 2018-09-11 22:12:03 |
Author | yamat0jp <yamat0jp@yaho...> |
Commiter | yamat0jp |
update
@@ -53,14 +53,10 @@ class WebHookHandler(tornado.web.RequestHandler): | ||
53 | 53 | return ans |
54 | 54 | |
55 | 55 | def setting(self, dbname): |
56 | - client = pymongo.MongoClient(uri)[ac] | |
57 | - if dbname in client.collection_names(include_system_collections=False): | |
58 | - db = client['users'] | |
56 | + if dbname in self.database.collection_names(include_system_collections=False): | |
57 | + db = self.database['users'] | |
59 | 58 | item = db.find_one({'name':self.uid}) |
60 | - if not item: | |
61 | - db.insert({'name':self.uid, 'dbname':dbname}) | |
62 | - return True | |
63 | - elif item['dbname'] == dbname: | |
59 | + if item['dbname'] == dbname: | |
64 | 60 | return False |
65 | 61 | else: |
66 | 62 | db.update({'name':self.uid}, {'name':self.uid, 'dbname':dbname}) |
@@ -68,16 +64,11 @@ class WebHookHandler(tornado.web.RequestHandler): | ||
68 | 64 | return False |
69 | 65 | |
70 | 66 | def users(self): |
71 | - client = pymongo.MongoClient(uri)[ac] | |
72 | - db = client['users'] | |
67 | + db = self.database['users'] | |
73 | 68 | item = db.find_one({'name':self.uid}) |
74 | - if item: | |
75 | - x = item['dbname'] | |
76 | - return client[x], x | |
77 | - else: | |
78 | - db.insert({'name':self.uid, 'dbname':'glove'}) | |
79 | - return client['glove'], 'glove' | |
80 | - | |
69 | + x = item['dbname'] | |
70 | + return self.database[x], x | |
71 | + | |
81 | 72 | def post(self): |
82 | 73 | ''' |
83 | 74 | signature = self.request.headers['X-Line-Signature'] |
@@ -91,9 +82,18 @@ class WebHookHandler(tornado.web.RequestHandler): | ||
91 | 82 | ''' |
92 | 83 | dic = tornado.escape.json_decode(self.request.body) |
93 | 84 | for event in dic['events']: |
94 | - if 'replyToken' in event: | |
95 | - x = event['message']['text'] | |
85 | + if 'replyToken' in event.keys(): | |
96 | 86 | self.uid = event['source']['userId'] |
87 | + self.database = pymongo.MongoClient(uri)[ac] | |
88 | + if event['type'] == 'unfollow': | |
89 | + self.database['users'].remove({'name':self.uid}) | |
90 | + return | |
91 | + elif event['type'] == 'join': | |
92 | + db = self.database['users'] | |
93 | + if not db.find_one({'name':self.uid}): | |
94 | + db.insert({'name':self.uid, 'dbname':'glove'}) | |
95 | + return | |
96 | + x = event['message']['text'] | |
97 | 97 | if self.setting(x): |
98 | 98 | linebot.reply_message(event['replyToken'], |
99 | 99 | TextSendMessage(text=u'設定完了.')) |