merl 0.1.2__py3-none-any.whl → 0.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
merl/merl.py
CHANGED
|
@@ -2,20 +2,33 @@
|
|
|
2
2
|
THANK YOU FOR IMPORTING THE MOST USELESS MODULE EVER CREATED!
|
|
3
3
|
I hope you hate it!
|
|
4
4
|
|
|
5
|
-
p.s. Hi, PhoenixSC!
|
|
6
5
|
---O9CreeperBoi
|
|
6
|
+
|
|
7
|
+
p.s. Hi, PhoenixSC!
|
|
7
8
|
"""
|
|
8
9
|
|
|
9
10
|
import time
|
|
10
11
|
import random
|
|
12
|
+
import re
|
|
13
|
+
import merlkov
|
|
11
14
|
|
|
12
15
|
CURSOR_UP = "\033[1A"
|
|
13
16
|
CLEAR = "\x1b[2K"
|
|
14
17
|
CLEAR_LINE = CURSOR_UP + CLEAR
|
|
15
18
|
|
|
19
|
+
match = 0
|
|
20
|
+
global result
|
|
21
|
+
result = 0
|
|
22
|
+
restring = ""
|
|
23
|
+
|
|
24
|
+
# math!
|
|
25
|
+
num = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty", "twenty one", "twenty two", "twenty three", "twenty four", "twenty five", "twenty six", "twenty seven", "twenty eight", "twenty nine", "thirty", "thirty one", "thirty two", "thirty three", "thirty four", "thirty five", "thirty six", "thirty seven", "thirty eight", "thirty nine", "fourty", "fourty one", "fourty two", "fourty three", "fourty four", "fourty five", "fourty six", "fourty seven", "fourty eight", "fourty nine", "fifty", "fifty one", "fifty two", "fifty three", "fifty four", "fifty five", "fifty six", "fifty seven"] # 57
|
|
26
|
+
ope = ["plus", "minus", "times", "divided by"]
|
|
27
|
+
# LMAO merl can only count up to 57 thats crazy.
|
|
28
|
+
|
|
29
|
+
|
|
16
30
|
# Oops! Can't have users cursing in MY module!
|
|
17
|
-
|
|
18
|
-
banned = ["pee", "poo", "fuc", "shi", "damn", " hell ", "nig", "bitc", "craft a", "kil", "unaliv", "die", "slas", "end update", "viola", "dam", "frick", "hecking", "sex", "nut", "virgin", "weed", "sucks", "sybau", "shut up", "shut it", "feral", "shish", "gang", "diarrhea"]
|
|
31
|
+
banned = [" ass", "pee", "poo", "fuc", "shi", "damn", " hell ", "nig", "bitc", "craft a", "kil", "unaliv", "die", "slas", "end update", "viola", "dam", "frick", "hecking", "sex", "nut", "virgin", "weed", "sucks", "sybau", "shut up", "shut it", "feral", "shish", "gang", "diarrhea"]
|
|
19
32
|
|
|
20
33
|
# in case ppl ask about the future!
|
|
21
34
|
future = ["update", "snapshot", "rerelea", "preview", "leak", "spoiler"]
|
|
@@ -34,12 +47,19 @@ copyin = ["i dont know", "i don't know", "language that vi", "ing higher traff",
|
|
|
34
47
|
|
|
35
48
|
mine = ["cho minecr", "int minecr", "minecraft!", "say minecr", "ne plus tw"] # im such a troll
|
|
36
49
|
|
|
37
|
-
#
|
|
50
|
+
# hey merl what can you do
|
|
51
|
+
capable = ["you do anyt", "capab", "able", "calcul", "at can you"]
|
|
52
|
+
|
|
53
|
+
# don't ask what these do.
|
|
38
54
|
m = 0
|
|
55
|
+
num_pattern = "|".join(num)
|
|
56
|
+
ope_pattern = "|".join(ope)
|
|
57
|
+
pattern = rf"\b({num_pattern})\s+((?:{ope_pattern}))\s+({num_pattern})\b"
|
|
39
58
|
|
|
40
|
-
# every single reply possible
|
|
59
|
+
# every single reply possible that is not math related
|
|
41
60
|
reply = {
|
|
42
|
-
"test":["This is a test for ", "Merl's dialogue.
|
|
61
|
+
"test":["This is a test for ", "Merl's dialogue. I can add and subtract!"],
|
|
62
|
+
"cap":["I'm glad you asked! I can", " do basic math with numbers ", "up to fifty seven now. Go on, give ", "me a problem!"],
|
|
43
63
|
"busy":["We are currently experiencing higher ", "traffic than expected. Please wait ", "a moment and resend your last ", "message."],
|
|
44
64
|
"movie":["No. No no no. I am not here to talk ", "about the Minecraft Movie. Can you ", "ask me anything besides that?"],
|
|
45
65
|
"copy":["I'm sorry, but I am designed to be a ", "guide for 'Minecraft', and not to be ", "copied. Can I help you with anything ", "else?"],
|
|
@@ -54,6 +74,39 @@ reply = {
|
|
|
54
74
|
"englishOnly":["I can only provide support in ", "English right now. Can I help ", "you with a question related ", "to 'Minecraft'?"]
|
|
55
75
|
}
|
|
56
76
|
|
|
77
|
+
def checkmath(inp: str):
|
|
78
|
+
num_map = {word: value for word, value in zip(num, range(len(num)))}
|
|
79
|
+
match = re.search(pattern, inp)
|
|
80
|
+
global restring
|
|
81
|
+
if match:
|
|
82
|
+
num1_word = match.group(1)
|
|
83
|
+
ope_word = match.group(2)
|
|
84
|
+
num2_word = match.group(3)
|
|
85
|
+
|
|
86
|
+
num1 = num_map[num1_word]
|
|
87
|
+
num2 = num_map[num2_word]
|
|
88
|
+
global result
|
|
89
|
+
result = None
|
|
90
|
+
|
|
91
|
+
# calculation times uh9gsigohdfbiushegtfd equals great job thats right!!!
|
|
92
|
+
if ope_word == "plus":
|
|
93
|
+
result = num1 + num2
|
|
94
|
+
restring = f"{num1} plus {num2} is {result}."
|
|
95
|
+
elif ope_word == "minus":
|
|
96
|
+
result = num1 - num2
|
|
97
|
+
restring = f"{num1} minus {num2} is {result}."
|
|
98
|
+
elif ope_word == "times":
|
|
99
|
+
result = num1 * num2
|
|
100
|
+
restring = f"{num1} times {num2} is {result}."
|
|
101
|
+
elif ope_word == "divided by":
|
|
102
|
+
if num2 != 0:
|
|
103
|
+
result = num1 / num2
|
|
104
|
+
restring = f"{num1} divided by {num2} equals {result}."
|
|
105
|
+
else:
|
|
106
|
+
restring = "It is not possible to divide by zero."
|
|
107
|
+
else:
|
|
108
|
+
restring = ""
|
|
109
|
+
|
|
57
110
|
|
|
58
111
|
def replyMsg(cate: str):
|
|
59
112
|
a = ""
|
|
@@ -61,6 +114,14 @@ def replyMsg(cate: str):
|
|
|
61
114
|
a = f"{a}{reply[cate][x]}"
|
|
62
115
|
return a
|
|
63
116
|
|
|
117
|
+
def markprintanim(msg: str):
|
|
118
|
+
split_msg = msg.split()
|
|
119
|
+
f = ""
|
|
120
|
+
for x in range(len(split_msg)):
|
|
121
|
+
f = f"{f} {split_msg[x]}"
|
|
122
|
+
if x % 7 == 0: print(""); f = split_msg[x]
|
|
123
|
+
print(CLEAR_LINE, f)
|
|
124
|
+
time.sleep(0.1)
|
|
64
125
|
|
|
65
126
|
def printanim(msg: str):
|
|
66
127
|
split_msg = msg.split()
|
|
@@ -73,6 +134,10 @@ def printanim(msg: str):
|
|
|
73
134
|
|
|
74
135
|
# this is what you send to nerl if you are simply pimply
|
|
75
136
|
def sendRaw(prompt: str):
|
|
137
|
+
global result
|
|
138
|
+
result = None
|
|
139
|
+
checkmath(prompt)
|
|
140
|
+
match = 0
|
|
76
141
|
global m
|
|
77
142
|
if prompt == "copyInput":
|
|
78
143
|
m = 1
|
|
@@ -91,19 +156,24 @@ def sendRaw(prompt: str):
|
|
|
91
156
|
if hour >= 9 and hour <= 16 and random.randint(0, 16) < 4:
|
|
92
157
|
return replyMsg("busy")
|
|
93
158
|
else:
|
|
94
|
-
if any(sub.lower() in prompt.lower() for sub in copyin): return
|
|
159
|
+
if any(sub.lower() in prompt.lower() for sub in copyin): return merlkov.retmark(merlkov.msg_copy)
|
|
95
160
|
elif any(sub.lower() in prompt.lower() for sub in banned): return replyMsg("languageViolation")
|
|
96
|
-
elif any(sub.lower() in prompt.lower() for sub in
|
|
97
|
-
elif any(sub.lower() in prompt.lower() for sub in
|
|
161
|
+
elif any(sub.lower() in prompt.lower() for sub in capable): return replyMsg("cap")
|
|
162
|
+
elif any(sub.lower() in prompt.lower() for sub in future): return merlkov.retmark(merlkov.msg_update)
|
|
163
|
+
elif any(sub.lower() in prompt.lower() for sub in pb): return merlkov.retmark(merlkov.msg_pb)
|
|
98
164
|
elif any(sub.lower() in prompt.lower() for sub in help): return replyMsg("iCanHelp") # can you really?
|
|
99
165
|
elif any(sub.lower() in prompt.lower() for sub in mine): return replyMsg("minecraft")
|
|
100
|
-
elif any(sub.lower() in prompt.lower() for sub in cj): return
|
|
101
|
-
elif any(sub.lower() in prompt.lower() for sub in greet): return
|
|
166
|
+
elif any(sub.lower() in prompt.lower() for sub in cj): return merlkov.retmark(merlkov.msg_movie)
|
|
167
|
+
elif any(sub.lower() in prompt.lower() for sub in greet): return merlkov.retmark(merlkov.msg_greet)
|
|
102
168
|
else:
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
169
|
+
if result != None:
|
|
170
|
+
return restring
|
|
171
|
+
else:
|
|
172
|
+
g = random.randint(0,7)
|
|
173
|
+
if g == 1: return replyMsg("idk2")
|
|
174
|
+
elif g == 2: return replyMsg("englishOnly")
|
|
175
|
+
elif g == 5: return "I can't help with that." # seriously this one is new.
|
|
176
|
+
else: return replyMsg("idk") # ha ha!
|
|
107
177
|
|
|
108
178
|
|
|
109
179
|
# this is what you send to berl if you are fancy pantsy
|
|
@@ -124,6 +194,9 @@ def send(pr: str):
|
|
|
124
194
|
|
|
125
195
|
# tree of importance
|
|
126
196
|
def replyPrint(prompt: str):
|
|
197
|
+
global result
|
|
198
|
+
result = None
|
|
199
|
+
checkmath(prompt)
|
|
127
200
|
time_tuple = time.localtime()
|
|
128
201
|
hour = time_tuple.tm_hour
|
|
129
202
|
global pb, banned, greet, help, cj, copyin
|
|
@@ -131,31 +204,39 @@ def replyPrint(prompt: str):
|
|
|
131
204
|
for x in range(len(reply["busy"])): printanim(reply["busy"][x])
|
|
132
205
|
else:
|
|
133
206
|
if any(sub.lower() in prompt.lower() for sub in copyin):
|
|
134
|
-
|
|
207
|
+
markprintanim(merlkov.retmark(merlkov.msg_copy))
|
|
135
208
|
elif any(sub.lower() in prompt.lower() for sub in banned):
|
|
136
209
|
for x in range(len(reply["languageViolation"])): printanim(reply["languageViolation"][x])
|
|
210
|
+
elif any(sub.lower() in prompt.lower() for sub in capable):
|
|
211
|
+
for x in range(len(reply["cap"])): printanim(reply["cap"][x])
|
|
137
212
|
elif any(sub.lower() in prompt.lower() for sub in future):
|
|
138
|
-
|
|
213
|
+
markprintanim(merlkov.retmark(merlkov.msg_update))
|
|
139
214
|
elif any(sub.lower() in prompt.lower() for sub in pb):
|
|
140
|
-
|
|
215
|
+
markprintanim(merlkov.retmark(merlkov.msg_pb))
|
|
141
216
|
elif any(sub.lower() in prompt.lower() for sub in help):
|
|
142
217
|
for x in range(len(reply["iCanHelp"])): printanim(reply["iCanHelp"][x])
|
|
143
218
|
elif any(sub.lower() in prompt.lower() for sub in mine):
|
|
144
219
|
printanim("Minecraft!") # the thing that won't change.
|
|
145
220
|
elif any(sub.lower() in prompt.lower() for sub in cj):
|
|
146
|
-
|
|
221
|
+
markprintanim(merlkov.retmark(merlkov.msg_movie))
|
|
147
222
|
elif any(sub.lower() in prompt.lower() for sub in greet):
|
|
148
|
-
|
|
223
|
+
markprintanim(merlkov.retmark(merlkov.msg_greet))
|
|
149
224
|
else:
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
for x in range(len(reply["idk2"])): printanim(reply["idk2"][x])
|
|
153
|
-
elif g == 2:
|
|
154
|
-
for x in range(len(reply["englishOnly"])): printanim(reply["englishOnly"][x])
|
|
225
|
+
if result != None:
|
|
226
|
+
printanim(restring)
|
|
155
227
|
else:
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
228
|
+
g = random.randint(0,7)
|
|
229
|
+
if g == 1:
|
|
230
|
+
for x in range(len(reply["idk2"])): printanim(reply["idk2"][x])
|
|
231
|
+
elif g == 2:
|
|
232
|
+
for x in range(len(reply["englishOnly"])): printanim(reply["englishOnly"][x])
|
|
233
|
+
elif g == 3:
|
|
234
|
+
printanim("I can't help with that.")
|
|
235
|
+
# this one is new. they actually said this and idk why.
|
|
236
|
+
else:
|
|
237
|
+
# The statement to end all statements.
|
|
238
|
+
# Behold. The one, the legend, the answer supreme...
|
|
239
|
+
printanim("I don't know.")
|
|
240
|
+
# This won't change, either.
|
|
160
241
|
|
|
161
242
|
|
merl/merlkov.py
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Merl isn't the most intelligent AI, so to mimic that,
|
|
2
|
+
# I will fill them with a bit more... personality! Meet
|
|
3
|
+
# my Markov Chain Engine. Cool, isn't it?
|
|
4
|
+
# Of course, this only adds a *little* variation to
|
|
5
|
+
# Merl's responses, and even then some chains aren't
|
|
6
|
+
# perfect (looking at you, 'msg_pb'!).
|
|
7
|
+
|
|
8
|
+
import random
|
|
9
|
+
|
|
10
|
+
msg_blank = {
|
|
11
|
+
"_init_" : [["1", "2"], [1, 1]],
|
|
12
|
+
" S" : [[" o", " b"],[1, 1]],
|
|
13
|
+
"a" : [["blank"], [1]]
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
msg_test_jackenstien = {
|
|
17
|
+
"_init_" : [["YOUR", "YOU'RE"], [1, 1]],
|
|
18
|
+
"YOUR" : [[" TAKING", " TOO", " LONG"], [3, 1, 1]],
|
|
19
|
+
" TAKING" : [[" TOO"], [1]],
|
|
20
|
+
" TOO" : [[" LONG!", " TOO!"], [2, 1]],
|
|
21
|
+
"YOU'RE" : [[" TAKING", " TOO", " LONG"], [3, 1, 1]]
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
msg_pineapple = {
|
|
25
|
+
"_init_" : [["I", "No, I"], [1, 1]],
|
|
26
|
+
"I" : [[" hate", " don't like"],[1, 1]],
|
|
27
|
+
"No, I" : [[" hate", " don't like"],[1, 1]],
|
|
28
|
+
" hate" : [[" pineapples...", " pineapples!"],[1, 1]],
|
|
29
|
+
" don't like" : [[" pineapples."], [1]]
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
# by the way i made these without using trees or diagrams on sheets of
|
|
33
|
+
# paper, so maybe that's why they're flawed.
|
|
34
|
+
# eh, i'll fix it in the next update. or not. i don't care right now!!
|
|
35
|
+
|
|
36
|
+
msg_update = {
|
|
37
|
+
"_init_" : [["If you", "Do you", "Are you"], [8, 1, 8]],
|
|
38
|
+
"If you" : [[" are asking about the next", " wish to know the next"],[1, 1]],
|
|
39
|
+
" are asking about the next" : [[" update, prerelease, or preview, then", " update, then"],[1, 1]],
|
|
40
|
+
" update, prerelease, or preview, then" : [[" sorry.", " I cannot answer that."],[4, 1]],
|
|
41
|
+
" update, then" : [[" sorry. I don't know that yet.", " sorry, but I don't have the data available to see what it is."],[3, 1]],
|
|
42
|
+
" wish to know the next" : [[" update, then"],[1]],
|
|
43
|
+
" wishing to know the next" : [[" update? If so, I cannot provide that information yet. Is there anything else that I can help you with?"],[1]],
|
|
44
|
+
"Do you" : [[" want to know about the next update? Because I do, too. I don't know what it is, but I'll gladly tell you all about it when it releases!", " want to die?"],[100, 1]], # do you want to die?
|
|
45
|
+
"Are you" : [[" asking about the next", " wishing to know the next"],[1, 1]],
|
|
46
|
+
" asking about the next" : [[" updates? Because I don't know about them either.", " versions/drops of Minecraft? Because I don't know about that, either."],[1, 4]],
|
|
47
|
+
" want to die?" : [[" AGAIN?", "?"], [1, 100]]
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
msg_copy = {
|
|
51
|
+
"_init_" : [["I'm sorry, but", "It appears that you are"], [1, 1]],
|
|
52
|
+
"I'm sorry, but" : [[" as an AI assistant, I", " it appears that you are"],[3, 1]],
|
|
53
|
+
"It appears that you are" : [[" intentionally", " copying"],[1, 2]],
|
|
54
|
+
" it appears that you are" : [[" intentionally", " copying"],[2, 1]],
|
|
55
|
+
" intentionally" : [[" copying"],[1]],
|
|
56
|
+
" copying" : [[" me.", " my most frequent messages."],[1, 1]],
|
|
57
|
+
" me." : [[" Is there"],[1]],
|
|
58
|
+
" as an AI assistant, I" : [[" am designed to be", " cannot stand you."],[100, 1]],
|
|
59
|
+
" am designed to be" : [[" your guide", " a helper for all your Minecraft needs."],[1, 1]],
|
|
60
|
+
" a helper for all your Minecraft needs." : [[" Is there"],[1]],
|
|
61
|
+
" your guide" : [[" to everything", " in regards", " for anything"],[2, 1, 2]],
|
|
62
|
+
" to everything" : [[" related to", " Minecraft."],[1, 1]],
|
|
63
|
+
" related to" : [[" Minecraft."],[1]],
|
|
64
|
+
" in regards" : [[" to everything"],[1]],
|
|
65
|
+
" to everything" : [[" related to Minecraft.", " Minecraft-related."],[1, 1]],
|
|
66
|
+
" related to Minecraft." : [[" Is there"], [1]],
|
|
67
|
+
" Minecraft-related." : [[" Is there"], [1]],
|
|
68
|
+
" Is there" : [[" anything else you want me to", " any other way I could"],[1, 1]],
|
|
69
|
+
" anything else you want me to" : [[" help with,"],[1]],
|
|
70
|
+
" any other way I could" : [[" help?", " help,"],[1, 8]],
|
|
71
|
+
" help with," : [[" besides being something to copy?", " besides being someone to copy?"],[8, 1]],
|
|
72
|
+
" help," : [[" besides being something to copy?", " besides being someone to copy?"],[10, 1]]
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
msg_greet = {
|
|
76
|
+
"_init_" : [["Hello", "Hi", "Greetings!", "..not YOU again."], [100, 100, 100, 1]],
|
|
77
|
+
"Hello" : [[" there", "! I am Merl", "! I am M"],[6, 7, 1]],
|
|
78
|
+
"! I am M" : [["M", "erl"],[9, 5]],
|
|
79
|
+
"M" : [["M", "erl"],[19, 1]],
|
|
80
|
+
"erl" : [[", your"],[1]],
|
|
81
|
+
"Hi" : [[" there", "! I am Merl"],[1, 1]],
|
|
82
|
+
"Greetings!" : [[" I am Merl", " My name is Merl"],[1, 1]],
|
|
83
|
+
" there" : [[", I am Merl", "! I am Merl"],[1, 1]],
|
|
84
|
+
", I am Merl" : [[", your", ". How can I help you today"],[1, 1]],
|
|
85
|
+
"! I am Merl" : [[", your", ". How can I help you today"],[1, 1]],
|
|
86
|
+
" I am Merl" : [[", your", ". How can I help you today"],[1, 1]],
|
|
87
|
+
" My name is Merl" : [[", your", ". How can I help you today"],[1, 1]],
|
|
88
|
+
", your" : [[" assistant for all things Minecraft", " AI-Powered"],[1, 1]],
|
|
89
|
+
" AI-Powered" : [[" assistant for all things Minecraft"],[1]],
|
|
90
|
+
" assistant for all things Minecraft" : [["!"],[1]],
|
|
91
|
+
". How can I help you today" : [[" on the topic of Minecraft?", "?"],[1, 1]]
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
msg_pb = {
|
|
95
|
+
"_init_" : [["Are you", "If you", "Peanut"], [1, 1, 1]],
|
|
96
|
+
"Are you" : [[" asking", " wanting to"],[1, 1]],
|
|
97
|
+
" asking" : [[" about my", " for info on"],[1, 1]],
|
|
98
|
+
" for info on" : [[" Peanut Butter", " my"],[1, 1]],
|
|
99
|
+
" about my" : [[" cat", " pet"],[1, 1]],
|
|
100
|
+
" wanting to" : [[" know more about my", " eat pizza?"],[100, 1]],
|
|
101
|
+
"If you" : [["'re asking about", " want to know more about"],[1, 1]],
|
|
102
|
+
"'re asking about" : [[" my", " Peanut Butter"],[1, 1]],
|
|
103
|
+
" want to know more about" : [[" my", " Peanut Butter"],[1, 1]],
|
|
104
|
+
" know more about my" : [[" cat", " pet"],[1, 1]],
|
|
105
|
+
" my" : [[" cat", " pet"],[1, 1]],
|
|
106
|
+
" pet" : [[" cat"],[1]],
|
|
107
|
+
" cat" : [[" Peanut Butter"],[1]],
|
|
108
|
+
" Peanut Butter" : [[", then sorry. ", ", because "],[1, 1]],
|
|
109
|
+
", then sorry. " : [["Peanut"],[1]],
|
|
110
|
+
", because " : [["Peanut", "%j"],[5, 1]],
|
|
111
|
+
"%j" : [["Peanut", "%j"],[1, 8]],
|
|
112
|
+
"Peanut" : [[" Butter is", " Butter died."],[1, 1]],
|
|
113
|
+
" Butter is" : [[" no longer", " dead.", " is also an AI, like me!"],[3, 3, 1]],
|
|
114
|
+
" no longer" : [[" with us.", " with me.", " alive.", " allowed here. Mojang is kinda cruel."],[6, 6, 6, 1]]
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
msg_movie = {
|
|
118
|
+
"_init_": [["No.", "Sorry", "Nuh uh,"], [4, 2, 1]],
|
|
119
|
+
"No." : [[" No"],[1]],
|
|
120
|
+
" No" : [[" no", " no.", " no!"],[3, 1, 1]],
|
|
121
|
+
" no" : [[" no", " no.", " no!"],[3, 1, 1]],
|
|
122
|
+
" no." : [[" I am NOT", " I will NOT"],[1, 1]],
|
|
123
|
+
" no!" : [[" I am NOT", " I will NOT"],[1, 1]],
|
|
124
|
+
"Nuh uh," : [[" I am NOT", " I will NOT"],[1, 1]],
|
|
125
|
+
" I am NOT" : [[" going to"],[1]],
|
|
126
|
+
" going to" : [[" talk about"],[1]],
|
|
127
|
+
" I will NOT" : [[" talk about"], [1]],
|
|
128
|
+
" talk about" : [[" 'A Minecraft Movie'.", " the movie."],[1, 1]],
|
|
129
|
+
"Sorry" : [[", but I don't", " about your"],[5, 1]],
|
|
130
|
+
" about your" : [[" interest in", " stupid phase concerning"],[100, 1]],
|
|
131
|
+
" interest in" : [[" 'A Minecraft Movie'.", " the movie."],[1, 1]],
|
|
132
|
+
", but I don't" : [[" feel like talking about", " want to"],[1, 1]],
|
|
133
|
+
" want to" : [[" talk about"],[1]],
|
|
134
|
+
" feel like talking about" : [[" 'A Minecraft Movie'.", " the movie."],[1, 1]]
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
def retmark(d: dict):
|
|
138
|
+
final = ""
|
|
139
|
+
cur = "_init_"
|
|
140
|
+
while True:
|
|
141
|
+
if cur in d.keys():
|
|
142
|
+
cur = random.choices(d[cur][0], d[cur][1])[0]
|
|
143
|
+
final = f"{final}{cur}"
|
|
144
|
+
else: break
|
|
145
|
+
return final
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: merl
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary: A useless python
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: A useless python library, aiming to emulate (not fetch/embed) the Merl experience found on the minecraft.net help page! Again, this is NOT the real Merl, but a really close copy! If you use it enough!
|
|
5
5
|
Home-page: https://github.com/O9Creeps/merl
|
|
6
6
|
Author: O9CreeperBoi
|
|
7
7
|
Author-email: example@example.com
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
merl/__init__.py,sha256=z--UomdGJ1AOwNBeHlMD0uip2ehFLn8Lp_x3UP8JpHw,20
|
|
2
|
+
merl/merl.py,sha256=xQjmldyt9aysDcztCxlboRwiNLTXW6slKKxXeP0hsII,10026
|
|
3
|
+
merl/merlkov.py,sha256=O18_lnLsF1TVUsgFiRf_OJGzPnXXt3w7EwCTzo7WB0Y,7042
|
|
4
|
+
merl-0.2.0.dist-info/METADATA,sha256=Ti4nzkOfUPe78TF12PpKyK_ECvR9afuLOHH8agn1BX8,953
|
|
5
|
+
merl-0.2.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
6
|
+
merl-0.2.0.dist-info/top_level.txt,sha256=ivpualOj-EqXImlSl3Kb5GKJB1jlzFwn2anAsxaKgXA,5
|
|
7
|
+
merl-0.2.0.dist-info/RECORD,,
|
merl-0.1.2.dist-info/RECORD
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
merl/__init__.py,sha256=z--UomdGJ1AOwNBeHlMD0uip2ehFLn8Lp_x3UP8JpHw,20
|
|
2
|
-
merl/merl.py,sha256=DuRXs--cjHUYXCywUc3VqPBLvoq3k1tewMD9fablnEY,6810
|
|
3
|
-
merl-0.1.2.dist-info/METADATA,sha256=rDCunDQNYowjxLc_jyTRTR0dSbh-CbrYfZG8tK_y6Es,777
|
|
4
|
-
merl-0.1.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
5
|
-
merl-0.1.2.dist-info/top_level.txt,sha256=ivpualOj-EqXImlSl3Kb5GKJB1jlzFwn2anAsxaKgXA,5
|
|
6
|
-
merl-0.1.2.dist-info/RECORD,,
|
|
File without changes
|