From 141d8fa1050747778739c914c1e7477eea519143 Mon Sep 17 00:00:00 2001 From: Bill Dengler Date: Sun, 12 Apr 2015 17:42:02 -0400 Subject: [PATCH 1/3] Improved strings for sounds tutorial. --- .../soundsTutorial_constants.py | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/src/extra/SoundsTutorial/soundsTutorial_constants.py b/src/extra/SoundsTutorial/soundsTutorial_constants.py index 9af85ee2..1f79dd5f 100644 --- a/src/extra/SoundsTutorial/soundsTutorial_constants.py +++ b/src/extra/SoundsTutorial/soundsTutorial_constants.py @@ -1,25 +1,25 @@ # -*- coding: utf-8 -*- -actions = [ ("audio", _(u"The tweet may contain a playable audio")), - ("create_timeline", _(u"A timeline has been created")), - ("delete_timeline", _(u"A timeline has been deleted")), - ("dm_received", _(u"You've received a direct message")), - ("dm_sent", _(u"You've sent a direct message")), - ("error", _(u"A bug has happened")), - ("favourite", _(u"You've added a tweet to your favourites")), - ("favourites_timeline_updated", _(u"Someone's favourites have been updated")), - ("geo", _(u"The tweet has coordinates to determine its location")), -("limit", _(u"There are no more tweets to read")), - ("list_tweet", _(u"A list has a new tweet")), - ("max_length", _(u"You can't add any more characters on the tweet")), - ("mention_received", _(u"You've been mentioned ")), - ("new_event", _(u"A new event has happened")), - ("ready", _(u"TW Blue is ready ")), - ("reply_send", _(u"You've replied")), - ("retweet_send", _(u"You've retweeted")), - ("search_updated", _(u"A search has been updated")), - ("tweet_received", _(u"There's a new tweet in the main buffer")), - ("tweet_send", _(u"You've sent a tweet")), - ("trends_updated", _(u"A trending topic buffer has been updated")), - ("tweet_timeline", _(u"There's a new tweet in a timeline")), - ("update_followers", _(u"You have a new follower")), - ("volume_changed", _(u"You've turned the volume up or down"))] \ No newline at end of file +actions = [ ("audio", _(u"Audio tweet.")), + ("create_timeline", _(u"User-defined buffer created.")), + ("delete_timeline", _(u"User-defined buffer destroied.")), + ("dm_received", _(u"Direct message received.")), + ("dm_sent", _(u"Direct message sent.")), + ("error", _(u"Error.")), + ("favourite", _(u"You favorited a tweet.")), + ("favourites_timeline_updated", _(u"Someone's favourites have been updated.")), + ("geo", _(u"Geotweet.")), +("limit", _(u"Boundary reached.")), + ("list_tweet", _(u"List updated.")), + ("max_length", _(u"Too many characters.")), + ("mention_received", _(u"You've been mentioned.")), + ("new_event", _(u"New event.")), + ("ready", _(u"Application is ready.")), + ("reply_send", _(u"You've replied publicly.")), + ("retweet_send", _(u"You've retweeted.")), + ("search_updated", _(u"A search buffer has been updated.")), + ("tweet_received", _(u"New tweet in home buffer.")), + ("tweet_send", _(u"You've sent a tweet.")), + ("trends_updated", _(u"A trending topic buffer has been updated.")), + ("tweet_timeline", _(u"New tweet in user-defined buffer.")), + ("update_followers", _(u"New follower.")), + ("volume_changed", _(u"Volume changed."))] \ No newline at end of file From 21c6a999b45fd0501e12b56c0a85161e065fa1b1 Mon Sep 17 00:00:00 2001 From: Bill Dengler Date: Sun, 12 Apr 2015 18:16:19 -0400 Subject: [PATCH 2/3] The sounds tutorial is now sorted in alphabetical order. --- src/extra/SoundsTutorial/reverse_sort.py | 11 +++++++++++ src/extra/SoundsTutorial/soundsTutorial.py | 3 +++ 2 files changed, 14 insertions(+) create mode 100644 src/extra/SoundsTutorial/reverse_sort.py diff --git a/src/extra/SoundsTutorial/reverse_sort.py b/src/extra/SoundsTutorial/reverse_sort.py new file mode 100644 index 00000000..854582a9 --- /dev/null +++ b/src/extra/SoundsTutorial/reverse_sort.py @@ -0,0 +1,11 @@ +#Reverse sort, by Bill Dengler for use in TWBlue http://twblue.es +def invert_tuples(t): + "Invert a list of tuples, so that the 0th element becomes the -1th, and the -1th becomes the 0th." + res=[] + for i in t: + res.append(i[::-1]) + return res + +def reverse_sort(t): + "Sorts a list of tuples/lists by their last elements, not their first." + return invert_tuples(sorted(invert_tuples(t))) \ No newline at end of file diff --git a/src/extra/SoundsTutorial/soundsTutorial.py b/src/extra/SoundsTutorial/soundsTutorial.py index 37d9643a..ff469ebf 100644 --- a/src/extra/SoundsTutorial/soundsTutorial.py +++ b/src/extra/SoundsTutorial/soundsTutorial.py @@ -4,6 +4,7 @@ import widgetUtils import os import paths import logging +import reverse_sort log = logging.getLogger("extra.SoundsTutorial.soundsTutorial") import soundsTutorial_constants if platform.system() == "Windows": @@ -22,6 +23,8 @@ class soundsTutorial(object): self.files = [] log.debug("Searching sound files...") [self.files.append(i[0]) for i in soundsTutorial_constants.actions] + log.debug("Alphabetizing actions...") + actions=reverse_sort.reverse_sort(actions) log.debug("Creating dialog...") self.dialog = UI.soundsTutorialDialog(self.actions) widgetUtils.connect_event(self.dialog.play, widgetUtils.BUTTON_PRESSED, self.on_play) From 8d6d452dfbbf0bcefc4bf1f38ab1a625f82787f3 Mon Sep 17 00:00:00 2001 From: Bill Dengler Date: Sun, 12 Apr 2015 19:43:19 -0400 Subject: [PATCH 3/3] Fixed docstrings. --- src/sessionmanager/session.py | 41 +++++++++++++++++------------------ 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/src/sessionmanager/session.py b/src/sessionmanager/session.py index 7cd6a145..cfbff48d 100644 --- a/src/sessionmanager/session.py +++ b/src/sessionmanager/session.py @@ -25,14 +25,14 @@ class Session(object): def _require_login(fn): - """ Decorator for checking if the user is logged (a twitter object has credentials) on twitter. - Some functions may need this to avoid make unneeded twitter API calls.""" + """ Decorator for checking if the user is logged in(a twitter object has credentials) on twitter. + Some functions may need this to avoid making unneeded twitter API calls.""" def f(self, *args, **kwargs): if self.logged == True: fn(self, *args, **kwargs) else: - raise Exceptions.NotLoggedSessionError("You are not logged yet.") + raise Exceptions.NotLoggedSessionError("You are not logged in yet.") return f def _require_configuration(fn): @@ -48,10 +48,10 @@ class Session(object): def order_buffer(self, name, data): - """ Put the new items on the local database. + """ Put the new items in the local database. name str: The name for the buffer stored in the dictionary. data list: A list with tweets. - returns the number of items that has been added in this execution""" + returns the number of items that have been added in this execution""" num = 0 if self.db.has_key(name) == False: @@ -68,7 +68,7 @@ class Session(object): """ Put the new items on the local database. Useful for cursored buffers (followers, friends, users of a list and searches) name str: The name for the buffer stored in the dictionary. data list: A list with items and some information about cursors. - returns the number of items that has been added in this execution""" + returns the number of items that have been added in this execution""" num = 0 if self.db.has_key(name) == False: @@ -118,7 +118,7 @@ class Session(object): @_require_configuration def login(self, verify_credentials=True): - """ Login in to twitter using credentials from settings. + """ Log into twitter using credentials from settings. if the user account isn't authorised, it needs to call self.authorise() before login.""" if self.settings["twitter"]["user_key"] != None and self.settings["twitter"]["user_secret"] != None: @@ -134,7 +134,7 @@ class Session(object): @_require_configuration def authorise(self): - """ Authorises a Twitter account. This function needs to be called for each new session, after of self.get_configuration() and before of self.login()""" + """ Authorises a Twitter account. This function needs to be called for each new session, after self.get_configuration() and before self.login()""" if self.logged == True: raise Exceptions.AlreadyAuthorisedError("The authorisation process is not needed at this time.") @@ -153,14 +153,14 @@ class Session(object): def api_call(self, call_name, action="", _sound=None, report_success=False, report_failure=True, preexec_message="", *args, **kwargs): - """ Make a call to the Twitter API. If there is a connectionError or another exception not related to Twitter, It will call to the method at least 25 times, waiting a while between calls. Useful for post methods. - If twitter returns an error, it will not call anymore the method. + """ Make a call to the Twitter API. If there is a connectionError or another exception not related to Twitter, It will call the method again at least 25 times, waiting a while between calls. Useful for post methods. + If twitter returns an error, it will not call the method anymore. call_name str: The method to call - action str: The thing what you are doing on twitter, it will be reported to the user if report_success is set to True. + action str: What you are doing on twitter, it will be reported to the user if report_success is set to True. for example "following @tw_blue2" will be reported as "following @tw_blue2 succeeded". _sound str: a sound to play if the call is executed properly. - report_success and report_failure bool: These are self explanatory. True or false. It's all. - preexec_message str: A message to speak to the user while the call is doing the work, example: "try to follow to x user".""" + report_success and report_failure bool: These are self explanatory. True or False. + preexec_message str: A message to speak to the user while the method is running, example: "trying to follow x user".""" finished = False tries = 0 @@ -193,8 +193,8 @@ class Session(object): @_require_login def get_favourites_timeline(self, name, *args, **kwargs): - """ Gets favourites for the authenticated user or a friend or follower or somewhat. - name str: Name for store all in the database.""" + """ Gets favourites for the authenticated user or a friend or follower. + name str: Name for storage in the database.""" tl = self.call_paged(self.twitter.twitter.get_favorites, *args, **kwargs) return self.order_buffer(name, tl) @@ -204,7 +204,7 @@ class Session(object): """ Makes a call to the Twitter API methods several times. Useful for get methods. this function is needed for retrieving more than 200 items. update_function str: The function to call. This function must be child of self.twitter.twitter - return a list with all items retrieved.""" + returns a list with all items retrieved.""" max = int(self.settings["general"]["max_api_calls"])-1 results = [] @@ -222,7 +222,6 @@ class Session(object): def get_user_info(self): """ Retrieves some information required by TWBlue for setup.""" - f = self.twitter.twitter.get_account_settings() sn = f["screen_name"] self.settings["twitter"]["user_name"] = sn @@ -239,7 +238,7 @@ class Session(object): @_require_login def get_lists(self): - """ Gets the lists that the user is suscribed.""" + """ Gets the lists that the user is subscribed to and stores them in the database. Returns None.""" self.db["lists"] = self.twitter.twitter.show_lists(reverse=True) @@ -254,7 +253,7 @@ class Session(object): def get_stream(self, name, function, *args, **kwargs): """ Retrieves the items for a regular stream. - name str: Name to save items on the database. + name str: Name to save items to the database. function str: A function to get the items.""" last_id = -1 @@ -272,11 +271,11 @@ class Session(object): @_require_login def get_cursored_stream(self, name, function, items="users", *args, **kwargs): - """ Gets items for API calls that requires using cursors to paginate the results. + """ Gets items for API calls that require using cursors to paginate the results. name str: Name to save it in the database. function str: Function that provides the items. items: When the function returns the list with results, items will tell how the order function should be look. - for example get_followers_list returns a list and users are under list["users"], here the items should be point to "users".""" + for example get_followers_list returns a list and users are under list["users"], here the items should point to "users".""" items_ = [] try: