Keldos commited on
Commit
c5e6e9b
1 Parent(s): b25e7e2

feat: 禁止手动重命名包含特殊字符

Browse files
ChuanhuChatbot.py CHANGED
@@ -469,6 +469,7 @@ with gr.Blocks(theme=small_and_beautiful_theme) as demo:
469
  regenerate_i18n=i18n("重新生成"),
470
  deleteRound_i18n=i18n("删除这轮问答"),
471
  renameChat_i18n=i18n("重命名该对话"),
 
472
  ))
473
  with gr.Box(elem_id="fake-gradio-components", visible=False):
474
  updateChuanhuBtn = gr.Button(
 
469
  regenerate_i18n=i18n("重新生成"),
470
  deleteRound_i18n=i18n("删除这轮问答"),
471
  renameChat_i18n=i18n("重命名该对话"),
472
+ validFileName_i18n=i18n("请输入有效的文件名,不要包含以下特殊字符:"),
473
  ))
474
  with gr.Box(elem_id="fake-gradio-components", visible=False):
475
  updateChuanhuBtn = gr.Button(
locale/en_US.json CHANGED
@@ -55,6 +55,7 @@
55
  "你真的要删除 ": "Are you sure you want to delete ",
56
  " 吗?": " ?",
57
  "重命名该对话": "Rename this chat",
 
58
  "🔄 检查更新...": "🔄 Check for Update...",
59
  "您使用的就是最新版!": "You are using the latest version!",
60
  "正在尝试更新...": "Trying to update...",
 
55
  "你真的要删除 ": "Are you sure you want to delete ",
56
  " 吗?": " ?",
57
  "重命名该对话": "Rename this chat",
58
+ "请输入有效的文件名,不要包含以下特殊字符:": "Please enter a valid file name, do not include the following special characters: ",
59
  "🔄 检查更新...": "🔄 Check for Update...",
60
  "您使用的就是最新版!": "You are using the latest version!",
61
  "正在尝试更新...": "Trying to update...",
locale/ja_JP.json CHANGED
@@ -55,6 +55,7 @@
55
  "你真的要删除 ": "本当に ",
56
  " 吗?": " を削除してもよろしいですか?",
57
  "重命名该对话": "会話の名前を変更",
 
58
  "🔄 检查更新...": "🔄 アップデートをチェック...",
59
  "您使用的就是最新版!": "最新バージョンを使用しています!",
60
  "正在尝试更新...": "更新を試みています...",
 
55
  "你真的要删除 ": "本当に ",
56
  " 吗?": " を削除してもよろしいですか?",
57
  "重命名该对话": "会話の名前を変更",
58
+ "请输入有效的文件名,不要包含以下特殊字符:": "有効なファイル名を入力してください。以下の特殊文字は使用しないでください:",
59
  "🔄 检查更新...": "🔄 アップデートをチェック...",
60
  "您使用的就是最新版!": "最新バージョンを使用しています!",
61
  "正在尝试更新...": "更新を試みています...",
locale/ko_KR.json CHANGED
@@ -55,6 +55,7 @@
55
  "你真的要删除 ": "정말로 ",
56
  " 吗?": " 을(를) 삭제하시겠습니까?",
57
  "重命名该对话": "대화 이름 변경",
 
58
  "🔄 检查更新...": "🔄 업데이트 확인...",
59
  "您使用的就是最新版!": "최신 버전을 사용하고 있습니다!",
60
  "正在尝试更新...": "업데이트를 시도 중...",
 
55
  "你真的要删除 ": "정말로 ",
56
  " 吗?": " 을(를) 삭제하시겠습니까?",
57
  "重命名该对话": "대화 이름 변경",
58
+ "请输入有效的文件名,不要包含以下特殊字符:": "유효한 파일 이름을 입력하세요. 다음 특수 문자는 포함하지 마세요: ",
59
  "🔄 检查更新...": "🔄 업데이트 확인...",
60
  "您使用的就是最新版!": "최신 버전을 사용하고 있습니다!",
61
  "正在尝试更新...": "업데이트를 시도 중...",
locale/ru_RU.json CHANGED
@@ -55,6 +55,7 @@
55
  "你真的要删除 ": "Вы уверены, что хотите удалить ",
56
  " 吗?": " ?",
57
  "重命名该对话": "Переименовать этот диалог",
 
58
  "🔄 检查更新...": "🔄 Проверить обновления...",
59
  "您使用的就是最新版!": "Вы используете последнюю версию!",
60
  "正在尝试更新...": "Попытка обновления...",
 
55
  "你真的要删除 ": "Вы уверены, что хотите удалить ",
56
  " 吗?": " ?",
57
  "重命名该对话": "Переименовать этот диалог",
58
+ "请输入有效的文件名,不要包含以下特殊字符:": "Введите действительное имя файла, не содержащее следующих специальных символов: ",
59
  "🔄 检查更新...": "🔄 Проверить обновления...",
60
  "您使用的就是最新版!": "Вы используете последнюю версию!",
61
  "正在尝试更新...": "Попытка обновления...",
locale/sv_SE.json CHANGED
@@ -55,6 +55,7 @@
55
  "你真的要删除 ": "Är du säker på att du vill ta bort ",
56
  " 吗?": " ?",
57
  "重命名该对话": "Byt namn på dialogen",
 
58
  "🔄 检查更新...": "🔄 Sök efter uppdateringar...",
59
  "您使用的就是最新版!": "Du använder den senaste versionen!",
60
  "正在尝试更新...": "Försöker uppdatera...",
 
55
  "你真的要删除 ": "Är du säker på att du vill ta bort ",
56
  " 吗?": " ?",
57
  "重命名该对话": "Byt namn på dialogen",
58
+ "请输入有效的文件名,不要包含以下特殊字符:": "Ange ett giltigt filnamn, använd inte följande specialtecken: ",
59
  "🔄 检查更新...": "🔄 Sök efter uppdateringar...",
60
  "您使用的就是最新版!": "Du använder den senaste versionen!",
61
  "正在尝试更新...": "Försöker uppdatera...",
web_assets/html/web_config.html CHANGED
@@ -16,5 +16,6 @@
16
  <span id="regenerate_i18n">{regenerate_i18n}</span>
17
  <span id="deleteRound_i18n">{deleteRound_i18n}</span>
18
  <span id="renameChat_i18n">{renameChat_i18n}</span>
 
19
  </div>
20
  </div>
 
16
  <span id="regenerate_i18n">{regenerate_i18n}</span>
17
  <span id="deleteRound_i18n">{deleteRound_i18n}</span>
18
  <span id="renameChat_i18n">{renameChat_i18n}</span>
19
+ <span id="validFileName_i18n">{validFileName_i18n}</span>
20
  </div>
21
  </div>
web_assets/javascript/chat-list.js CHANGED
@@ -54,16 +54,27 @@ function setChatList() {
54
  return;
55
  }
56
 
 
57
  function saveChatHistory(a, b, c, d) {
58
  var fileName = b;
59
- fileName = prompt(renameChat_i18n, b);
60
- if (fileName && fileName.trim() !== "") {
61
- return [a, fileName, c, d];
62
- } else {
63
- return [a, "", c, d];
 
 
 
 
64
  }
65
  }
66
 
 
 
 
 
 
 
67
  const selectedChatBtns = `
68
  <button id="history-rename-btn"><svg class="icon-need-hover" stroke="currentColor" fill="none" stroke-width="2" height="18px" width="18px" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><path d="M12 20h9"></path><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"></path></svg></button>
69
  <button id="history-delete-btn"><svg class="icon-need-hover" stroke="currentColor" fill="none" stroke-width="2" height="18px" width="18px" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path><line x1="10" y1="11" x2="10" y2="17"></line><line x1="14" y1="11" x2="14" y2="17"></line></svg></button>
 
54
  return;
55
  }
56
 
57
+
58
  function saveChatHistory(a, b, c, d) {
59
  var fileName = b;
60
+
61
+ while (true) {
62
+ fileName = prompt(renameChat_i18n, fileName);
63
+
64
+ if (isValidFileName(fileName)) {
65
+ return [a, fileName, c, d];
66
+ } else {
67
+ alert(validFileName_i18n + "!@#$%^&*()<>?/\\|}{~:");
68
+ }
69
  }
70
  }
71
 
72
+ function isValidFileName(fileName) {
73
+ // 使用正则表达式来检查文件名是否包含不合格字符
74
+ var regex = /[!@#$%^&*()<>?/\\|}{~:]/;
75
+ return !regex.test(fileName) && fileName.trim() !== "";
76
+ }
77
+
78
  const selectedChatBtns = `
79
  <button id="history-rename-btn"><svg class="icon-need-hover" stroke="currentColor" fill="none" stroke-width="2" height="18px" width="18px" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><path d="M12 20h9"></path><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"></path></svg></button>
80
  <button id="history-delete-btn"><svg class="icon-need-hover" stroke="currentColor" fill="none" stroke-width="2" height="18px" width="18px" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path><line x1="10" y1="11" x2="10" y2="17"></line><line x1="14" y1="11" x2="14" y2="17"></line></svg></button>
web_assets/javascript/localization.js CHANGED
@@ -12,6 +12,8 @@ var updateSuccess_i18n;
12
  var updateFailure_i18n;
13
  var regenerate_i18n;
14
  var deleteRound_i18n;
 
 
15
 
16
  function setLoclize() {
17
  forView_i18n = gradioApp().querySelector('#forView_i18n').innerText;
@@ -24,6 +26,7 @@ function setLoclize() {
24
  regenerate_i18n = gradioApp().querySelector('#regenerate_i18n').innerText;
25
  deleteRound_i18n = gradioApp().querySelector('#deleteRound_i18n').innerText;
26
  renameChat_i18n = gradioApp().querySelector('#renameChat_i18n').innerText;
 
27
  }
28
 
29
  function i18n(msg) {
 
12
  var updateFailure_i18n;
13
  var regenerate_i18n;
14
  var deleteRound_i18n;
15
+ var renameChat_i18n;
16
+ var validFileName_i18n;
17
 
18
  function setLoclize() {
19
  forView_i18n = gradioApp().querySelector('#forView_i18n').innerText;
 
26
  regenerate_i18n = gradioApp().querySelector('#regenerate_i18n').innerText;
27
  deleteRound_i18n = gradioApp().querySelector('#deleteRound_i18n').innerText;
28
  renameChat_i18n = gradioApp().querySelector('#renameChat_i18n').innerText;
29
+ validFileName_i18n = gradioApp().querySelector('#validFileName_i18n').innerText;
30
  }
31
 
32
  function i18n(msg) {