def setMessagesPerPage(self, messagesPerPage): "Sets how many messages the user wants to receive per request." if self.__messagesPerPage != messagesPerPage: r = GetMessagesRequest(self.session, messagesPerPage=messagesPerPage) r.doRequest() self.__messagesPerPage = messagesPerPage
def getMessages(self, box="Inbox", pageNumber=None, messagesPerPage=None, oldestFirst=None): """ A wrapper to GetMessagesRequest. Ensures that the user never specifies both messagesPerPage and oldestFirst. Doing so can cause the request to be very slow. """ if messagesPerPage != None: self.setMessagesPerPage(messagesPerPage) if oldestFirst != None: self.setOldestFirst(oldestFirst) r = GetMessagesRequest(self.session, box=box, pageNumber=pageNumber) responseData = r.doRequest() return responseData["kmails"]
def __get_kmail(self, username): # Fetch all of our green messages r = GetMessagesRequest(self.__session, oldestFirst=True) r.doRequest() r.parseResponse() # Return the most recent one sent by username for kmail in r.responseData['kmails']: if kmail['userName'] == username: return kmail # This is unexpected enough to crash the bot raise Exception("Couldn't find a kmail by {}!".format(username))
def __get_kmails(self, pname=None, limit=None): # Fetch all of our green messages r = GetMessagesRequest(self.__session, oldestFirst=True) r.doRequest() r.parseResponse() # Yield an apprioprate amount, LIFO for kmail in r.responseData['kmails']: if limit is not None and limit <= 0: break if pname is None or kmail['userName'] == pname: yield kmail if limit is not None: limit -= 1
def setOldestFirst(self, oldestFirst): "Sets whether the user wants their messages sorted oldest first or newest first." if self.__oldestFirst != oldestFirst: r = GetMessagesRequest(self.session, oldestFirst=oldestFirst) r.doRequest() self.__oldestFirst = oldestFirst