def _get(self, method, parse="message", post=False, **args): args.update({"api_key": API_KEY, "method": method}) data = network.Download(REST_SERVER, args, post).get_json() if parse == "message": return [self._message(m) for m in data["photos"]["photo"]] else: return data
def _get(self, path, parse="message", post=False, single=False, **args): url = "/".join((URL_PREFIX, "api", path)) url += ("&" if "?" in url else "?") + "apikey=%s" % self.account["password"] data = network.Download(url, util.compact(args) or None, post).get_json() if single: return [getattr(self, "_%s" % parse)(data)] if parse: return [getattr(self, "_%s" % parse)(m) for m in data] else: return []
def _get(self, path, parse="message", post=False, single=False, **args): url = "/".join((API_PREFIX, path)) request = oauth.OAuthRequest.from_consumer_and_token( self.consumer, self.token, http_method=post and "POST" or "GET", http_url=url, parameters=util.compact(args)) request.sign_request(self.sigmethod, self.consumer, self.token) if post: data = network.Download(request.to_url(), util.compact(args), post).get_json() else: data = network.Download(request.to_url(), None, post).get_json() if isinstance(data, dict) and data.get("errors", 0): if "authenticate" in data["errors"][0]["message"]: raise exceptions.GwibberServiceError( "auth", self.account["service"], self.account["username"], data["errors"][0]["message"]) else: for error in data["errors"]: log.logger.info("Twitter failure - %s", error["message"]) return [] elif isinstance(data, dict) and data.get("error", 0): log.logger.error("%s failure - %s", PROTOCOL_INFO["name"], data["error"]) if "Incorrect signature" in data["error"]: print data raise exceptions.GwibberServiceError("keyring") return [] elif isinstance(data, str): log.logger.error("%s unexpected result - %s", PROTOCOL_INFO["name"], data) return [] if parse == "list": return [self._list(l) for l in data["lists"]] if single: return [getattr(self, "_%s" % parse)(data)] if parse: return [getattr(self, "_%s" % parse)(m) for m in data] else: return []
def send(self, message): args = { "post_method": "microblog", "user_app_key": self.account["secret_key"], "api_key": API_KEY, "body": message } data = network.Download("http://api.ping.fm/v1/user.post", util.compact(args), post=True) return []
def Translate(self, text, srclang, dstlang): url = "http://ajax.googleapis.com/ajax/services/language/translate" params = { "v": "1.0", "q": text, "langpair": "|".join((srclang, dstlang)) } data = network.Download(url, params).get_json() if data["responseStatus"] == 200: return data.get("responseData", {}).get("translatedText", "") else: return ""
def _get(self, path, parse="story", post=False, single=False, **args): url = "/".join((URL_PREFIX, path)) + "?appkey=http://gwibber.com&type=json" data = network.Download(url, util.compact(args) or None, post).get_json() if not data: return [] if "stories" in data: if single: return [getattr(self, "_%s" % parse)(data["stories"])] if parse: return [getattr(self, "_%s" % parse)(m) for m in data["stories"]] else: return [] else: if ("status" in data) and ("message" in data): print "Digg: got message with status %s and message %s" % (data["status"], data["message"]) return []
def _get(self, path, post=False, parse="message", kind="entries", single=False, **args): url = "/".join((URL_PREFIX, path)) data = network.Download(url, util.compact(args), post, self.account["username"], self.account["secret_key"]).get_json() if isinstance(data, dict) and data.get("errorCode", 0): if "unauthorized" in data["errorCode"]: raise exceptions.GwibberServiceError("auth", self.account["service"], self.account["username"], data["errorCode"]) if single: return [getattr(self, "_%s" % parse)(data)] if parse: return [getattr(self, "_%s" % parse)(m) for m in data["entries"]] else: return [] if parse: data = data[kind][0] if single else data[kind] return [getattr(self, "_%s" % parse)(m) for m in data]
def _get(self, path, collection="items", parse="message", post=False, single=False, body=None, **args): url = "/".join((URL_PREFIX, path)) args.update({"alt": "json"}) request = oauth.OAuthRequest.from_consumer_and_token(self.consumer, self.token, http_method=post and "POST" or "GET", http_url=url, parameters=util.compact(args)) request.sign_request(self.sigmethod, self.consumer, self.token) data = network.Download(request.to_url(), None, post, header=["Content-Type: application/json"] if body else None, body=body) data = data.get_json() if single: return [getattr(self, "_%s" % parse)(data["data"])] if parse: return [getattr(self, "_%s" % parse)(m) for m in data["data"][collection]] else: return []
def _get(self, operation, post=False, single=False, **args): args.update({ "v": "1.0", "format": "json", "method": "facebook." + operation, "api_key": FB_APP_KEY, "session_key": self.account["session_key"], "call_id": str(int(time.time()) * 1000), }) sig = "".join("%s=%s" % (k, v) for k, v in sorted(args.items())) args["sig"] = hashlib.md5(sig + self.account["secret_key"]).hexdigest() data = network.Download(URL_PREFIX, args, post).get_json() if isinstance(data, dict) and data.get("error_msg", 0): if "permission" in data["error_msg"]: raise exceptions.GwibberServiceError("auth", self.account["service"], self.account["username"], data["error_msg"]) return data
def _get(self, path, parse="message", post=False, single=False, **args): url = "/".join((URL_PREFIX, "api", path)) data = network.Download(url, util.compact(args), post, self.account["username"], self.account["password"]).get_json() if isinstance(data, dict) and data.get("error", 0): if "authenticate" in data["error"]: raise exceptions.GwibberServiceError("auth", self.account["service"], self.account["username"], data["error"]) elif isinstance(data, dict) and data.get("error", 0): log.logger.error("%s failure - %s", PROTOCOL_INFO["name"], data["error"]) return [] elif isinstance(data, str): log.logger.error("%s unexpected result - %s", PROTOCOL_INFO["name"], data) return [] if single: return [getattr(self, "_%s" % parse)(data)] if parse: return [getattr(self, "_%s" % parse)(m) for m in data] else: return []
def _search(self, **args): data = network.Download("%s/api/search.json" % URL_PREFIX, util.compact(args)) data = data.get_json() return [self._result(m) for m in data["results"]]
def _search(self, **args): data = network.Download("http://search.twitter.com/search.json", util.compact(args)) data = data.get_json()["results"] return [self._result(m) for m in data]
def _search(self, **args): data = network.Download("%s/api/search.json" % self.url_prefix, util.compact(args)) data = data.get_json()["results"] return [self._result(m) for m in data]