def get(self, path, head=False): if path == u'titles': resource = TitleListResource(self.request, self.response) resource.get(head) elif path == u'changes': resource = ChangeListResource(self.request, self.response) resource.get(head) elif path == u'index': resource = TitleIndexResource(self.request, self.response) resource.get(head) elif path == u'posts': resource = PostListResource(self.request, self.response) resource.get(head) elif path == u'search': resource = SearchResultResource(self.request, self.response) resource.get(head) elif path == u'preferences': resource = UserPreferencesResource(self.request, self.response) resource.get(head) elif path.startswith(u'schema/'): resource = SchemaResource(self.request, self.response, path) resource.get(head) elif path == u'opensearch': representation = TemplateRepresentation({}, self.request, 'opensearch.xml') representation.respond(self.response, head) elif path == u'flush_cache': caching.flush_all() self.response.headers['Content-Type'] = 'text/plain; charset=utf-8' self.response.write('Done!') elif path == u'randomly_update_related_pages': caching.create_prc() recent = self.request.GET.get('recent', '0') titles = WikiPage.randomly_update_related_links(50, recent == '1') self.response.headers['Content-Type'] = 'text/plain; charset=utf-8' self.response.write('\n'.join(titles)) elif path == u'rebuild_data_index': deferred.defer(WikiPage.rebuild_all_data_index, 0) self.response.headers['Content-Type'] = 'text/plain; charset=utf-8' self.response.write('Done! (queued)') # elif path == u'gcstest': # import cloudstorage as gcs # f = gcs.open( # '/ecogwiki/test.txt', 'w', # content_type='text/plain', # retry_params=gcs.RetryParams(backoff_factor=1.1), # options={'x-goog-acl': 'public-read'}, # ) # f.write('Hello') # f.close() # self.response.write('Done') else: self.abort(404)
def represent_html_bodyonly(self, data): content = { 'title': data['id'], 'body': schema.to_html(data), } return TemplateRepresentation(content, self.req, 'generic_bodyonly.html')
def represent_html_bodyonly(self, content): content = { 'title': u'Search: %s ' % content['query'], 'body': schema.to_html(content['result']), } return TemplateRepresentation(content, self.req, 'generic_bodyonly.html')
def special(request, path): head = False if request.method == 'GET': if path == u'changes': resource = ChangeListResource(request) return resource.get(head) elif path == u'index': resource = TitleIndexResource(request) return resource.get(head) elif path == u'posts': resource = PostListResource(request) return resource.get(head) elif path == u'titles': resource = TitleListResource(request) return resource.get(head) elif path == u'search': resource = SearchResultResource(request) return resource.get(head) elif path == u'flush_cache': caching.flush_all() response = HttpResponse() response['Content-Type'] = 'text/plain; charset=utf-8' response.write('Done!') return response elif path == u'preferences': resource = UserPreferencesResource(request) return resource.get(head) elif path.startswith(u'schema/'): resource = SchemaResource(request, path) return resource.get(head) elif path == u'opensearch': representation = TemplateRepresentation({}, request, 'opensearch.xml') return representation.respond(HttpResponse(), head) elif path == u'randomly_update_related_pages': recent = request.GET.get('recent', '0') titles = WikiPage.randomly_update_related_links(50, recent == '1') response = HttpResponse() response['Content-Type'] = 'text/plain; charset=utf-8' response.write('\n'.join(titles)) return response elif request.method == 'POST': method = request.GET.get('_method', 'POST') if method == 'POST' and path == 'preferences': resource = UserPreferencesResource(request) return resource.post()
def get(self, path, head=False): if path == u'titles': resource = TitleListResource(self.request, self.response) resource.get(head) elif path == u'changes': resource = ChangeListResource(self.request, self.response) resource.get(head) elif path == u'index': resource = TitleIndexResource(self.request, self.response) resource.get(head) elif path == u'home': resource = NewHomeResource(self.request, self.response) resource.get(head) elif path == u'posts': resource = PostListResource(self.request, self.response) resource.get(head) elif path == u'search': resource = SearchResultResource(self.request, self.response) resource.get(head) elif path == u'preferences': resource = UserPreferencesResource(self.request, self.response) resource.get(head) elif path.startswith(u'schema/'): resource = SchemaResource(self.request, self.response, path) resource.get(head) elif path == u'opensearch': representation = TemplateRepresentation({}, self.request, 'opensearch.xml') representation.respond(self.response, head) elif path == u'flush_cache': caching.flush_all() self.response.headers['Content-Type'] = 'text/plain; charset=utf-8' self.response.write('Done!') elif path == u'randomly_update_related_pages': caching.create_prc() recent = self.request.GET.get('recent', '0') titles = WikiPage.randomly_update_related_links(50, recent == '1') self.response.headers['Content-Type'] = 'text/plain; charset=utf-8' self.response.write('\n'.join(titles)) elif path == u'rebuild_data_index': deferred.defer(WikiPage.rebuild_all_data_index, 0) self.response.headers['Content-Type'] = 'text/plain; charset=utf-8' self.response.write('Done! (queued)') else: self.abort(404)
def get(self, path, head=False): if path == u'titles': resource = TitleListResource(self.request, self.response) resource.get(head) elif path == u'changes': resource = ChangeListResource(self.request, self.response) resource.get(head) elif path == u'index': resource = TitleIndexResource(self.request, self.response) resource.get(head) elif path == u'home': resource = NewHomeResource(self.request, self.response) resource.get(head) elif path == u'posts': resource = PostListResource(self.request, self.response) resource.get(head) elif path == u'search': resource = SearchResultResource(self.request, self.response) resource.get(head) elif path == u'preferences': resource = UserPreferencesResource(self.request, self.response) resource.get(head) elif path.startswith(u'schema/'): resource = SchemaResource(self.request, self.response, path) resource.get(head) elif path == u'opensearch': representation = TemplateRepresentation({}, self.request, 'opensearch.xml') representation.respond(self.response, head) elif path == u'flush_cache': caching.flush_all() self.response.headers['Content-Type'] = 'text/plain; charset=utf-8' self.response.write('Done!') elif path == u'randomly_update_related_pages': caching.create_prc() recent = self.request.GET.get('recent', '0') titles = WikiPage.randomly_update_related_links(50, recent == '1') self.response.headers['Content-Type'] = 'text/plain; charset=utf-8' self.response.write('\n'.join(titles)) elif path == u'rebuild_data_index': deferred.defer(WikiPage.rebuild_all_data_index, 0) self.response.headers['Content-Type'] = 'text/plain; charset=utf-8' self.response.write('Done! (queued)') else: self.abort(404)
def get(self, head): if self.user is None: self.res.status = 403 TemplateRepresentation( { 'page': { 'absolute_url': '/sp.preferences', 'title': 'User preferences', }, 'description': 'You don\'t have a permission', 'errors': [], }, self.req, 'error.html').respond(self.res, head) return else: representation = self.get_representation(self.load()) representation.respond(self.res, head)
def represent_html_default(self, page): if page.metadata['content-type'] != 'text/x-markdown': content = WikiPage.remove_metadata(page.body) content_type = '%s; charset=utf-8' % str( page.metadata['content-type']) return Representation(content, content_type) if page.metadata.get('redirect', None) is not None: return Representation(None, None) else: redirected_from = self.req.cookies.get('ecogwiki_redirect_from') self.res.delete_cookie('ecogwiki_redirect_from') content = { 'page': page, 'message': self.res.headers.get('X-Message', None), 'redirected_from': redirected_from, } if page.metadata.get('schema', None) == 'Blog': content['posts'] = page.get_posts(count=50) return TemplateRepresentation(content, self.req, self._findTemplateForWikipage(page))
def post(self): if self.user is None: self.res.status = 403 TemplateRepresentation( { 'page': { 'absolute_url': '/sp.preferences', 'title': 'User preferences', }, 'description': 'You don\'t have a permission', 'errors': [], }, self.req, 'error.html').respond(self.res, False) return prefs = self.load() prefs.userpage_title = self.req.POST['userpage_title'] prefs.put() self.res.headers['X-Message'] = 'Successfully updated.' representation = self.get_representation(prefs) representation.respond(self.res, False)
def represent_html_bodyonly(self, content): return TemplateRepresentation(content, self.req, 'sp_search_bodyonly.html')
def represent_html_default(self, pages): return TemplateRepresentation({}, self.req, 'sp_home.html')
def represent_html_default(self, prefs): return TemplateRepresentation( { 'preferences': prefs, 'message': self.res.headers.get('X-Message', None), }, self.req, 'sp_preferences.html')
def represent_html_default(self, data): return TemplateRepresentation(data, self.req, 'sp_changes.html')
def represent_html_bodyonly(self, data): return TemplateRepresentation(data, self.req, 'sp_changes_bodyonly.html')
def represent_html_bodyonly(self, page): content = { 'page': page, } return TemplateRepresentation(content, self.req, 'wikipage_bodyonly.html')
def represent_html_default(self, pages): page_group = groupby(pages, lambda p: title_grouper(p.title)) return TemplateRepresentation({'page_group': page_group}, self.req, 'sp_index.html')
def represent_html_default(self, content): return TemplateRepresentation(content, self.req, 'sp_search.html')
def represent_html_edit(self, page): if page.revision == 0 and self.req.GET.get('body'): page.body = self.req.GET.get('body') return TemplateRepresentation({'page': page}, self.req, 'wikipage.edit.html')
def represent_html_default(self, content): content = { 'title': content['query'], 'body': schema.to_html(content['result']), } return TemplateRepresentation(content, self.req, 'generic.html')
def represent_html_bodyonly(self, data): return TemplateRepresentation(data, self.req, 'history_bodyonly.html')
def represent_html_default(self, content): return TemplateRepresentation(content, self.req, 'history.html')