def new(self, id, does, match, arg): """Create a new Rule for this feed""" # import pdb; pdb.set_trace() # brand new rule rules = [{"does": r.does, "match": r.match, "arg": r.arg, "id": r.id} for r in self.feed.rules] existing_ids = [r.id for r in self.feed.rules] if id == None: rules.append({"does": does, "match": match, "arg": arg}) payload = {"rules": rules} r = self._h._http_resource(method="PUT", resource=("feed", self.feed.id, "rules"), data=payload) # what's the new rule. for r in json_decode(r.content)["results"]: if r["id"] not in existing_ids: return self.feed.rules.get(r["id"]) else: for r in rules: if r["id"] == id: r["does"] = does r["match"] = match r["arg"] = arg break payload = {"rules": rules} r = self._h._http_resource(method="PUT", resource=("feed", self.feed.id, "rules"), data=payload) for r in json_decode(r.content)["results"]: if r["id"] == id: return self.feed.rules.get(r["id"])
def _resource_deserialize(s): """Returns dict deserialization of a given JSON string.""" try: return json_decode(s) except ValueError: raise ResponseError("The API Response was not valid.")
def _resource_deserialize(s): """Returns dict deserialization of a given JSON string.""" try: return json_decode(s) except ValueError: raise ResponseError('The API Response was not valid.')
def _new(self, has, match, arg): '''Create a new Rule''' rules = [{'has': r.has, 'match': r.match, 'arg': r.arg, 'id': r.id} \ for r in self.feed.rules] existing_ids = [r.id for r in self.feed.rules] rules.append({'has': has, 'match': match, 'arg': arg}) payload = {'rules': rules} r = self._h._http_resource( method = 'PUT', resource = ('feed', self.feed.id, 'rules'), data = payload ) # what's the new rule. for r in json_decode(r.content)['results']: if r['id'] not in existing_ids: return self.feed.rules.get(r['id'])
def new(self, name=None): """Create a new engine""" payload = {} payload["name"] = name r = self._h._http_resource(method="POST", resource=("engines",), data=payload) id = json_decode(r.content).get("id") return self._h.engines.get(id)
def new(self, id, does, match, arg): '''Create a new Rule for this feed''' #import pdb; pdb.set_trace() # brand new rule rules = [{'does': r.does, 'match': r.match, 'arg': r.arg, 'id': r.id} \ for r in self.feed.rules] existing_ids = [r.id for r in self.feed.rules] if id == None: rules.append({'does': does, 'match': match, 'arg': arg}) payload = {'rules': rules} r = self._h._http_resource( method = 'PUT', resource = ('feed', self.feed.id, 'rules'), data = payload ) # what's the new rule. for r in json_decode(r.content)['results']: if r['id'] not in existing_ids: return self.feed.rules.get(r['id']) else: for r in rules: if r['id'] == id: r['does'] = does r['match'] = match r['arg'] = arg break payload = {'rules': rules} r = self._h._http_resource( method = 'PUT', resource = ('feed', self.feed.id, 'rules'), data = payload ) for r in json_decode(r.content)['results']: if r['id'] == id: return self.feed.rules.get(r['id'])
def new(self, url, sitemap_url, name=None): """Create a new feed""" payload = {} payload["url"] = url payload["sitemap_url"] = sitemap_url payload["name"] = name r = self._h._http_resource(method="POST", resource=("topic", self.topic.id, "feeds"), data=payload) id = json_decode(r.content).get("id") return self.topic.feeds.get(id)
def new(self, **kwargs): """Create/Index a new document""" payload = {} payload.update(kwargs) r = self._h._http_resource(method="POST", resource=("topic", self.topic.id, "documents"), data=payload) # id = json_decode(r.content).get('id') # return self.topic.documents.get(id) return json_decode(r.content)
def new(self, name=None): '''Create a new engine''' payload = {} payload['name'] = name r = self._h._http_resource(method='POST', resource=('engines', ), data=payload) id = json_decode(r.content).get('id') return self._h.engines.get(id)
def new(self, url, label, type, selector_dict): """Create a new topic""" payload = {} payload["url"] = url payload["label"] = label payload["type"] = type payload["selector_dict"] = selector_dict r = self._h._http_resource(method="POST", resource=("topic", self.topic.id, "sources"), data=payload) id = json_decode(r.content).get("id") return self.topic.sources.get(id)
def call(self, api_operation, api_request): try: API_OPERATIONS.index(api_operation) except ValueError: raise RuntimeError("Invalid API operation.") url = "%s/%s" % (self._endpoint, api_operation) req = http_request(url) json_request = json_encode(api_request) try: response = urlopen(req, json_request) except URLError: raise RuntimeError("API request failed.") return json_decode(response.read())
def new(self, url, sitemap_url, name=None): '''Create a new feed''' payload = {} payload['url'] = url payload['sitemap_url'] = sitemap_url payload['name'] = name r = self._h._http_resource(method='POST', resource=('topic', self.topic.id, 'feeds'), data=payload) id = json_decode(r.content).get('id') return self.topic.feeds.get(id)
def new(self, id, does, match, arg): '''Create a new Rule for this feed''' #import pdb; pdb.set_trace() # brand new rule rules = [{'does': r.does, 'match': r.match, 'arg': r.arg, 'id': r.id} \ for r in self.feed.rules] existing_ids = [r.id for r in self.feed.rules] if id == None: rules.append({'does': does, 'match': match, 'arg': arg}) payload = {'rules': rules} r = self._h._http_resource(method='PUT', resource=('feed', self.feed.id, 'rules'), data=payload) # what's the new rule. for r in json_decode(r.content)['results']: if r['id'] not in existing_ids: return self.feed.rules.get(r['id']) else: for r in rules: if r['id'] == id: r['does'] = does r['match'] = match r['arg'] = arg break payload = {'rules': rules} r = self._h._http_resource(method='PUT', resource=('feed', self.feed.id, 'rules'), data=payload) for r in json_decode(r.content)['results']: if r['id'] == id: return self.feed.rules.get(r['id'])
def init_default_filters(): from hashlib import md5 from base64 import b64encode, b64decode from simplejson import dumps as json_encode, loads as json_decode add_filter('md5', lambda v: md5(v).hexdigest()) add_filter('md5b', lambda v: md5(v).digest()) add_filter('b64e', lambda v: b64encode(v)) add_filter('b64d', lambda v: b64decode(v)) add_filter('jsone', lambda v: json_encode(v)) add_filter('jsond', lambda v: json_decode(v)) add_filter('len', lambda v: len(v)) _to_num = lambda v: (float(v) if '.' in v else int(v)) if isinstance(v, basestring) else v add_filter('add', lambda v, arg: _to_num(v) + _to_num(arg))
def new(self, **kwargs): '''Create/Index a new document''' payload = {} payload.update(kwargs) r = self._h._http_resource(method='POST', resource=('topic', self.topic.id, 'documents'), data=payload) #id = json_decode(r.content).get('id') #return self.topic.documents.get(id) return json_decode(r.content)
def new(self, name=None): '''Create a new engine''' payload = {} payload['name'] = name r = self._h._http_resource( method = 'POST', resource = ('engines', ), data = payload ) id = json_decode(r.content).get('id') return self._h.engines.get(id)
def new(self, url, sitemap_url, name=None): '''Create a new feed''' payload = {} payload['url'] = url payload['sitemap_url'] = sitemap_url payload['name'] = name r = self._h._http_resource( method = 'POST', resource = ('topic', self.topic.id, 'feeds'), data = payload ) id = json_decode(r.content).get('id') return self.topic.feeds.get(id)
def _new(self, has, match, arg): """Create a new Rule""" rules = [{"has": r.has, "match": r.match, "arg": r.arg, "id": r.id} for r in self.feed.rules] existing_ids = [r.id for r in self.feed.rules] rules.append({"has": has, "match": match, "arg": arg}) payload = {"rules": rules} r = self._h._http_resource(method="PUT", resource=("feed", self.feed.id, "rules"), data=payload) # what's the new rule. for r in json_decode(r.content)["results"]: if r["id"] not in existing_ids: return self.feed.rules.get(r["id"])
def call_api(api,params,auth='',debug=0): domain = 'http://api.jiepang.com/' params['source'] = '@pp' params = urllib.urlencode(params) request = urllib2.Request(domain + api + '?' + params) if auth: request.add_header("Authorization", "Basic %s" % auth) request.add_header("Content-Type","application/json") opener = urllib2.build_opener(urllib2.HTTPHandler(debuglevel=debug)) try: response = opener.open(request) res = json_decode(response.read()) return res except urllib2.HTTPError,e: return {'error': e.code}
def new(self, **kwargs): '''Create/Index a new document''' payload = {} payload.update(kwargs) r = self._h._http_resource( method = 'POST', resource = ('topic', self.topic.id, 'documents'), data = payload ) #id = json_decode(r.content).get('id') #return self.topic.documents.get(id) return json_decode(r.content)
def new(self, url, label, type, selector_dict): '''Create a new topic''' payload = {} payload['url'] = url payload['label'] = label payload['type'] = type payload['selector_dict'] = selector_dict r = self._h._http_resource(method='POST', resource=('topic', self.topic.id, 'sources'), data=payload) id = json_decode(r.content).get('id') return self.topic.sources.get(id)
def update(self, name=None, selectors=None): if name == None: name = self.name else: self.name = name if selectors == None: selectors = self.selectors else: self.selectors = selectors payload = {"name": name, "selectors": selectors} r = self._h._http_resource(method="PUT", resource=("engine", self.id), data=payload) id = json_decode(r.content).get("id") return self._h.engines.get(id)
def update(self, name=None, value_key=None): """Update the topic""" if name == None: name = self.name else: self.name = name if value_key == None: value_key = self.value_key else: self.value_key = value_key payload = {"name": name, "value_key": value_key} r = self._h._http_resource(method="PUT", resource=("topic", self.id), data=payload) id = json_decode(r.content).get("id") return self.engine.topics.get(id)
def new(self, url, label, type, selector_dict): '''Create a new topic''' payload = {} payload['url'] = url payload['label'] = label payload['type'] = type payload['selector_dict'] = selector_dict r = self._h._http_resource( method = 'POST', resource = ('topic', self.topic.id, 'sources'), data = payload ) id = json_decode(r.content).get('id') return self.topic.sources.get(id)
def update(self, name=None, selectors=None): if name == None: name = self.name else: self.name = name if selectors == None: selectors = self.selectors else: self.selectors = selectors payload = {'name': name, 'selectors': selectors} r = self._h._http_resource(method='PUT', resource=('engine', self.id), data=payload) id = json_decode(r.content).get('id') return self._h.engines.get(id)
def update(self, name=None, value_key=None): '''Update the topic''' if name == None: name = self.name else: self.name = name if value_key == None: value_key = self.value_key else: self.value_key = value_key payload = {'name': name, 'value_key': value_key} r = self._h._http_resource(method='PUT', resource=('topic', self.id), data=payload) id = json_decode(r.content).get('id') return self.engine.topics.get(id)
def update(self, name=None, selectors=None): if name == None: name = self.name else: self.name = name if selectors == None: selectors = self.selectors else: self.selectors = selectors payload = {'name': name, 'selectors': selectors} r = self._h._http_resource( method='PUT', resource=('engine', self.id), data = payload ) id = json_decode(r.content).get('id') return self._h.engines.get(id)
def __init__(self, ctx, query, urlbits, db=None): utils.autoassign(self, locals()) self.model = urlbits[1] self.op_mode = int(query.pop('_op', ['0'])[0]) if ctx.method in ('POST', 'PUT'): if '_data' in query: # web.debug('~', query.get('_data')) _data = query.pop('_data')[0] else: _data = web.data() if _data: try: self.data = json_decode(_data) except: raise RestyError('data is invalid') del _data else: raise RestyError('no data!') else: self.data = None
def update(self, name=None, value_key=None): '''Update the topic''' if name == None: name = self.name else: self.name = name if value_key == None: value_key = self.value_key else: self.value_key = value_key payload = {'name': name, 'value_key': value_key} r = self._h._http_resource( method='PUT', resource=('topic', self.id), data = payload ) id = json_decode(r.content).get('id') return self.engine.topics.get(id)
def _new(self, has, match, arg): '''Create a new Rule''' rules = [{'has': r.has, 'match': r.match, 'arg': r.arg, 'id': r.id} \ for r in self.feed.rules] existing_ids = [r.id for r in self.feed.rules] rules.append({'has': has, 'match': match, 'arg': arg}) payload = {'rules': rules} r = self._h._http_resource(method='PUT', resource=('feed', self.feed.id, 'rules'), data=payload) # what's the new rule. for r in json_decode(r.content)['results']: if r['id'] not in existing_ids: return self.feed.rules.get(r['id'])
def query (path, params = {}, decode=True): defaults = { 'format': 'json', } config = load_config() defaults.update(config['common']) params.update(defaults) headers = { 'User-Agent': 'Weiwo SABot/1.0 ([email protected])', } domain = 'https://dnsapi.cn/' url = domain + path resp = requests.post(url, data=params, headers=headers) if not decode: return resp if resp.status_code != 200: raise ServiceError("Got response status code `%s` but expected 200." % (resp.status_code, )) msg = json_decode(resp.content) if int(msg['status']['code']) != 1: raise RequestError("You just doing something DNSPod NOT allow: [%s] %s" % (msg['status']['code'], msg['status']['message'])) return msg
def decode(cls, data, charset=None, mimetype=None): return json_decode(data)
def index(req, data=""): _SUCCESS = "0" _DATAFORMAT = 1 _VERSION = 2 _MISSING = 3 _DATABASE = 4 _FLOOD = 5 # Decode submitted data try: data = json_decode(data) except: return _DATAFORMAT # Check feedback version if "version" not in data: return _VERSION # DB connection try: sql = mysql(site_config['db_host'], \ site_config['db_name'], \ site_config['db_user'], \ site_config['db_pass']) except: return _DATABASE # Check required fields s1 = set(["experience", "question"]) s2 = set(data.keys()) if len(s1 - s2) != 0: return _MISSING # An IP may submit only one feedback in 10 minutes. submissions = sql.scalar_query("SELECT Count(*) FROM feedback WHERE ip=%s AND now()-submitdate < 600", req.get_remote_host()) if submissions > 0: return _FLOOD if "hw" in data: s1 = set(["memtotal", "swaptotal", "cpu_model", "cpu_speed", "kernel"]) s2 = set(data["hw"].keys()) if len(s1 - s2) != 0: return _MISSING values = { "ip": req.get_remote_host(), "submitdate": time.strftime('%Y-%m-%d %H:%M'), "experience": data.get("experience", "0"), "purpose": data.get("purpose", "0"), "use_where": data.get("use_where", "0"), "question": data.get("question", ""), "opinion": data.get("opinion", ""), "email": data.get("email", ""), "email_announce": data.get("email_announce", "F") } fb = sql.insert("feedback", values) if "hw" in data: values = { "feedback": fb, "memtotal": data["hw"]["memtotal"], "swaptotal": data["hw"]["swaptotal"], "cpu_model": data["hw"]["cpu_model"], "cpu_speed": data["hw"]["cpu_speed"], "kernel": data["hw"]["kernel"] } hw = sql.insert("hardware", values) return _SUCCESS