Compare commits
	
		
			18 Commits 
		
	
	
		
			master
			...
			Bug493-Gon
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
									
								
								 | 
						4cf201095d | |
| 
							
							
								
									
								
								 | 
						654fd52c44 | |
| 
							
							
								
									
								
								 | 
						a5c792b782 | |
| 
							
							
								
									
								
								 | 
						0549bd9035 | |
| 
							
							
								
									
								
								 | 
						705aa5efcb | |
| 
							
							
								
									
								
								 | 
						61f46f7d58 | |
| 
							
							
								 | 
						b9a6e4407e | |
| 
							
							
								 | 
						0962d95ce1 | |
| 
							
							
								 | 
						071d1c968b | |
| 
							
							
								 | 
						68b254f96c | |
| 
							
							
								 | 
						4fb1cad745 | |
| 
							
							
								 | 
						2a553e0f8f | |
| 
							
							
								 | 
						4513a80bdd | |
| 
							
							
								 | 
						e73c66edd3 | |
| 
							
							
								 | 
						69835c7f8d | |
| 
							
							
								
									
								
								 | 
						71cc627aad | |
| 
							
							
								
									
								
								 | 
						22775f9797 | |
| 
							
							
								
									
								
								 | 
						9e36644215 | 
| 
						 | 
					@ -180,6 +180,10 @@ Demo video link: https://b23.tv/QuB77m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Bug report: http://118.25.96.118/bugzilla/show_bug.cgi?id=215
 | 
					Bug report: http://118.25.96.118/bugzilla/show_bug.cgi?id=215
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<<<<<<< HEAD
 | 
				
			||||||
 | 
					龚科丞   
 | 
				
			||||||
 | 
					*Last modified on 2021-10-17*
 | 
				
			||||||
 | 
					=======
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -194,3 +198,4 @@ Bug report: http://118.25.96.118/bugzilla/show_bug.cgi?id=489
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*Last modified on 2023-01-30*
 | 
					*Last modified on 2023-01-30*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					>>>>>>> d9f6df7fbe585395a19b9a08c411d841b6b89fd4
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -84,6 +84,10 @@ def mainpage():
 | 
				
			||||||
        content = escape(request.form['content'])
 | 
					        content = escape(request.form['content'])
 | 
				
			||||||
        f = WordFreq(content)
 | 
					        f = WordFreq(content)
 | 
				
			||||||
        lst = f.get_freq()
 | 
					        lst = f.get_freq()
 | 
				
			||||||
 | 
					        for i in lst:
 | 
				
			||||||
 | 
					          if '&' in i[0]:
 | 
				
			||||||
 | 
					              i[0].replace('&','\'')
 | 
				
			||||||
 | 
					        #此处由于找不到输出的所以对其输入的格式进行重新规范
 | 
				
			||||||
        # save history
 | 
					        # save history
 | 
				
			||||||
        d = load_freq_history(path_prefix + 'static/frequency/frequency.p')
 | 
					        d = load_freq_history(path_prefix + 'static/frequency/frequency.p')
 | 
				
			||||||
        lst_history = pickle_idea.dict2lst(d)
 | 
					        lst_history = pickle_idea.dict2lst(d)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,6 +37,16 @@
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
<div class="container-fluid">
 | 
					<div class="container-fluid">
 | 
				
			||||||
    <p><b>English Pal for <font id="username" color="red">{{ username }}</font></b>
 | 
					    <p><b>English Pal for <font id="username" color="red">{{ username }}</font></b>
 | 
				
			||||||
 | 
					        <a class="btn btn-secondary" href="/logout" role="button">退出</a>
 | 
				
			||||||
 | 
					        <a class="btn btn-secondary" href="/reset" role="button">重设密码</a>
 | 
				
			||||||
 | 
					    </p>
 | 
				
			||||||
 | 
					    {% if flashed_messages != [] %}
 | 
				
			||||||
 | 
					        <div class="alert alert-warning" role="alert" id="warn_info">
 | 
				
			||||||
 | 
					            {{ flashed_messages|safe }}
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    {% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        {% if username ==  admin_name %}
 | 
					        {% if username ==  admin_name %}
 | 
				
			||||||
        <a class="btn btn-secondary" href="/admin" role="button" onclick="stopRead()">管理</a>
 | 
					        <a class="btn btn-secondary" href="/admin" role="button" onclick="stopRead()">管理</a>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -102,8 +102,7 @@ def deleteword(username, word):
 | 
				
			||||||
    '''
 | 
					    '''
 | 
				
			||||||
    user_freq_record = path_prefix + 'static/frequency/' + 'frequency_%s.pickle' % (username)
 | 
					    user_freq_record = path_prefix + 'static/frequency/' + 'frequency_%s.pickle' % (username)
 | 
				
			||||||
    pickle_idea2.deleteRecord(user_freq_record, word)
 | 
					    pickle_idea2.deleteRecord(user_freq_record, word)
 | 
				
			||||||
    # 模板userpage_get.html中删除单词是异步执行,而flash的信息后续是同步执行的,所以注释这段代码;同时如果这里使用flash但不提取信息,则会影响 signup.html的显示。bug复现:删除单词后,点击退出,点击注册,注册页面就会出现提示信息
 | 
					    flash(f'{word} is no longer in your word list.')
 | 
				
			||||||
    # flash(f'{word} is no longer in your word list.')
 | 
					 | 
				
			||||||
    return "success"
 | 
					    return "success"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -151,7 +150,7 @@ def userpage(username):
 | 
				
			||||||
                               admin_name=ADMIN_NAME,
 | 
					                               admin_name=ADMIN_NAME,
 | 
				
			||||||
                               username=username,
 | 
					                               username=username,
 | 
				
			||||||
                               session=session,
 | 
					                               session=session,
 | 
				
			||||||
                               # flashed_messages=get_flashed_messages(), 仅有删除单词的时候使用到flash,而删除单词是异步执行,这里的信息提示是同步执行,所以就没有存在的必要了
 | 
					                               flashed_messages=get_flashed_messages(),
 | 
				
			||||||
                               today_article=today_article,
 | 
					                               today_article=today_article,
 | 
				
			||||||
                               result_of_generate_article=result_of_generate_article,
 | 
					                               result_of_generate_article=result_of_generate_article,
 | 
				
			||||||
                               d_len=len(d),
 | 
					                               d_len=len(d),
 | 
				
			||||||
| 
						 | 
					@ -188,3 +187,13 @@ def get_time():
 | 
				
			||||||
    '''
 | 
					    '''
 | 
				
			||||||
    return datetime.now().strftime('%Y%m%d%H%M')  # upper to minutes
 | 
					    return datetime.now().strftime('%Y%m%d%H%M')  # upper to minutes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_flashed_messages_if_any():
 | 
				
			||||||
 | 
					    '''
 | 
				
			||||||
 | 
					    在用户界面显示黄色提示信息
 | 
				
			||||||
 | 
					    :return: 包含HTML标签的提示信息
 | 
				
			||||||
 | 
					    '''
 | 
				
			||||||
 | 
					    messages = get_flashed_messages
 | 
				
			||||||
 | 
					    s = ''
 | 
				
			||||||
 | 
					    for message in messages:
 | 
				
			||||||
 | 
					        s += message
 | 
				
			||||||
 | 
					    return s
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,20 +38,46 @@ def file2str(fname):#文件转字符
 | 
				
			||||||
    return s
 | 
					    return s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def str2chararray(str):  # 字符串转字符数组
 | 
				
			||||||
 | 
					    chararray = []
 | 
				
			||||||
 | 
					    for i in range(len(str)):
 | 
				
			||||||
 | 
					        chararray.append(str[i])
 | 
				
			||||||
 | 
					    return chararray
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def remove_punctuation(s): # 这里是s是形参 (parameter)。函数被调用时才给s赋值。
 | 
					def remove_punctuation(s): # 这里是s是形参 (parameter)。函数被调用时才给s赋值。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # carr = str2chararray(s)  # 字符串转字符数组
 | 
				
			||||||
 | 
					    # print(carr)
 | 
				
			||||||
 | 
					    special_characters = '&_~=+[]%^@.,?!:;#()"“”—‘’|/\\<>{}'  # 把里面的字符都去掉
 | 
				
			||||||
 | 
					    special_words = ('$lt', '$gt', '$')  # 特殊词汇
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    special_characters = '\_©~<=>+-/[]*&$%^@.,?!:;#()"“”—‘’{}|' # 把里面的字符都去掉
 | 
					    special_characters = '\_©~<=>+-/[]*&$%^@.,?!:;#()"“”—‘’{}|' # 把里面的字符都去掉
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for c in special_characters:
 | 
					    for c in special_characters:
 | 
				
			||||||
        s = s.replace(c, ' ') # 防止出现把 apple,apple 移掉逗号后变成 appleapple 情况
 | 
					        s = s.replace(c, ' ')  # 防止出现把 apple,apple 移掉逗号后变成 appleapple 情况
 | 
				
			||||||
 | 
					    carr = str2chararray(s)  # 字符串转字符数组
 | 
				
			||||||
 | 
					    for i, value in enumerate(carr):
 | 
				
			||||||
 | 
					        if value == '&':  # 遍历替换
 | 
				
			||||||
 | 
					            carr[i] = '\''
 | 
				
			||||||
 | 
					            print('sss' + s)
 | 
				
			||||||
 | 
					            for j in range(1,5):
 | 
				
			||||||
 | 
					                if carr[i+j] in [' ','3','9']:
 | 
				
			||||||
 | 
					                    carr[i + j]=''
 | 
				
			||||||
 | 
					    s = ''.join(carr)  # 字符数组转字符串
 | 
				
			||||||
 | 
					    print('sss'+s)
 | 
				
			||||||
 | 
					    for w in special_words:  # 替换字符串中的剩余特殊字符
 | 
				
			||||||
 | 
					        s = s.replace(w, ' ')
 | 
				
			||||||
    s = s.replace('--', ' ')
 | 
					    s = s.replace('--', ' ')
 | 
				
			||||||
    s = s.strip() # 去除前后的空格
 | 
					    s = s.strip()  # 去除前后的空格
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if '\'' in s:
 | 
					    if '\'' in s:
 | 
				
			||||||
        n = len(s)
 | 
					        n = len(s)
 | 
				
			||||||
        t = '' # 用来收集我需要保留的字符
 | 
					        t = ''  # 用来收集我需要保留的字符
 | 
				
			||||||
        for i in range(n): # 只有单引号前后都有英文字符,才保留
 | 
					        for i in range(n):  # 只有单引号前后都有英文字符,才保留
 | 
				
			||||||
            if s[i] == '\'':
 | 
					            if s[i] == '\'':
 | 
				
			||||||
                i_is_ok = i - 1 >= 0 and i + 1 < n
 | 
					                i_is_ok = i - 1 >= 0 and i + 1 < n
 | 
				
			||||||
                if i_is_ok and s[i-1] in string.ascii_letters and s[i+1] in string.ascii_letters:
 | 
					                if i_is_ok and s[i - 1] in string.ascii_letters and s[i + 1] in string.ascii_letters:
 | 
				
			||||||
                    t += s[i]
 | 
					                    t += s[i]
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                t += s[i]
 | 
					                t += s[i]
 | 
				
			||||||
| 
						 | 
					@ -60,6 +86,7 @@ def remove_punctuation(s): # 这里是s是形参 (parameter)。函数被调用
 | 
				
			||||||
        return s
 | 
					        return s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def sort_in_descending_order(lst):# 单词按频率降序排列
 | 
					def sort_in_descending_order(lst):# 单词按频率降序排列
 | 
				
			||||||
    lst2 = sorted(lst, reverse=True, key=lambda x: (x[1], x[0]))
 | 
					    lst2 = sorted(lst, reverse=True, key=lambda x: (x[1], x[0]))
 | 
				
			||||||
    return lst2
 | 
					    return lst2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue