From 33b6000b416c35510c91a260dc9bfdcbfc5eb488 Mon Sep 17 00:00:00 2001 From: Manuel Cortez Date: Wed, 13 Jan 2021 10:32:03 -0600 Subject: [PATCH] Implemented user profile viewer --- src/controller/user.py | 78 +++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/src/controller/user.py b/src/controller/user.py index 9fb07388..9293b5c7 100644 --- a/src/controller/user.py +++ b/src/controller/user.py @@ -6,7 +6,7 @@ import output from wxUI.dialogs import update_profile, show_user import logging log = logging.getLogger("controller.user") -from twython import TwythonError +from tweepy.error import TweepError from sessions.twitter import utils class profileController(object): @@ -24,36 +24,36 @@ class profileController(object): else: try: self.get_data(screen_name=self.user) - except TwythonError as err: - if err.error_code == 404: + except TweepError as err: + if err.api_code == 50: wx.MessageDialog(None, _(u"That user does not exist"), _(u"Error"), wx.ICON_ERROR).ShowModal() - if err.error_code == 403: + if err.api_code == 403: wx.MessageDialog(None, _(u"User has been suspended"), _(u"Error"), wx.ICON_ERROR).ShowModal() - log.error("error %d: %s" % (err.error_code, err.msg)) + log.error("error %d: %s" % (err.api_code, err.reason)) return self.dialog = show_user.showUserProfile() string = self.get_user_info() self.dialog.set("text", string) - self.dialog.set_title(_(u"Information for %s") % (self.data["screen_name"])) - if self.data["url"] != None: + self.dialog.set_title(_(u"Information for %s") % (self.data.screen_name)) + if self.data.url != None: self.dialog.enable_url() widgetUtils.connect_event(self.dialog.url, widgetUtils.BUTTON_PRESSED, self.visit_url) if self.dialog.get_response() == widgetUtils.OK and self.user == None: self.do_update() def get_data(self, screen_name): - self.data = self.session.twitter.show_user(screen_name=screen_name) + self.data = self.session.twitter.get_user(screen_name=screen_name) if screen_name != self.session.db["user_name"]: self.friendship_status = self.session.twitter.show_friendship(source_screen_name=self.session.db["user_name"], target_screen_name=screen_name) def fill_profile_fields(self): - self.dialog.set_name(self.data["name"]) - if self.data["url"] != None: - self.dialog.set_url(self.data["url"]) - if len(self.data["location"]) > 0: - self.dialog.set_location(self.data["location"]) - if len(self.data["description"]) > 0: - self.dialog.set_description(self.data["description"]) + self.dialog.set_name(self.data.name) + if self.data.url != None: + self.dialog.set_url(self.data.url) + if len(self.data.location) > 0: + self.dialog.set_location(self.data.location) + if len(self.data.description) > 0: + self.dialog.set_description(self.data.description) def get_image(self): file = self.dialog.upload_picture() @@ -83,46 +83,46 @@ class profileController(object): if self.file != None: try: self.session.twitter.update_profile_image(image=self.file) - except TwythonError as e: - output.speak(u"Error %s. %s" % (e.error_code, e.msg)) + except TweepError as e: + output.speak(u"Error %s. %s" % (e.api_code, e.reason)) try: self.session.twitter.update_profile(name=name, description=description, location=location, url=url) - except TwythonError as e: - output.speak(u"Error %s. %s" % (e.error_code, e.msg)) + except TweepError as e: + output.speak(u"Error %s. %s" % (e.api_code, e.reason)) def get_user_info(self): string = u"" - string = string + _(u"Username: @%s\n") % (self.data["screen_name"]) - string = string + _(u"Name: %s\n") % (self.data["name"]) - if self.data["location"] != "": - string = string + _(u"Location: %s\n") % (self.data["location"]) - if self.data["url"] != None: - string = string+ _(u"URL: %s\n") % (self.data["entities"]["url"]["urls"][0]["expanded_url"]) - if self.data["description"] != "": - if self.data["entities"].get("description") != None and self.data["entities"]["description"].get("urls"): - self.data["description"] = utils.expand_urls(self.data["description"], self.data["entities"]["description"]) - string = string+ _(u"Bio: %s\n") % (self.data["description"]) - if self.data["protected"] == True: protected = _(u"Yes") + string = string + _(u"Username: @%s\n") % (self.data.screen_name) + string = string + _(u"Name: %s\n") % (self.data.name) + if self.data.location != "": + string = string + _(u"Location: %s\n") % (self.data.location) + if self.data.url != None: + string = string+ _(u"URL: %s\n") % (self.data.entities["url"]["urls"][0]["expanded_url"]) + if self.data.description != "": + if self.data.entities.get("description") != None and self.data.entities["description"].get("urls"): + self.data.description = utils.expand_urls(self.data.description, self.data.entities["description"]) + string = string+ _(u"Bio: %s\n") % (self.data.description) + if self.data.protected == True: protected = _(u"Yes") else: protected = _(u"No") string = string+ _(u"Protected: %s\n") % (protected) if hasattr(self, "friendship_status"): relation = False friendship = "Relationship: " - if self.friendship_status["relationship"]["target"]["followed_by"]: - friendship += _(u"You follow {0}. ").format(self.data["name"],) + if self.friendship_status[0].following: + friendship += _(u"You follow {0}. ").format(self.data.name,) relation = True - if self.friendship_status["relationship"]["target"]["following"]: - friendship += _(u"{0} is following you.").format(self.data["name"],) + if self.friendship_status[1].following: + friendship += _(u"{0} is following you.").format(self.data.name,) relation = True if relation == True: string = string+friendship+"\n" - string = string+_(u"Followers: %s\n Friends: %s\n") % (self.data["followers_count"], self.data["friends_count"]) - if self.data["verified"] == True: verified = _(u"Yes") + string = string+_(u"Followers: %s\n Friends: %s\n") % (self.data.followers_count, self.data.friends_count) + if self.data.verified == True: verified = _(u"Yes") else: verified = _(u"No") string = string+ _(u"Verified: %s\n") % (verified) - string = string+ _(u"Tweets: %s\n") % (self.data["statuses_count"]) - string = string+ _(u"Likes: %s") % (self.data["favourites_count"]) + string = string+ _(u"Tweets: %s\n") % (self.data.statuses_count) + string = string+ _(u"Likes: %s") % (self.data.favourites_count) return string def visit_url(self, *args, **kwargs): - webbrowser.open_new_tab(self.data["url"]) \ No newline at end of file + webbrowser.open_new_tab(self.data.url) \ No newline at end of file