def setUp(self): self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_datastore_v3_stub() self.testbed.init_memcache_stub() self.testbed.init_taskqueue_stub() cache.prc.flush_all() WikiPage.get_by_title(u'The Mind\'s I').update_content(u'.schema Book\n[[author::Daniel Dennett]] and [[author::Douglas Hofstadter]]\n[[datePublished::1982]]', 0, u'') WikiPage.get_by_title(u'GEB').update_content(u'.schema Book\n{{author::Douglas Hofstadter}}\n[[datePublished::1979]]', 0, u'') WikiPage.get_by_title(u'Douglas Hofstadter').update_content(u'.schema Person', 0, u'') for p in WikiPage.query().fetch(): p.rebuild_data_index()
def setUp(self): self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_datastore_v3_stub() self.testbed.init_memcache_stub() self.testbed.init_taskqueue_stub() self.testbed.init_user_stub() cache.prc.flush_all() WikiPage.get_by_title(u'A').update_content(u'.schema Book\n.read all\nHello', 0, u'') WikiPage.get_by_title(u'B').update_content(u'.schema Book\n.read [email protected]\nThere', 0, u'') for p in WikiPage.query().fetch(): p.rebuild_data_index()
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)
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)
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)
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)