add user homepage

This commit is contained in:
John Xina 2023-07-14 09:54:05 +08:00
parent 0c1e2cef02
commit 4dd1ea09e2
5 changed files with 85 additions and 5 deletions

20
app.py
View File

@ -147,7 +147,23 @@ async def forum_view():
@app.route('/home/main') @app.route('/home/main')
async def user_view(): async def user_view():
return 'UNDER CONSTRUCTION' pn = int(request.args.get('pn') or 1)
i = request.args.get('id')
try: # try converting it to user_id, otherwise using the string.
i = int(i)
except:
pass
async with aiotieba.Client() as tieba:
try:
hp = await tieba.get_homepage(i, pn)
except ValueError:
return await render_template('error.html', msg='您已超过最后页')
if len(hp[1]) == 0 and pn > 1:
return await render_template('error.html', msg='您已超过最后页')
return await render_template('user.html', hp=hp, pn=pn)
@app.route('/') @app.route('/')
async def main_view(): async def main_view():
@ -157,7 +173,7 @@ async def main_view():
@app.errorhandler(RuntimeError) @app.errorhandler(RuntimeError)
async def runtime_error_view(e): async def runtime_error_view(e):
if e.msg: if hasattr(e, 'msg'):
return await render_template('error.html', msg=e.msg) return await render_template('error.html', msg=e.msg)
return await render_template('error.html', msg='错误信息不可用') return await render_template('error.html', msg='错误信息不可用')

View File

@ -85,7 +85,7 @@
</div> </div>
</div> </div>
<footer> <footer>
<div><a href="https://0xacab.org/johnxina/rat">RAT Ain't Tieba</a></div> <div><a href="/">RAT Ain't Tieba</a></div>
<div><a href="https://0xacab.org/johnxina/rat/-/blob/no-masters/LICENSE">自豪地以 AGPLv3 释出</a></div> <div><a href="https://0xacab.org/johnxina/rat/-/blob/no-masters/LICENSE">自豪地以 AGPLv3 释出</a></div>
<div><a href="https://0xacab.org/johnxina/rat">源代码</a></div> <div><a href="https://0xacab.org/johnxina/rat">源代码</a></div>
</footer> </footer>

View File

@ -18,7 +18,7 @@
<h1>{{ msg }}</h1> <h1>{{ msg }}</h1>
</div> </div>
<footer> <footer>
<div><a href="https://0xacab.org/johnxina/rat">RAT Ain't Tieba</a></div> <div><a href="/">RAT Ain't Tieba</a></div>
<div><a href="https://0xacab.org/johnxina/rat/-/blob/no-masters/LICENSE">自豪地以 AGPLv3 释出</a></div> <div><a href="https://0xacab.org/johnxina/rat/-/blob/no-masters/LICENSE">自豪地以 AGPLv3 释出</a></div>
<div><a href="https://0xacab.org/johnxina/rat">源代码</a></div> <div><a href="https://0xacab.org/johnxina/rat">源代码</a></div>
</footer> </footer>

View File

@ -50,7 +50,7 @@
</form> </form>
</div> </div>
<footer> <footer>
<div><a href="https://0xacab.org/johnxina/rat">RAT Ain't Tieba</a></div> <div><a href="/">RAT Ain't Tieba</a></div>
<div><a href="https://0xacab.org/johnxina/rat/-/blob/no-masters/LICENSE">自豪地以 AGPLv3 释出</a></div> <div><a href="https://0xacab.org/johnxina/rat/-/blob/no-masters/LICENSE">自豪地以 AGPLv3 释出</a></div>
<div><a href="https://0xacab.org/johnxina/rat">源代码</a></div> <div><a href="https://0xacab.org/johnxina/rat">源代码</a></div>
</footer> </footer>

64
templates/user.html Normal file
View File

@ -0,0 +1,64 @@
<!DOCTYPE html>
<head>
<title>{{ hp[0].show_name }}的个人资料 - RAT</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="/static/css/main.css" rel="stylesheet">
<style>
.thread {
border: solid;
border-color: var(--bg-color);
border-width: 0;
border-top-width: 5px;
border-bottom-width: 5px;
}
</style>
</head>
<body>
<header class="bar-nav">
<img src="/proxy/avatar/{{ hp[0].portrait }}"></nav>
<div>
<div class="title">{{ hp[0].show_name }} <small>{{ hp[0].user_name }}</small></div>
<div class="description">{{ hp[0].sign }}</div>
<div class="stats">
<small>关注数: {{ hp[0].follow_num|intsep }}</small>
<small>粉丝数: {{ hp[0].fan_num|intsep }}</small>
<small>发帖数: {{ hp[0].post_num|intsep }}</small>
<small>关注贴吧数: {{ hp[0].forum_num|intsep }}</small>
</div>
</div>
</header>
<div class="list">
{% for t in hp[1] %}
<div class="thread">
<div class="summary">
<a href="/p/{{ t.tid }}">{{ t.text }} </a>
</div>
</div>
{% endfor %}
</div>
<div class="paginator">
{% if pn > 1 %}
<a href="/home/main?id={{ hp[0].user_id }}&pn={{ 1 }}">首页</a>
{% endif %}
{% for i in range(5) %}
{% set np = pn - 5 + i %}
{% if np > 0 %}
<a href="/home/main?id={{ hp[0].user_id }}&pn={{ np }}">{{ np }}</a>
{% endif %}
{% endfor %}
<a>{{ pn }}</a>
<a href="/home/main?id={{ hp[0].user_id }}&pn={{ pn+1 }}">下一页</a>
</div>
<footer>
<div><a href="/">RAT Ain't Tieba</a></div>
<div><a href="https://0xacab.org/johnxina/rat/-/blob/no-masters/LICENSE">自豪地以 AGPLv3 释出</a></div>
<div><a href="https://0xacab.org/johnxina/rat">源代码</a></div>
</footer>
</body>