def index(site, page_id): # パラメータチェックとメインコンテンツ生成 page_id = int(page_id) try: contents = Page.get_by_site(page_id, site.id) except Page.DoesNotExist: app_log(logging.ERROR, "Page does not exist site_id:{} page_id:{}".format(site.id, page_id)) return error_page(site, ErrorPageCategory.DoesNotExist) # ページが有効期間外ならエラー if not contents.is_enable(): app_log(logging.ERROR, "Page is not open site_id:{} page_id:{}".format(site.id, page_id)) return error_page(site, ErrorPageCategory.NotOpen) # 追加用ページ extend_page = contents.get_history_from_myself() if contents and contents.prev_page: ignore_ids = [page_id, contents.prev_page.id] else: ignore_ids = [page_id] try: svm = generate_index_contents(site, extend_page=extend_page, ignore_ids=ignore_ids) except SiteEmptyError: app_log(logging.WARNING, "site is empty site_id:{} page_id:{}".format(site.id, page_id)) return error_page(site, ErrorPageCategory.SiteIsEmpty) # pvを記録 if random.randint(0, 20) == 1: contents.count_up(20) return render_template('dat/page.html', contents=contents, site=site, svm=svm)
def history(site, start_page_id): """ 過去ログ """ _limit = 20 svm = generate_index_contents(site) # パラメータチェック start_page_id = int(start_page_id) if start_page_id == 100000000: pages = Page.get_new_history(site_id=site.id, _limit=_limit) else: pages = Page.get_history(site_id=site.id, pk_until=start_page_id, _limit=_limit) # pageのランク付け pages = page_rank(pages) # 次のページの遷移先 is_next = None if pages and len(pages) == _limit: last_page_id = pages[-1].id is_next = last_page_id - 1 return render_template('dat/history.html', site=site, keyword=keyword, list_pages=pages, svm=svm, is_next=is_next)
def index(site): """ 各サイト毎のトップページ """ try: svm = generate_index_contents(site) except SiteEmptyError: app_log(logging.WARNING, "site is empty site_id:{}".format(site.id)) return error_page(site, ErrorPageCategory.SiteIsEmpty) return render_template('root/index.html', svm=svm, site=site)
def error_page(site, error): """ :param site: Site :param error: ErrorPageCategory :return: """ contents = Page(id=100000000, site_id=site.id, dat_id=0, page=error.value, page_top=error.value, _keywords="", created_at=datetime.datetime.now()) svm = None try: svm = generate_index_contents(site) except SiteEmptyError: pass return render_template('dat/page_error.html', contents=contents, site=site, svm=svm)