def get(self, page): page = int(page) if page else 0 helper = RequestHelper(self) results = [] for u in UrlResource.all().fetch(self.BATCH_SIZE, page * self.BATCH_SIZE): results.append(resource_hash(u)) helper.write_json(results)
def __search(self, helper): q = self.request.get("q") if not q: helper.error(400, "q must be provided") return regex = re.compile(q) return UrlResource.search_by_url(regex)
def get_or_create(cls, url, **kw): u = cls.get_by_url(url, return_none=True) if not u: # returns key u_key = cls.create(url, **kw) # looks up url for key u = UrlResource.get(u_key) return u
def random_resource(self, max_length=130): resource = None q = UrlResource.find_latest() if not q.count(): raise MissingDataException("no results found") for resource in random_query_results(q, 10): if len(resource.url) < max_length: break if not resource: raise MissingDataException("no sufficient resources found") return resource
def get(self, url): helper = RequestHelper(self) resource = UrlResource.get_by_url(url, return_none=True) if not resource: helper.error(404) return helper.write_json(resource_hash(resource)) # application = webapp.WSGIApplication([ # ('/api/resources/-/search', ResourcesSearchHandler), # ('/api/resources/?(\d+)?', ResourcesHandler), # ('/api/resources/(.+)', ResourceHandler) # ]) # # # def main(): # log.config() # run_wsgi_app(application) # # if __name__ == "__main__": # main()
def search_by_url(cls, term, **kw): return [u for u in UrlResource.search_by_url_regex(term)]
def create(cls, url, **kw): return UrlResource.create(url, **kw)
def get_by_url(cls, url, **kw): return UrlResource.get_by_url(url, **kw)