def clearSearchHistory(type=None, update=False): search_history.clear(type=type) if type: containerRefresh() else: notify(30114, time=2000) if update: containerUpdate(__search_url__, "replace") else: containerRefresh()
def __notify__(self, result): message = None if isinstance(result, Exception): message = f"request error [{result}]" self.logger.error(message) elif isinstance(result, dict): message = result.pop("error", None) if message and result: message = None if message: notify(message, icon=ICONERROR) return True return False
def request(self, method, url, **kwargs): self.logger.info( f"request: {buildUrl(url, **kwargs.get('params', {}))}") try: response = super(HttpSession, self).request(method, url, timeout=self.__timeout__, **kwargs) except Timeout as error: self.logger.error(message := f"error: {error}") notify(message, icon=ICONERROR) else: response.raise_for_status() return response
def stream(self, **kwargs): user = self.__query__("stream", **kwargs) if not user.livestream: return notify(30016, user.displayname) # Offline return user.livestream.makeItem(self.__live__.format(**kwargs))
class SearchHistory(Persistent, dict): def __missing__(self, key): self[key] = OrderedDict() return self[key] @save def new(self, **kwargs): if (text := searchDialog()): kwargs["text"] = text self[kwargs["query"]][text] = kwargs return kwargs @save def remove(self, **kwargs): del self[kwargs["query"]][kwargs["text"]] @save def clear(self, **kwargs): if (query := kwargs.get("query")): self[query].clear() else: super().clear() notify(30114, time=2000) def history(self, category=None, **kwargs): return Queries(reversed(self[kwargs["query"]].values()), category=category) search_history = SearchHistory()
def __raise__(self, error): if not isinstance(error, Exception): error = Exception(error) notify(f"{error}", icon=ICONERROR) raise error