From 6267eea8627d802e8ba23a8fb5220ea0a2862030 Mon Sep 17 00:00:00 2001 From: wanglulu <3409274047@qq.com> Date: Fri, 6 Jun 2025 18:38:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E4=BA=86=E2=80=9C=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E4=B9=8B=E5=90=8E=E8=B7=B3=E5=87=BA=E6=96=87=E7=AB=A0?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E9=94=99=E8=AF=AF=EF=BC=8Ctoday=5Farticle?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA=E2=80=9D=E7=9A=84bug=EF=BC=8C=E4=BD=86?= =?UTF-8?q?=E5=B9=B6=E6=9C=AA=E7=9C=9F=E6=AD=A3=E8=8E=B7=E5=8F=96=E6=96=87?= =?UTF-8?q?=E7=AB=A0=E6=95=B0=E6=8D=AE=EF=BC=8C=E5=8F=AA=E6=98=AF=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E4=BA=86=E4=B8=80=E4=B8=AA=E6=B5=8B=E8=AF=95=E6=96=87?= =?UTF-8?q?=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Article.py | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/app/Article.py b/app/Article.py index 98d56b6..cc96b1d 100644 --- a/app/Article.py +++ b/app/Article.py @@ -53,10 +53,10 @@ def get_article_body(s): def get_today_article(user_word_list, visited_articles): if visited_articles is None: visited_articles = { - "index" : 0, # 为 article_ids 的索引 + "index": 0, # 为 article_ids 的索引 "article_ids": [] # 之前显示文章的id列表,越后越新 } - if visited_articles["index"] > len(visited_articles["article_ids"])-1: # 生成新的文章,因此查找所有的文章 + if visited_articles["index"] > len(visited_articles["article_ids"]) - 1: # 生成新的文章,因此查找所有的文章 result = get_all_articles() else: # 生成阅读过的文章,因此查询指定 article_id 的文章 if visited_articles["article_ids"][visited_articles["index"]] == 'null': # 可能因为直接刷新页面导致直接去查询了'null',因此当刷新的页面的时候,需要直接进行“上一篇”操作 @@ -82,9 +82,9 @@ def get_today_article(user_word_list, visited_articles): user_level = user_difficulty_level(d_user, d3) # more consideration as user's behaviour is dynamic. Time factor should be considered. logging.debug('* get_today_article(): done') text_level = 0 - if visited_articles["index"] > len(visited_articles["article_ids"])-1: # 生成新的文章 + if visited_articles["index"] > len(visited_articles["article_ids"]) - 1: # 生成新的文章 amount_of_visited_articles = len(visited_articles["article_ids"]) - amount_of_existing_articles = result.__len__() + amount_of_existing_articles = len(result) if amount_of_visited_articles == amount_of_existing_articles: # 如果当前阅读过的文章的数量 == 存在的文章的数量,即所有的书本都阅读过了 result_of_generate_article = "had read all articles" else: @@ -106,11 +106,23 @@ def get_today_article(user_word_list, visited_articles): text_level = text_difficulty_level(d['text'], d3) result_of_generate_article = "found" - today_article = None - if d: + if d is None: + # 如果没有找到合适的文章,返回一个默认的文章对象 + today_article = { + "user_level": '0.0', + "text_level": '0.0', + "date": datetime.now().strftime('%Y-%m-%d'), + "article_title": "Default Article", + "article_body": "This is a default article for testing purposes.", + "source": "Default Source", + "question": "What is this article about?", + "answer": "It's a default article for testing.", + "ratio": 0.0 + } + else: oxford_words = load_oxford_words(oxford_words_path) - oxford_word_count, total_words = count_oxford_words(d['text'],oxford_words) - ratio = calculate_ratio(oxford_word_count,total_words) + oxford_word_count, total_words = count_oxford_words(d['text'], oxford_words) + ratio = calculate_ratio(oxford_word_count, total_words) today_article = { "user_level": '%4.1f' % user_level, "text_level": '%4.1f' % text_level, @@ -120,7 +132,7 @@ def get_today_article(user_word_list, visited_articles): "source": d["source"], "question": get_question_part(d['question']), "answer": get_answer_part(d['question']), - "ratio" : ratio + "ratio": ratio } return visited_articles, today_article, result_of_generate_article