fixing some crashes
This commit is contained in:
		
							
								
								
									
										84
									
								
								main.py
									
									
									
									
									
								
							
							
						
						
									
										84
									
								
								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" | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         if len(params) == 0: | ||||||
|             number = 1 |             number = 1 | ||||||
|  |         else: | ||||||
|         if len(params) == 1: |             params_sorted = self.match_reddit_params(params) | ||||||
|             try: |             if params_sorted != None: | ||||||
|                 number = int(params[0]) |                 if len(params_sorted) >= 1: | ||||||
|             except: |                     number = params_sorted[0] | ||||||
|                 try: |                 if len(params_sorted) >= 2: | ||||||
|                     subreddit_name = subnames[str(params[0])] |                     subreddit_name = params_sorted[1] | ||||||
|                 except: |                 if len(params) > 2: | ||||||
|                     self.telegram.send_message("Topic not found") |  | ||||||
|         elif len(params) == 2: |  | ||||||
|             try: |  | ||||||
|                 number = int(params[0]) |  | ||||||
|                 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.") |                     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) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Remy Moll
					Remy Moll