fixing some crashes
This commit is contained in:
parent
00489535ff
commit
0347aa49d0
86
main.py
86
main.py
@ -299,15 +299,42 @@ class ChatBot():
|
|||||||
self.telegram.send_message("I'm not functional yet. But when I am, it is gonna be legendary!")
|
self.telegram.send_message("I'm not functional yet. But when I am, it is gonna be legendary!")
|
||||||
|
|
||||||
|
|
||||||
|
def match_reddit_params(self, params):
|
||||||
|
"""matches a list of two elements to one int and one string
|
||||||
|
returns int, string or invalid, invalid
|
||||||
|
"""
|
||||||
|
if len(params) == 2:
|
||||||
|
p1 = params[0], p2 = params[1]
|
||||||
|
try:
|
||||||
|
try:
|
||||||
|
r1 = int(p1)
|
||||||
|
r2 = p2
|
||||||
|
except:
|
||||||
|
r2 = int(p2)
|
||||||
|
r1 = p1
|
||||||
|
except:
|
||||||
|
return None
|
||||||
|
|
||||||
|
return [r1, r2]
|
||||||
|
elif len(params) == 1:
|
||||||
|
try:
|
||||||
|
r1 = int(params[0])
|
||||||
|
except:
|
||||||
|
return None
|
||||||
|
return [r1]
|
||||||
|
|
||||||
def bot_tell_joke(self, params):
|
def bot_tell_joke(self, params):
|
||||||
"""Tells you the top joke on r/jokes"""
|
"""Tells you the top joke on r/jokes"""
|
||||||
if len(params) == 0:
|
if len(params) == 0:
|
||||||
number = 1
|
number = 1
|
||||||
elif len(params) == 1:
|
|
||||||
number = int(params[0])
|
|
||||||
else:
|
else:
|
||||||
self.telegram.send_message("Jokes takes only one parameter, the number of jokes.")
|
params_sorted = self.match_reddit_params(params)
|
||||||
return
|
if params_sorted != None:
|
||||||
|
if len(params_sorted) >= 1:
|
||||||
|
number = params_sorted[0]
|
||||||
|
if len(params_sorted) > 1:
|
||||||
|
self.telegram.send_message("Please only specify one argument: the number of jokes")
|
||||||
|
|
||||||
|
|
||||||
joke = reddit.get_random_rising("jokes", number, "text")
|
joke = reddit.get_random_rising("jokes", number, "text")
|
||||||
self.telegram.send_message(joke)
|
self.telegram.send_message(joke)
|
||||||
@ -322,27 +349,18 @@ class ChatBot():
|
|||||||
"biology" : "biologymemes",
|
"biology" : "biologymemes",
|
||||||
"math" : "mathmemes"
|
"math" : "mathmemes"
|
||||||
}
|
}
|
||||||
number = 1
|
|
||||||
|
|
||||||
if len(params) == 1:
|
if len(params) == 0:
|
||||||
try:
|
number = 1
|
||||||
number = int(params[0])
|
else:
|
||||||
except:
|
params_sorted = self.match_reddit_params(params)
|
||||||
try:
|
if params_sorted != None:
|
||||||
subreddit_name = subnames[str(params[0])]
|
if len(params_sorted) >= 1:
|
||||||
except:
|
number = params_sorted[0]
|
||||||
self.telegram.send_message("Topic not found")
|
if len(params_sorted) >= 2:
|
||||||
elif len(params) == 2:
|
subreddit_name = params_sorted[1]
|
||||||
try:
|
if len(params) > 2:
|
||||||
number = int(params[0])
|
self.telegram.send_message("Memes takes 2 parameters: the number of memes, and their topic.")
|
||||||
subreddit_name = subnames[str(params[1]).lower()]
|
|
||||||
except:
|
|
||||||
number = int(params[1])
|
|
||||||
subreddit_name = subnames[str(params[0]).lower()]
|
|
||||||
|
|
||||||
elif len(params) > 2:
|
|
||||||
self.telegram.send_message("Memes takes 2 parameters: the number of memes, and their topic.")
|
|
||||||
return
|
|
||||||
|
|
||||||
urls = reddit.get_random_rising(subreddit_name, number, "photo")
|
urls = reddit.get_random_rising(subreddit_name, number, "photo")
|
||||||
for u in urls:
|
for u in urls:
|
||||||
@ -354,22 +372,22 @@ class ChatBot():
|
|||||||
|
|
||||||
def bot_send_news(self, params):
|
def bot_send_news(self, params):
|
||||||
"""Sends the first entries for new from r/"""
|
"""Sends the first entries for new from r/"""
|
||||||
subreddit_name = "worldnews"
|
|
||||||
subnames = {
|
subnames = {
|
||||||
"germany" : "germannews",
|
"germany" : "germannews",
|
||||||
"france" : "francenews",
|
"france" : "francenews",
|
||||||
"europe" : "eunews",
|
"europe" : "eunews",
|
||||||
"usa" : "usanews"
|
"usa" : "usanews"
|
||||||
}
|
}
|
||||||
if len(params) == 1:
|
if len(params) == 0:
|
||||||
try:
|
subreddit_name = "worldnews"
|
||||||
subreddit_name = subnames[str(params[0]).lower()]
|
else:
|
||||||
except:
|
params_sorted = self.match_reddit_params(params)
|
||||||
self.telegram.send_message("Argument not supported")
|
if params_sorted != None:
|
||||||
return
|
if len(params_sorted) >= 1:
|
||||||
elif len(params) > 1:
|
number = params_sorted[0]
|
||||||
self.telegram.send_message("News takes one argument: the location (world, germany, europe, ...)")
|
if len(params_sorted) > 1:
|
||||||
return
|
self.telegram.send_message("Please only specify one argument: the location")
|
||||||
|
|
||||||
|
|
||||||
text = reddit.get_top(subreddit_name, 10, "text")
|
text = reddit.get_top(subreddit_name, 10, "text")
|
||||||
self.telegram.send_message(text)
|
self.telegram.send_message(text)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user