예제 #1
0
파일: views.py 프로젝트: EdgarSun/ecogwiki
 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)
예제 #2
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()
예제 #3
0
파일: views.py 프로젝트: yong27/incodom
 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)
예제 #4
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)
예제 #5
0
파일: views.py 프로젝트: namongk/ecogwiki
    def get(self, path, head=False):
        cache.create_prc()
        user = get_cur_user()
        title = WikiPage.path_to_title(path)

        if title == u'titles':
            self.get_titles(user, head)
        elif title == u'changes':
            self.get_changes(user, head)
        elif title == u'index':
            self.get_index(user, head)
        elif title == u'posts':
            self.get_posts(user, head)
        elif title == u'search':
            self.get_search(user, head)
        elif title == u'opensearch':
            self.get_opensearch(head)
        elif title == u'randomly update related pages':
            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 title == u'preferences':
            self.get_preferences(user, head)
        elif title == 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 title == u'fix suggested pages':
            self.response.headers['Content-Type'] = 'text/plain; charset=utf-8'
            index = int(self.request.GET.get('index', '0'))
            pages = WikiPage.query().fetch(200, offset=index * 200)
            for page in pages:
                keys = [
                    key for key in page.related_links.keys()
                    if key.find('/') != -1
                ]
                if len(keys) == 0:
                    continue
                else:
                    self.response.write('%s\n' % page.title)
                    for key in keys:
                        del page.related_links[key]
                        self.response.write('%s\n' % key)
                    page.put()
        elif title == u'fix comment':
            self.response.headers['Content-Type'] = 'text/plain; charset=utf-8'
            index = int(self.request.GET.get('index', '0'))
            pages = WikiPage.query().fetch(100, offset=index * 100)
            for page in pages:
                page.comment = ''
                page.put()
        elif title == 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)
예제 #6
0
파일: views.py 프로젝트: namongk/ecogwiki
    def get(self, path, head=False):
        cache.create_prc()
        user = get_cur_user()
        title = WikiPage.path_to_title(path)

        if title == u'titles':
            self.get_titles(user, head)
        elif title == u'changes':
            self.get_changes(user, head)
        elif title == u'index':
            self.get_index(user, head)
        elif title == u'posts':
            self.get_posts(user, head)
        elif title == u'search':
            self.get_search(user, head)
        elif title == u'opensearch':
            self.get_opensearch(head)
        elif title == u'randomly update related pages':
            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 title == u'preferences':
            self.get_preferences(user, head)
        elif title == 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 title == u'fix suggested pages':
            self.response.headers['Content-Type'] = 'text/plain; charset=utf-8'
            index = int(self.request.GET.get('index', '0'))
            pages = WikiPage.query().fetch(200, offset=index * 200)
            for page in pages:
                keys = [key for key in page.related_links.keys() if key.find('/') != -1]
                if len(keys) == 0:
                    continue
                else:
                    self.response.write('%s\n' % page.title)
                    for key in keys:
                        del page.related_links[key]
                        self.response.write('%s\n' % key)
                    page.put()
        elif title == u'fix comment':
            self.response.headers['Content-Type'] = 'text/plain; charset=utf-8'
            index = int(self.request.GET.get('index', '0'))
            pages = WikiPage.query().fetch(100, offset=index * 100)
            for page in pages:
                page.comment = ''
                page.put()
        elif title == 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)
예제 #7
0
파일: views.py 프로젝트: uastory/ecogwiki
    def get_sp(self, title, head):
        user = WikiPageHandler._get_cur_user()
        if title == "titles":
            self.get_sp_titles(user, head)
        elif title == "changes":
            self.get_sp_changes(user, head)
        elif title == "index":
            self.get_sp_index(user, head)
        elif title == "posts":
            self.get_sp_posts(user, head)
        elif title == "search":
            self.get_sp_search(user, head)
        elif title == "opensearch":
            self.get_sp_opensearch(user, head)
        elif title == "randomly_update_related_pages":
            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 title == "migrate":
            pass
        elif title == "fix_suggested_pages":
            self.response.headers["Content-Type"] = "text/plain; charset=utf-8"
            index = int(self.request.GET.get("index", "0"))
            pages = WikiPage.query().fetch(100, offset=index * 100)
            for page in pages:
                keys = [key for key in page.related_links.keys() if key.find("/") != -1]
                if len(keys) == 0:
                    continue
                else:
                    self.response.write("%s\n" % page.title)
                    for key in keys:
                        del page.related_links[key]
                        self.response.write("%s\n" % key)
                    page.put()
        elif title == "fix_comment":
            self.response.headers["Content-Type"] = "text/plain; charset=utf-8"
            index = int(self.request.GET.get("index", "0"))
            pages = WikiPage.query().fetch(100, offset=index * 100)
            for page in pages:
                page.comment = ""
                page.put()
        elif title == "fix_links":
            self.response.headers["Content-Type"] = "text/plain; charset=utf-8"

            def fix_it(links):
                for key, values in links.items():
                    if len(key.split("/")) == 2:
                        continue
                    if key == u"deathDate":
                        newkey = "Person/%s" % key
                    elif key == u"birthDate":
                        newkey = "Person/%s" % key
                    elif key == u"datePublished":
                        newkey = "Book/%s" % key
                    elif key == u"author":
                        newkey = "Book/%s" % key
                    else:
                        continue

                    if newkey not in links:
                        links[newkey] = values
                    else:
                        links[newkey] = list(set(links[newkey] + values))

                    del links[key]

            page = WikiPage.query(WikiPage.title == self.request.GET["title"]).fetch()[0]
            fix_it(page.inlinks)
            fix_it(page.outlinks)
            page.put()
            self.response.write("Done")
        elif title == "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)
예제 #8
0
파일: views.py 프로젝트: ledzpl/ecogwiki
    def get_sp(self, title, head):
        user = WikiPageHandler._get_cur_user()
        if title == 'titles':
            self.get_sp_titles(user, head)
        elif title == 'changes':
            self.get_sp_changes(user, head)
        elif title == 'index':
            self.get_sp_index(user, head)
        elif title == 'posts':
            self.get_sp_posts(user, head)
        elif title == 'search':
            self.get_sp_search(user, head)
        elif title == 'opensearch':
            self.get_sp_opensearch(user, head)
        elif title == 'randomly_update_related_pages':
            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 title == 'migrate':
            pass
        elif title == 'fix_suggested_pages':
            self.response.headers['Content-Type'] = 'text/plain; charset=utf-8'
            index = int(self.request.GET.get('index', '0'))
            pages = WikiPage.query().fetch(100, offset=index * 100)
            for page in pages:
                keys = [key for key in page.related_links.keys() if key.find('/') != -1]
                if len(keys) == 0:
                    continue
                else:
                    self.response.write('%s\n' % page.title)
                    for key in keys:
                        del page.related_links[key]
                        self.response.write('%s\n' % key)
                    page.put()
        elif title == 'fix_comment':
            self.response.headers['Content-Type'] = 'text/plain; charset=utf-8'
            index = int(self.request.GET.get('index', '0'))
            pages = WikiPage.query().fetch(100, offset=index * 100)
            for page in pages:
                page.comment = ''
                page.put()
        elif title == 'fix_links':
            self.response.headers['Content-Type'] = 'text/plain; charset=utf-8'

            def fix_it(links):
                for key, values in links.items():
                    if len(key.split('/')) == 2:
                        continue
                    if key == u'deathDate':
                        newkey = 'Person/%s' % key
                    elif key == u'birthDate':
                        newkey = 'Person/%s' % key
                    elif key == u'datePublished':
                        newkey = 'Book/%s' % key
                    elif key == u'author':
                        newkey = 'Book/%s' % key
                    else:
                        continue

                    if newkey not in links:
                        links[newkey] = values
                    else:
                        links[newkey] = list(set(links[newkey] + values))

                    del links[key]

            page = WikiPage.query(WikiPage.title == self.request.GET['title']).fetch()[0]
            fix_it(page.inlinks)
            fix_it(page.outlinks)
            page.put()
            self.response.write('Done')
        elif title == '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)