mirror of
				https://github.com/MCV-Software/TWBlue.git
				synced 2025-10-31 12:12:01 +00:00 
			
		
		
		
	provide better control over cursored buffers when getting more items
This commit is contained in:
		| @@ -351,6 +351,8 @@ class baseBufferController(bufferController): | ||||
|    items = self.session.get_more_items(self.function, count=self.session.settings["general"]["max_tweets_per_call"], max_id=last_id, *self.args, **self.kwargs) | ||||
|   except TwythonError as e: | ||||
|    output.speak(e.message, True) | ||||
|   if items == None: | ||||
|    return | ||||
|   for i in items: | ||||
|    if utils.is_allowed(i, self.session.settings, self.name) == True and utils.find_item(i["id"], self.session.db[self.name]) == None: | ||||
|     i = self.session.check_quoted_status(i) | ||||
| @@ -776,6 +778,8 @@ class directMessagesController(baseBufferController): | ||||
|   except TwythonError as e: | ||||
|    output.speak(e.message, True) | ||||
|    return | ||||
|   if items == None: | ||||
|    return | ||||
|   sent = [] | ||||
|   for i in items: | ||||
|    if i["message_create"]["sender_id"] == self.session.db["user_id"]: | ||||
| @@ -1056,6 +1060,8 @@ class peopleBufferController(baseBufferController): | ||||
|   except TwythonError as e: | ||||
|    output.speak(e.message, True) | ||||
|    return | ||||
|   if items == None: | ||||
|    return | ||||
|   for i in items: | ||||
|    if self.session.settings["general"]["reverse_timelines"] == False: | ||||
|     self.session.db[self.name]["items"].insert(0, i) | ||||
| @@ -1178,6 +1184,8 @@ class searchBufferController(baseBufferController): | ||||
|    items = self.session.search(self.name, count=self.session.settings["general"]["max_tweets_per_call"], max_id=last_id, *self.args, **self.kwargs) | ||||
|   except TwythonError as e: | ||||
|    output.speak(e.message, True) | ||||
|   if items == None: | ||||
|    return | ||||
|   for i in items: | ||||
|    if utils.is_allowed(i, self.session.settings, self.name) == True and utils.find_item(i["id"], self.session.db[self.name]) == None: | ||||
|     i = self.session.check_quoted_status(i) | ||||
| @@ -1240,6 +1248,8 @@ class searchPeopleBufferController(peopleBufferController): | ||||
|   except TwythonError as e: | ||||
|    output.speak(e.message, True) | ||||
|    return | ||||
|   if items == None: | ||||
|    return | ||||
|   for i in items: | ||||
|    if self.session.settings["general"]["reverse_timelines"] == False: | ||||
|     self.session.db[self.name]["items"].insert(0, i) | ||||
|   | ||||
| @@ -164,15 +164,24 @@ class Session(base.baseSession): | ||||
|   users, dm bool: If any of these is set to True, the function will treat items as users or dm (they need different handling). | ||||
|   name str: name of the database item to put new element in.""" | ||||
|   results = [] | ||||
|   if kwargs.has_key("cursor") and kwargs["cursor"] == 0: | ||||
|    output.speak(_(u"There are no more items to retrieve in this buffer.")) | ||||
|    return | ||||
|   data = getattr(self.twitter, update_function)(*args, **kwargs) | ||||
|   if users == True: | ||||
|    if type(data) == dict and data.has_key("next_cursor"): | ||||
|     self.db[name]["cursor"] = data["next_cursor"] | ||||
|     if data.has_key("next_cursor"): # There are more objects to retrieve. | ||||
|      self.db[name]["cursor"] = data["next_cursor"] | ||||
|     else: # Set cursor to 0, wich means no more items available. | ||||
|      self.db[name]["cursor"] = 0 | ||||
|     for i in data["users"]: results.append(i) | ||||
|    elif type(data) == list: | ||||
|     results.extend(data[1:]) | ||||
|   elif dm == True: | ||||
|    self.db[name]["cursor"] = data["next_cursor"] | ||||
|    if data.has_key("next_cursor"): # There are more objects to retrieve. | ||||
|     self.db[name]["cursor"] = data["next_cursor"] | ||||
|    else: # Set cursor to 0, wich means no more items available. | ||||
|     self.db[name]["cursor"] = 0 | ||||
|    for i in data["events"]: results.append(i) | ||||
|   else: | ||||
|    results.extend(data[1:]) | ||||
| @@ -315,6 +324,8 @@ class Session(base.baseSession): | ||||
|   # Recently, Twitter's new endpoints have cursor if there are more results. | ||||
|   if tl.has_key("next_cursor"): | ||||
|    self.db[name]["cursor"] = tl["next_cursor"] | ||||
|   else: | ||||
|    self.db[name]["cursor"] = 0 | ||||
|   return num | ||||
|  | ||||
|  def check_connection(self): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user