| 
									
										
										
										
											2015-02-01 00:49:03 -06:00
										 |  |  | # -*- coding: utf-8 -*- | 
					
						
							|  |  |  | import widgetUtils | 
					
						
							|  |  |  | import output | 
					
						
							| 
									
										
										
										
											2015-08-06 13:16:55 -05:00
										 |  |  | from wxUI.dialogs import userActions | 
					
						
							|  |  |  | from pubsub import pub | 
					
						
							| 
									
										
										
										
											2021-09-26 03:58:25 -05:00
										 |  |  | from tweepy.errors  import TweepyException | 
					
						
							| 
									
										
										
										
											2015-08-06 13:16:55 -05:00
										 |  |  | from extra import autocompletionUsers | 
					
						
							| 
									
										
										
										
											2015-02-01 00:49:03 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | class userActionsController(object): | 
					
						
							| 
									
										
										
										
											2021-06-16 16:18:41 -05:00
										 |  |  |     def __init__(self, buffer, users=[], default="follow"): | 
					
						
							|  |  |  |         super(userActionsController, self).__init__() | 
					
						
							|  |  |  |         self.buffer = buffer | 
					
						
							|  |  |  |         self.session = buffer.session | 
					
						
							|  |  |  |         self.dialog = userActions.UserActionsDialog(users, default) | 
					
						
							|  |  |  |         widgetUtils.connect_event(self.dialog.autocompletion, widgetUtils.BUTTON_PRESSED, self.autocomplete_users) | 
					
						
							|  |  |  |         if self.dialog.get_response() == widgetUtils.OK: | 
					
						
							|  |  |  |             self.process_action() | 
					
						
							| 
									
										
										
										
											2015-02-01 00:49:03 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-16 16:18:41 -05:00
										 |  |  |     def autocomplete_users(self, *args, **kwargs): | 
					
						
							|  |  |  |         c = autocompletionUsers.completion.autocompletionUsers(self.dialog, self.session.session_id) | 
					
						
							|  |  |  |         c.show_menu("dm") | 
					
						
							| 
									
										
										
										
											2015-08-06 13:16:55 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-16 16:18:41 -05:00
										 |  |  |     def process_action(self): | 
					
						
							|  |  |  |         action = self.dialog.get_action() | 
					
						
							|  |  |  |         user = self.dialog.get_user() | 
					
						
							|  |  |  |         if user == "": return | 
					
						
							|  |  |  |         getattr(self, action)(user) | 
					
						
							| 
									
										
										
										
											2015-02-01 00:49:03 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-16 16:18:41 -05:00
										 |  |  |     def follow(self, user): | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             self.session.twitter.create_friendship(screen_name=user ) | 
					
						
							| 
									
										
										
										
											2021-09-26 03:58:25 -05:00
										 |  |  |         except TweepyException  as err: | 
					
						
							| 
									
										
										
										
											2021-10-07 09:20:06 -05:00
										 |  |  |             output.speak("Error %s" % (str(err)), True) | 
					
						
							| 
									
										
										
										
											2015-02-01 00:49:03 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-16 16:18:41 -05:00
										 |  |  |     def unfollow(self, user): | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             id = self.session.twitter.destroy_friendship(screen_name=user ) | 
					
						
							| 
									
										
										
										
											2021-09-26 03:58:25 -05:00
										 |  |  |         except TweepyException as err: | 
					
						
							| 
									
										
										
										
											2021-10-07 09:20:06 -05:00
										 |  |  |             output.speak("Error %s" % (str(err)), True) | 
					
						
							| 
									
										
										
										
											2015-02-01 00:49:03 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-16 16:18:41 -05:00
										 |  |  |     def mute(self, user): | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             id = self.session.twitter.create_mute(screen_name=user ) | 
					
						
							| 
									
										
										
										
											2021-09-26 03:58:25 -05:00
										 |  |  |         except TweepyException as err: | 
					
						
							| 
									
										
										
										
											2021-10-07 09:20:06 -05:00
										 |  |  |             output.speak("Error %s" % (str(err)), True) | 
					
						
							| 
									
										
										
										
											2015-02-01 00:49:03 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-16 16:18:41 -05:00
										 |  |  |     def unmute(self, user): | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             id = self.session.twitter.destroy_mute(screen_name=user ) | 
					
						
							| 
									
										
										
										
											2021-09-26 03:58:25 -05:00
										 |  |  |         except TweepyException as err: | 
					
						
							| 
									
										
										
										
											2021-10-07 09:20:06 -05:00
										 |  |  |             output.speak("Error %s" % (str(err)), True) | 
					
						
							| 
									
										
										
										
											2015-02-01 00:49:03 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-16 16:18:41 -05:00
										 |  |  |     def report(self, user): | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             id = self.session.twitter.report_spam(screen_name=user ) | 
					
						
							| 
									
										
										
										
											2021-09-26 03:58:25 -05:00
										 |  |  |         except TweepyException as err: | 
					
						
							| 
									
										
										
										
											2021-10-07 09:20:06 -05:00
										 |  |  |             output.speak("Error %s" % (str(err)), True) | 
					
						
							| 
									
										
										
										
											2015-02-01 00:49:03 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-16 16:18:41 -05:00
										 |  |  |     def block(self, user): | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             id = self.session.twitter.create_block(screen_name=user ) | 
					
						
							| 
									
										
										
										
											2021-09-26 03:58:25 -05:00
										 |  |  |         except TweepyException as err: | 
					
						
							| 
									
										
										
										
											2021-10-07 09:20:06 -05:00
										 |  |  |             output.speak("Error %s" % (str(err)), True) | 
					
						
							| 
									
										
										
										
											2015-02-01 00:49:03 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-16 16:18:41 -05:00
										 |  |  |     def unblock(self, user): | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             id = self.session.twitter.destroy_block(screen_name=user ) | 
					
						
							| 
									
										
										
										
											2021-09-26 03:58:25 -05:00
										 |  |  |         except TweepyException as err: | 
					
						
							| 
									
										
										
										
											2021-10-07 09:20:06 -05:00
										 |  |  |             output.speak("Error %s" % (str(err)), True) | 
					
						
							| 
									
										
										
										
											2015-02-01 00:49:03 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-16 16:18:41 -05:00
										 |  |  |     def ignore_client(self, user): | 
					
						
							|  |  |  |         tweet = self.buffer.get_right_tweet() | 
					
						
							|  |  |  |         if hasattr(tweet, "sender"): | 
					
						
							|  |  |  |             output.speak(_(u"You can't ignore direct messages")) | 
					
						
							|  |  |  |             return | 
					
						
							|  |  |  |         client = tweet.source | 
					
						
							|  |  |  |         if client not in self.session.settings["twitter"]["ignored_clients"]: | 
					
						
							|  |  |  |             self.session.settings["twitter"]["ignored_clients"].append(client) | 
					
						
							|  |  |  |             self.session.settings.write() |