Пример #1
0
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)
Пример #2
0
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)
Пример #3
0
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)
Пример #4
0
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)