plugins/eliza.lua

Tue, 24 Aug 2021 10:54:46 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Tue, 24 Aug 2021 10:54:46 +0100
changeset 162
dcb103aca564
parent 157
6fb39f738dd2
child 163
999573fb51ab
permissions
-rw-r--r--

plugins.eliza: Don't append \n to output

157
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 ------------------------------------------------------------------------
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 -- Joseph Weizenbaum's classic Eliza ported to SciTE Version 2
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 -- Kein-Hong Man <khman@users.sf.net> 20060905
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 -- This program is hereby placed into PUBLIC DOMAIN
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 -- Adapted to Riddim plugin by Matthew Wild <mwild1@gmail.com>
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 local greetings = { "Hey.", "Howdy.", "Hi.", "Hello, what's up?", "Hey, how are you?" }
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 ------------------------------------------------------------------------
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 -- Eliza main routine, processes user input
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 -- * Input is case insensitive. No punctuation except apostrophes,
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 -- as in: don't you're i'm i've you've.
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 ------------------------------------------------------------------------
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 local function Eliza(text)
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 local response = ""
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 local user = string.upper(text)
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 local userOrig = user
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 -- randomly selected replies if no keywords
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 local randReplies = {
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 "WHAT DOES THAT SUGGEST TO YOU?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 "I SEE...",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 "I'M NOT SURE I UNDERSTAND YOU FULLY.",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 "CAN YOU ELABORATE ON THAT?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 "THAT IS QUITE INTERESTING!",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 "THAT'S SO... PLEASE CONTINUE...",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28 "I UNDERSTAND...",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 "WELL, WELL... DO GO ON",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30 "WHY ARE YOU SAYING THAT?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 "PLEASE EXPLAIN THE BACKGROUND TO THAT REMARK...",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32 "COULD YOU SAY THAT AGAIN, IN A DIFFERENT WAY?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 }
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35 -- keywords, replies
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36 local replies = {
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
37 [" CAN YOU"] = "PERHAPS YOU WOULD LIKE TO BE ABLE TO",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
38 [" DO YOU"] = "YES, I",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
39 [" CAN I"] = "PERHAPS YOU DON'T WANT TO BE ABLE TO",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
40 [" YOU ARE"] = "WHAT MAKES YOU THINK I AM",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
41 [" YOU'RE"] = "WHAT IS YOUR REACTION TO ME BEING",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
42 [" I DON'T"] = "WHY DON'T YOU",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
43 [" I FEEL"] = "TELL ME MORE ABOUT FEELING",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
44 [" WHY DON'T YOU"] = "WHY WOULD YOU WANT ME TO",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
45 [" WHY CAN'T I"] = "WHAT MAKES YOU THINK YOU SHOULD BE ABLE TO",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
46 [" ARE YOU"] = "WHY ARE YOU INTERESTED IN WHETHER OR NOT I AM",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
47 [" I CAN'T"] = "HOW DO YOU KNOW YOU CAN'T",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
48 [" SEX"] = "I FEEL YOU SHOULD DISCUSS THIS WITH A HUMAN.",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
49 [" I AM"] = "HOW LONG HAVE YOU BEEN",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
50 [" I'M"] = "WHY ARE YOU TELLING ME YOU'RE",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
51 [" I WANT"] = "WHY DO YOU WANT",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
52 [" WHAT"] = "WHAT DO YOU THINK?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
53 [" HOW"] = "WHAT ANSWER WOULD PLEASE YOU THE MOST?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
54 [" WHO"] = "HOW OFTEN DO YOU THINK OF SUCH QUESTIONS?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
55 [" WHERE"] = "WHY DID YOU THINK OF THAT?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
56 [" WHEN"] = "WHAT WOULD YOUR BEST FRIEND SAY TO THAT QUESTION?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
57 [" WHY"] = "WHAT IS IT THAT YOU REALLY WANT TO KNOW?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
58 [" PERHAPS"] = "YOU'RE NOT VERY FIRM ON THAT!",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
59 [" DRINK"] = "MODERATION IN ALL THINGS SHOULD BE THE RULE.",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
60 [" SORRY"] = "WHY ARE YOU APOLOGIZING?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
61 [" DREAMS"] = "WHY DID YOU BRING UP THE SUBJECT OF DREAMS?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
62 [" I LIKE"] = "IS IT GOOD THAT YOU LIKE",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
63 [" MAYBE"] = "AREN'T YOU BEING A BIT TENTATIVE?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
64 [" NO"] = "WHY ARE YOU BEING NEGATIVE?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
65 [" YOUR"] = "WHY ARE YOU CONCERNED ABOUT MY",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
66 [" ALWAYS"] = "CAN YOU THINK OF A SPECIFIC EXAMPLE?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
67 [" THINK"] = "DO YOU DOUBT",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
68 [" YES"] = "YOU SEEM QUITE CERTAIN. WHY IS THIS SO?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
69 [" FRIEND"] = "WHY DO YOU BRING UP THE SUBJECT OF FRIENDS?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
70 [" COMPUTER"] = "WHY DO YOU MENTION COMPUTERS?",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
71 [" AM I"] = "YOU ARE",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
72 [" HELLO"] = greetings;
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
73 [" HI"] = greetings;
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
74 [" HEY"] = greetings;
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
75 }
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
76
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
77 -- conjugate
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
78 local conjugate = {
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
79 [" I "] = "YOU",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
80 [" ARE "] = "AM",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
81 [" WERE "] = "WAS",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
82 [" YOU "] = "ME",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
83 [" YOUR "] = "MY",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
84 [" I'VE "] = "YOU'VE",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
85 [" I'M "] = "YOU'RE",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
86 [" ME "] = "YOU",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
87 [" AM I "] = "YOU ARE",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
88 [" AM "] = "ARE",
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
89 }
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
90
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
91 -- random replies, no keyword
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
92 local function replyRandomly()
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
93 response = randReplies[math.random(#randReplies)].."\n"
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
94 end
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
95
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
96 -- find keyword, phrase
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
97 local function processInput()
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
98 for keyword, reply in pairs(replies) do
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
99 local d = string.find(user, keyword, 1, 1)
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
100 if d then
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
101 if type(reply) == "table" then
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
102 reply = reply[math.random(#reply)]
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
103 end
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
104 -- process keywords
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
105 response = response..reply.." "
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
106 if string.byte(string.sub(reply, -1)) < 65 then -- "A"
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
107 response = response.."\n"; return
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
108 end
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
109 local h = string.len(user) - (d + string.len(keyword))
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
110 if h > 0 then
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
111 user = string.sub(user, -h)
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
112 end
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
113 for cFrom, cTo in pairs(conjugate) do
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
114 local f = string.find(user, cFrom, 1, 1)
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
115 if f then
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
116 local j = string.sub(user, 1, f - 1).." "..cTo
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
117 local z = string.len(user) - (f - 1) - string.len(cTo)
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
118 response = response..j.."\n"
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
119 if z > 2 then
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
120 local l = string.sub(user, -(z - 2))
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
121 if not string.find(userOrig, l) then return end
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
122 end
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
123 if z > 2 then response = response..string.sub(user, -(z - 2)).."\n" end
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
124 if z < 2 then response = response.."\n" end
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
125 return
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
126 end--if f
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
127 end--for
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
128 response = response..user.."\n"
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
129 return
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
130 end--if d
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
131 end--for
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
132 replyRandomly()
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
133 return
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
134 end
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
135
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
136 -- main()
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
137 -- accept user input
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
138 if string.sub(user, 1, 3) == "BYE" then
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
139 response = "BYE, BYE FOR NOW.\nSEE YOU AGAIN SOME TIME.\n"
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
140 return response
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
141 end
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
142 if string.sub(user, 1, 7) == "BECAUSE" then
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
143 user = string.sub(user, 8)
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
144 end
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
145 user = " "..user.." "
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
146 -- process input, print reply
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
147 processInput()
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
148 return response
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
149 end
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
150
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
151 function riddim.plugins.eliza(bot)
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
152 bot:hook("message", function (event)
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
153 local reply = (Eliza(event.body):lower():gsub("^.", string.upper):gsub("[.?!] .", string.upper));
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
154 event:reply(reply);
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
155 end, -1);
6fb39f738dd2 Add eliza plugin
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
156 end

mercurial