-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfsm.py
345 lines (278 loc) Β· 9.76 KB
/
fsm.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
from transitions.extensions import GraphMachine
from utils import send_text_message, send_text_button, send_hot, send_new, send_search, send_text_drama_button, send_drama, send_taiwan_hot_movie, send_usa_hot_movie, send_new_movie
from utils import send_back
class TocMachine(GraphMachine):
def __init__(self, **machine_configs):
self.machine = GraphMachine(model=self, **machine_configs)
# 1 handle error
def is_going_to_help(self, event):
button = ["ζ¬ζη±ι", "ζθΏζ°δ½", "ζε°εη«", "η±ιθ¨θ«", "ηΈιζ°θ",
"η±ιι»ε½±", "η±ιηΎε", "ζε°ι»ε½±ηΎε",
"ε°η£η₯¨ζΏ","ηΎεη₯¨ζΏ","ζ¬ε¨δΈζ ",
"η±ιζ²ε", "η±ιηΆθ","εεη±ιζ²ε"]
text = event.message.text
if text not in button:
return True
# return text.lower() == "go to state1"
def on_enter_help(self, event):
print("I'm entering help\n")
reply_token = event.reply_token
send_text_button(reply_token, "θ«θΌΈε
₯ ...")
self.go_back()
def on_exit_help(self):
print("Leaving help")
#2 ζε°εη«
def is_going_to_search(self, event):
text = event.message.text
return text.lower() == "ζε°εη«"
def on_enter_search(self, event):
print("I'm entering search")
reply_token = event.reply_token
send_text_message(reply_token, "θ«θΌΈε
₯εζΌ«ε稱")
# self.go_back()
def on_exit_search(self, *args, **kwargs):
print("Leaving search")
# 2.1 search name -----------------------------------------
def is_going_to_name(self, event):
text = event.message.text
# return text.lower() == "go to search"
return True
def on_enter_name(self, event):
print("I'm entering name")
reply_token = event.reply_token
text = event.message.text
print(text +'\n')
send_search(reply_token, text)
send_back(reply_token)
def on_exit_name(self, *args, **kwargs):
print("Leaving name")
#3 η±ιθ¨θ«
def is_going_to_discussion(self, event):
text = event.message.text
return text.lower() == "eat"
def on_enter_discussion(self, event):
print("I'm entering discussion\n")
reply_token = event.reply_token
send_text_message(reply_token, "η±ιθ¨θ«...")
self.go_back()
def on_exit_discussion(self):
print("Leaving discussion\n")
#4 ζ¬ζη±ι
def is_going_to_hot(self, event):
text = event.message.text
return text.lower() == "ζ¬ζη±ι"
def on_enter_hot(self, event):
print("I'm entering hot\n")
reply_token = event.reply_token
send_hot(reply_token)
self.go_back()
def on_exit_hot(self):
print("Leaving hot\n")
#5 ζθΏζ°δ½
def is_going_to_new(self, event):
if event.message.text:
text = event.message.text
return text.lower() == "ζθΏζ°δ½"
else:
return False
def on_enter_new(self, event):
print("I'm entering new\n")
reply_token = event.reply_token
send_new(reply_token)
self.go_back()
def on_exit_new(self):
print("Leaving new\n")
# ------------------------------------------------------------------
# movie
# taiwan movie
def is_going_to_taiwan(self, event):
if event.message.text:
text = event.message.text
return text.lower() == "ε°η£η₯¨ζΏ"
else:
return False
def on_enter_taiwan(self, event):
print("I'm entering tw\n")
reply_token = event.reply_token
send_taiwan_hot_movie(reply_token)
self.go_back()
def on_exit_taiwan(self):
print("Leaving tw\n")
# usa movie
def is_going_to_usa(self, event):
if event.message.text:
text = event.message.text
return text.lower() == "ηΎεη₯¨ζΏ"
else:
return False
def on_enter_usa(self, event):
print("I'm entering usa\n")
reply_token = event.reply_token
send_usa_hot_movie(reply_token)
self.go_back()
def on_exit_usa(self):
print("Leaving usa\n")
# week movie
def is_going_to_week(self, event):
if event.message.text:
text = event.message.text
return text.lower() == "ζ¬ε¨δΈζ "
else:
return False
def on_enter_week(self, event):
print("I'm entering week\n")
reply_token = event.reply_token
send_new_movie(reply_token)
self.go_back()
def on_exit_week(self):
print("Leaving week")
# -----------------------------------------------------------------------
# drama
# hot drama
def is_going_to_hot_drama(self, event):
if event.message.text:
text = event.message.text
return text.lower() == "η±ιζ²ε"
else:
return False
def on_enter_hot_drama(self, event):
print("I'm entering ζ²ε\n")
reply_token = event.reply_token
send_drama(reply_token, "hot")
self.go_back()
def on_exit_hot_drama(self):
print("Leaving ζ²ε")
# hot taiwan
def is_going_to_hot_taiwan(self, event):
if event.message.text:
text = event.message.text
return text.lower() == "η±ιηΆθ"
else:
return False
def on_enter_hot_taiwan(self, event):
print("I'm entering ηΆθ\n")
reply_token = event.reply_token
send_drama(reply_token, "entertain")
self.go_back()
def on_exit_hot_taiwan(self):
print("Leaving ηΆθ")
# type drama εεη±ιζ²ε
def is_going_to_type_drama(self, event):
if event.message.text:
text = event.message.text
return text.lower() == "εεη±ιζ²ε"
else:
return False
def on_enter_type_drama(self, event):
print("I'm entering εεη±ιζ²ε\n")
reply_token = event.reply_token
send_text_drama_button(reply_token)
# self.go_back()
def on_exit_type_drama(self, *args, **kwargs):
print("Leaving εεη±ιζ²ε")
# china
def is_going_to_china(self, event):
if event.message.text:
text = event.message.text
return text.lower() == "η±ιιΈε"
else:
return False
def on_enter_china(self, event):
print("I'm entering china\n")
reply_token = event.reply_token
send_drama(reply_token, "china")
send_back(reply_token)
# self.go_back()
def on_exit_china(self, *args, **kwargs):
print("Leaving china")
# hongkong
def is_going_to_hongkong(self, event):
if event.message.text:
text = event.message.text
return text.lower() == "η±ιζΈ―ε"
else:
return False
def on_enter_hongkong(self, event):
print("I'm entering hongkong\n")
reply_token = event.reply_token
send_drama(reply_token, "hongkong")
send_back(reply_token)
# self.go_back()
def on_exit_hongkong(self, *args, **kwargs):
print("Leaving hongkong")
# japan
def is_going_to_japan(self, event):
if event.message.text:
text = event.message.text
return text.lower() == "η±ιζ₯ε"
else:
return False
def on_enter_japan(self, event):
print("I'm entering japan\n")
reply_token = event.reply_token
send_drama(reply_token, "japan")
send_back(reply_token)
# self.go_back()
def on_exit_japan(self, *args, **kwargs):
print("Leaving japan")
# korea
def is_going_to_korea(self, event):
if event.message.text:
text = event.message.text
return text.lower() == "η±ιιε"
else:
return False
def on_enter_korea(self, event):
print("I'm entering korea\n")
reply_token = event.reply_token
send_drama(reply_token, "korea")
send_back(reply_token)
# self.go_back()
def on_exit_korea(self, *args, **kwargs):
print("Leaving korea")
# america
def is_going_to_america(self, event):
if event.message.text:
text = event.message.text
return text.lower() == "η±ιηΎε"
else:
return False
def on_enter_america(self, event):
print("I'm entering week\n")
reply_token = event.reply_token
send_drama(reply_token, "america")
send_back(reply_token)
# self.go_back()
def on_exit_america(self, *args, **kwargs):
print("Leaving week")
# england
def is_going_to_england(self, event):
if event.message.text:
text = event.message.text
return text.lower() == "η±ιθ±ε"
else:
return False
def on_enter_england(self, event):
print("I'm entering week\n")
reply_token = event.reply_token
send_drama(reply_token, "england")
send_back(reply_token)
# self.go_back()
def on_exit_england(self, *args, **kwargs):
print("Leaving η±ιθ±ε")
# --------------------------------------------------------
# home/back
# back
def is_going_to_home(self, event):
text = event.message.text
return text.lower() == "εε°ι¦ι "
def is_going_to_back(self, event):
text = event.message.text
return text.lower() == "εεδΈζ₯"
def on_enter_back(self, event):
print("I'm entering back\n")
reply_token = event.reply_token
send_back(reply_token)
self.go_back()
def on_exit_back(self):
print("Leaving back")