0
0
Fork 0

Merge pull request 'Lanhui-go-bootstrap' (#11) from Lanhui-go-bootstrap into master

Reviewed-on: http://121.4.94.30:3000/mrlan/EnglishPal/pulls/11

Appearance stuff.

Hui
BugFix284
mrlan 2021-08-01 22:21:50 +08:00
commit 274578d380
1 changed files with 23 additions and 5 deletions

View File

@ -81,6 +81,15 @@ def within_range(x, y, r):
return x > y and abs(x - y) <= r return x > y and abs(x - y) <= r
def get_article_title(s):
return s.split('\n')[0]
def get_article_body(s):
lst = s.split('\n')
lst.pop(0) # remove the first line
return '\n'.join(lst)
def get_today_article(user_word_list, articleID): def get_today_article(user_word_list, articleID):
rq = RecordQuery(path_prefix + 'static/wordfreqapp.db') rq = RecordQuery(path_prefix + 'static/wordfreqapp.db')
@ -111,12 +120,17 @@ def get_today_article(user_word_list, articleID):
break break
s = '<div class="alert alert-success" role="alert">According to your word list, your level is <span class="badge bg-success">%4.2f</span> and we have chosen an article with a difficulty level of <span class="badge bg-success">%4.2f</span> for you.</div>' % (user_level, text_level) s = '<div class="alert alert-success" role="alert">According to your word list, your level is <span class="badge bg-success">%4.2f</span> and we have chosen an article with a difficulty level of <span class="badge bg-success">%4.2f</span> for you.</div>' % (user_level, text_level)
s += '<p><b>%s</b></p>' % (d['date']) s += '<p class="text-muted">Article added on: %s</p>' % (d['date'])
s += '<p><font size=+2>%s</font></p>' % (d['text']) s += '<div class="p-3 mb-2 bg-light text-dark">'
s += '<p><i>%s</i></p>' % (d['source']) article_title = get_article_title(d['text'])
article_body = get_article_body(d['text'])
s += '<p class="display-3">%s</p>' % (article_title)
s += '<p class="lead">%s</p>' % (article_body)
s += '<p><small class="text-muted">%s</small></p>' % (d['source'])
s += '<p><b>%s</b></p>' % (get_question_part(d['question'])) s += '<p><b>%s</b></p>' % (get_question_part(d['question']))
s = s.replace('\n', '<br/>') s = s.replace('\n', '<br/>')
s += '%s' % (get_answer_part(d['question'])) s += '%s' % (get_answer_part(d['question']))
s += '</div>'
session['articleID'] = d['article_id'] session['articleID'] = d['article_id']
return s return s
@ -237,6 +251,7 @@ def mainpage():
</head> </head>
<body> <body>
''' '''
page += '<div class="container-fluid">'
page += '<p><b><font size="+3" color="red">English Pal - Learn English smartly!</font></b></p>' page += '<p><b><font size="+3" color="red">English Pal - Learn English smartly!</font></b></p>'
if session.get('logged_in'): if session.get('logged_in'):
page += ' <a href="%s">%s</a></p>\n' % (session['username'], session['username']) page += ' <a href="%s">%s</a></p>\n' % (session['username'], session['username'])
@ -260,6 +275,7 @@ def mainpage():
page += '<a href="%s">%s</a> %d\n' % (youdao_link(x[0]), x[0], x[1]) page += '<a href="%s">%s</a> %d\n' % (youdao_link(x[0]), x[0], x[1])
page += ' <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>' page += ' <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>'
page += '</div>'
page += '</body></html>' page += '</body></html>'
return page return page
@ -341,9 +357,10 @@ def userpage(username):
page += '<meta name="format-detection" content="telephone=no" />\n' # forbid treating numbers as cell numbers in smart phones page += '<meta name="format-detection" content="telephone=no" />\n' # forbid treating numbers as cell numbers in smart phones
page += '<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">' page += '<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">'
page += '<title>EnglishPal Study Room for %s</title>' % (username) page += '<title>EnglishPal Study Room for %s</title>' % (username)
page += '<p><b>English Pal for <font color="red">%s</font></b> <a href="/logout">登出</a></p>' % (username) page += '<div class="container-fluid">'
page += '<p><b>English Pal for <font color="red">%s</font></b> <a class="btn btn-secondary" href="/logout" role="button">登出</a></p>' % (username)
page += '<p><b>阅读文章并回答问题</b></p>\n' page += '<p><b>阅读文章并回答问题</b></p>\n'
page += '<p><a class="btn btn-success" href="/%s/reset" role="button"> 下一篇 </a></p>' % (username) page += '<p><a class="btn btn-success" href="/%s/reset" role="button"> 下一篇 Next Article </a></p>' % (username)
page += '<div id="text-content">%s</div>' % (get_today_article(user_freq_record, session['articleID'])) page += '<div id="text-content">%s</div>' % (get_today_article(user_freq_record, session['articleID']))
page += '<p><b>收集生词吧</b> (可以在正文中划词,也可以复制黏贴)</p>' page += '<p><b>收集生词吧</b> (可以在正文中划词,也可以复制黏贴)</p>'
page += '<form method="post" action="/%s">' % (username) page += '<form method="post" action="/%s">' % (username)
@ -398,6 +415,7 @@ def userpage(username):
elif isinstance(d[word], int): # d[word] is a frequency. to migrate from old format. elif isinstance(d[word], int): # d[word] is a frequency. to migrate from old format.
page += '<a href="%s">%s</a>%d\n' % (youdao_link(word), word, freq) page += '<a href="%s">%s</a>%d\n' % (youdao_link(word), word, freq)
page += '<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>' page += '<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>'
page += '</div>'
return page return page
### Sign-up, login, logout ### ### Sign-up, login, logout ###