Esempio n. 1
0
 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)
Esempio n. 2
0
 def represent_html_bodyonly(self, data):
     content = {
         'title': data['id'],
         'body': schema.to_html(data),
     }
     return TemplateRepresentation(content, self.req,
                                   'generic_bodyonly.html')
Esempio n. 3
0
 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')
Esempio n. 4
0
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()
Esempio n. 5
0
 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)
Esempio n. 6
0
 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)
Esempio n. 7
0
 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)
Esempio n. 8
0
    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))
Esempio n. 9
0
    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)
Esempio n. 10
0
 def represent_html_bodyonly(self, content):
     return TemplateRepresentation(content, self.req,
                                   'sp_search_bodyonly.html')
Esempio n. 11
0
 def represent_html_default(self, pages):
     return TemplateRepresentation({}, self.req, 'sp_home.html')
Esempio n. 12
0
 def represent_html_default(self, prefs):
     return TemplateRepresentation(
         {
             'preferences': prefs,
             'message': self.res.headers.get('X-Message', None),
         }, self.req, 'sp_preferences.html')
Esempio n. 13
0
 def represent_html_default(self, data):
     return TemplateRepresentation(data, self.req, 'sp_changes.html')
Esempio n. 14
0
 def represent_html_bodyonly(self, data):
     return TemplateRepresentation(data, self.req,
                                   'sp_changes_bodyonly.html')
Esempio n. 15
0
 def represent_html_bodyonly(self, page):
     content = {
         'page': page,
     }
     return TemplateRepresentation(content, self.req,
                                   'wikipage_bodyonly.html')
Esempio n. 16
0
 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')
Esempio n. 17
0
 def represent_html_default(self, content):
     return TemplateRepresentation(content, self.req, 'sp_search.html')
Esempio n. 18
0
 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')
Esempio n. 19
0
 def represent_html_default(self, content):
     content = {
         'title': content['query'],
         'body': schema.to_html(content['result']),
     }
     return TemplateRepresentation(content, self.req, 'generic.html')
Esempio n. 20
0
 def represent_html_bodyonly(self, data):
     return TemplateRepresentation(data, self.req, 'history_bodyonly.html')
Esempio n. 21
0
 def represent_html_default(self, content):
     return TemplateRepresentation(content, self.req, 'history.html')