def get(self, page_name): user = self.check_login_status() view = self.request.get('v') if not page_name: if not view: page = Page.get_by_key_name('/') else: if view.isdigit(): view = int(view) pages = HistoryItem.get_by_page_name('/') if view <= len(pages): page = pages[int(view) - 1] else: self.abort(404) else: self.abort(404) else: if not view: page = Page.get_by_key_name(page_name) else: if view.isdigit(): view = int(view) pages = HistoryItem.get_by_page_name(page_name) if view <= len(pages): page = pages[int(view) - 1] else: self.abort(404) else: self.abort(404) self.render('wiki_edit.html', page=page, user=user)
def extract_page(self, output_path): with open(output_path) as file: html = file.read() soup = BeautifulSoup(html, 'html.parser') html_blocks = soup.findAll("line") blocks = [self.to_block(tag) for tag in html_blocks] page_size = soup.find("page") height, width = self.to_height_width(page_size) file_id = os.path.split(output_path)[-1] return Page(_id=file_id, blocks=blocks, height=height, width=width)
def post(self, page_name): user = self.check_login_status() content = self.request.get('content') if not page_name: page_name='/' page = Page(key_name=page_name, page_name=page_name, content=content, author_id=user.key().id()) page.put() history_item = HistoryItem(page_name=page_name, content=content, author_id=page.author_id, creation_date=page.created) history_item.put() self.redirect('/wiki') else: page = Page(key_name=page_name, page_name=page_name, content=content, author_id = user.key().id()) page.put() history_item = HistoryItem(page_name=page_name, content=content, author_id=page.author_id, creation_date=page.created) history_item.put() self.redirect('/wiki/%s' % page_name)
def get(self, page_name): user = self.check_login_status() view = self.request.get('v') if not page_name: if not view: page = Page.get_by_key_name('/') else: if view.isdigit(): view = int(view) pages = HistoryItem.get_by_page_name('/') if view <= len(pages): page = pages[view - 1] else: self.abort(404) else: self.abort(404) else: if not view: page = Page.get_by_key_name(page_name) else: if view.isdigit(): view = int(view) pages = HistoryItem.get_by_page_name(page_name) if view <= len(pages): page = pages[view - 1] else: self.abort(404) else: self.abort(404) if not page and page_name: self.redirect('/wiki/_edit/%s' % page_name) elif not page: self.redirect('/wiki/_edit') else: if view: self.render('wiki.html', user=user, page=page, view=view) else: self.render('wiki.html', user=user, page=page)
def post(self, page_id): self.page_id = page_id[1:] q = Page.Page.by_page_id(self.page_id) self.created_user = q.created_user if q else self.user.name self.title = self.request.get("title") self.content = self.request.get("content") self.modified_user = self.user.name have_error = False params = {"title": self.title, "content": self.content, "created_user": self.created_user, "modified_user": self.modified_user, "page_id": self.page_id } if self.title: check_title = Page.Page.by_title(self.title).title if Page.Page.by_title(self.title) else None print self.title if not self.title: params["error"] = "You must enter a title." have_error = True elif (not q and check_title) or (q and check_title and q.title != self.title): params["error"] = "That title is already taken." have_error = True elif not self.content: params["error"] = "You must enter content for the page." have_error = True if have_error: self.render("edit_page.html", **params) else: if q: q.title=self.title q.content=self.content q.modified_user=self.modified_user else: q = Page.Page(title=self.title, content=self.content, created_user=self.created_user, modified_user=self.modified_user, page_id=self.page_id, parent=Page.page_key()) q.put() self.redirect("/%s" % self.page_id)