kingabzpro Codex commited on
Commit
857d3e9
Β·
1 Parent(s): d99006b

Open NoticeCheck directly at the checker

Browse files

Hide the Urdu interface, remove the landing hero, and add README author attribution.

Co-Authored-By: Codex <codex@openai.com>

Files changed (4) hide show
  1. README.md +5 -3
  2. static/app.js +4 -4
  3. static/index.html +1 -28
  4. static/styles.css +1 -1
README.md CHANGED
@@ -1,6 +1,9 @@
1
  ---
2
  title: NoticeCheck
3
  emoji: πŸ”Ž
 
 
 
4
  colorFrom: indigo
5
  colorTo: red
6
  sdk: gradio
@@ -18,8 +21,7 @@ tags:
18
  - scam-detection
19
  - online-safety
20
  - pakistan
21
- - urdu
22
- - bilingual
23
  short_description: Review suspicious Pakistani messages before you act.
24
  ---
25
 
@@ -58,7 +60,7 @@ Structured risk assessment
58
  - **GGUF:** `MiniCPM5-1B-Q8_0.gguf`
59
  - **OCR:** `nvidia/nemotron-ocr-v2`
60
  - **Hosting:** Hugging Face Spaces ZeroGPU or local NVIDIA hardware
61
- - **Interface:** custom English/Urdu HTML, CSS, and JavaScript
62
 
63
  The application does not use a remote model API and has no heuristic assessment
64
  fallback. Model and OCR failures are returned explicitly.
 
1
  ---
2
  title: NoticeCheck
3
  emoji: πŸ”Ž
4
+ author: Kingabzpro
5
+ collaborators:
6
+ - Codex
7
  colorFrom: indigo
8
  colorTo: red
9
  sdk: gradio
 
21
  - scam-detection
22
  - online-safety
23
  - pakistan
24
+ - english
 
25
  short_description: Review suspicious Pakistani messages before you act.
26
  ---
27
 
 
60
  - **GGUF:** `MiniCPM5-1B-Q8_0.gguf`
61
  - **OCR:** `nvidia/nemotron-ocr-v2`
62
  - **Hosting:** Hugging Face Spaces ZeroGPU or local NVIDIA hardware
63
+ - **Interface:** custom English HTML, CSS, and JavaScript
64
 
65
  The application does not use a remote model API and has no heuristic assessment
66
  fallback. Model and OCR failures are returned explicitly.
static/app.js CHANGED
@@ -45,7 +45,7 @@ const translations = {
45
  imageMode: "Screenshot mode active β€” text input is locked",
46
  pasteLabel: "Or paste the message",
47
  textPlaceholder: "Paste the SMS, email, bill text, or notice here...",
48
- languageSupport: "English is supported; Urdu and Roman Urdu are best effort",
49
  textMode: "Text mode active β€” image upload is locked",
50
  traceTitle: "Publish privacy-safe trace",
51
  traceText: "Stores automated redacted text or an image description. Raw text, screenshots, links, identifiers, and model text are not stored.",
@@ -186,7 +186,8 @@ const translations = {
186
  let imageDataUrl = "";
187
  let activeMode = null;
188
  let activeExampleId = "";
189
- let currentLanguage = localStorage.getItem("noticecheck-language") === "ur" ? "ur" : "en";
 
190
  let currentStatus = null;
191
  let currentRiskLabel = "";
192
 
@@ -195,8 +196,7 @@ function t(key) {
195
  }
196
 
197
  function applyLanguage(language) {
198
- currentLanguage = language === "ur" ? "ur" : "en";
199
- localStorage.setItem("noticecheck-language", currentLanguage);
200
  document.documentElement.lang = currentLanguage;
201
  document.documentElement.dir = currentLanguage === "ur" ? "rtl" : "ltr";
202
  document.title = t("pageTitle");
 
45
  imageMode: "Screenshot mode active β€” text input is locked",
46
  pasteLabel: "Or paste the message",
47
  textPlaceholder: "Paste the SMS, email, bill text, or notice here...",
48
+ languageSupport: "English interface",
49
  textMode: "Text mode active β€” image upload is locked",
50
  traceTitle: "Publish privacy-safe trace",
51
  traceText: "Stores automated redacted text or an image description. Raw text, screenshots, links, identifiers, and model text are not stored.",
 
186
  let imageDataUrl = "";
187
  let activeMode = null;
188
  let activeExampleId = "";
189
+ let currentLanguage = "en";
190
+ localStorage.removeItem("noticecheck-language");
191
  let currentStatus = null;
192
  let currentRiskLabel = "";
193
 
 
196
  }
197
 
198
  function applyLanguage(language) {
199
+ currentLanguage = "en";
 
200
  document.documentElement.lang = currentLanguage;
201
  document.documentElement.dir = currentLanguage === "ur" ? "rtl" : "ltr";
202
  document.title = t("pageTitle");
static/index.html CHANGED
@@ -13,10 +13,6 @@
13
  <body>
14
  <header class="topbar">
15
  <div class="topbar-left">
16
- <div class="language-switch" role="group" aria-label="Language">
17
- <button class="language-option active" type="button" data-language="en" lang="en" aria-pressed="true">English</button>
18
- <button class="language-option urdu-option" type="button" data-language="ur" lang="ur" dir="rtl" aria-pressed="false">اردو</button>
19
- </div>
20
  <a class="brand" href="/" aria-label="NoticeCheck home">
21
  <span class="brand-mark"><img src="/static/mark.svg" alt=""></span>
22
  <span class="brand-name">NoticeCheck</span>
@@ -28,29 +24,6 @@
28
  </header>
29
 
30
  <main>
31
- <section class="hero">
32
- <div class="hero-copy">
33
- <p class="eyebrow" data-i18n="heroEyebrow">Pause. Inspect. Decide.</p>
34
- <h1><span data-i18n="heroTitle">Look twice before you</span> <span data-i18n="heroSafe">trust it.</span></h1>
35
- <p class="hero-text" data-i18n="heroText">NoticeCheck reviews suspicious messages and screenshots for pressure tactics, unsafe requests, and scam warning signs.</p>
36
- <div class="trust-note">
37
- <span class="shield" aria-hidden="true">βœ“</span>
38
- <p>
39
- <strong data-i18n="trustTitle">Evidence, not verification</strong>
40
- <span data-i18n="trustText">Get a plain-language risk assessment, visible warning signs, and safer next actions. Always confirm independently.</span>
41
- </p>
42
- </div>
43
- </div>
44
- <div class="signal-panel" aria-hidden="true">
45
- <div class="signal-orbit orbit-one"></div>
46
- <div class="signal-orbit orbit-two"></div>
47
- <div class="signal-document"><span></span><span></span><span></span><i>βœ“</i></div>
48
- <div class="signal-chip chip-one">LINK</div>
49
- <div class="signal-chip chip-two">OTP</div>
50
- <div class="signal-chip chip-three">PAY?</div>
51
- </div>
52
- </section>
53
-
54
  <section class="workspace" aria-labelledby="checkerTitle">
55
  <div class="section-heading">
56
  <div>
@@ -78,7 +51,7 @@
78
  <div class="field-card">
79
  <label class="field-label" for="noticeText"><span>2</span><span class="field-label-text" data-i18n="pasteLabel">Or paste the message</span></label>
80
  <textarea id="noticeText" dir="auto" maxlength="12000" placeholder="Paste the SMS, email, bill text, or notice here..." data-i18n-placeholder="textPlaceholder"></textarea>
81
- <div class="field-meta"><span data-i18n="languageSupport">English is supported; Urdu and Roman Urdu are best effort</span><span id="charCount">0 / 12,000</span></div>
82
  <div id="textHint" class="mode-hint"><span class="hint-icon">✎</span><span data-i18n="textMode">Text mode active β€” image upload is locked</span></div>
83
  </div>
84
  </div>
 
13
  <body>
14
  <header class="topbar">
15
  <div class="topbar-left">
 
 
 
 
16
  <a class="brand" href="/" aria-label="NoticeCheck home">
17
  <span class="brand-mark"><img src="/static/mark.svg" alt=""></span>
18
  <span class="brand-name">NoticeCheck</span>
 
24
  </header>
25
 
26
  <main>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  <section class="workspace" aria-labelledby="checkerTitle">
28
  <div class="section-heading">
29
  <div>
 
51
  <div class="field-card">
52
  <label class="field-label" for="noticeText"><span>2</span><span class="field-label-text" data-i18n="pasteLabel">Or paste the message</span></label>
53
  <textarea id="noticeText" dir="auto" maxlength="12000" placeholder="Paste the SMS, email, bill text, or notice here..." data-i18n-placeholder="textPlaceholder"></textarea>
54
+ <div class="field-meta"><span data-i18n="languageSupport">English interface</span><span id="charCount">0 / 12,000</span></div>
55
  <div id="textHint" class="mode-hint"><span class="hint-icon">✎</span><span data-i18n="textMode">Text mode active β€” image upload is locked</span></div>
56
  </div>
57
  </div>
static/styles.css CHANGED
@@ -146,7 +146,7 @@ h1 > span:last-child { color: #fda4af; }
146
  margin-left: auto; margin-right: auto;
147
  }
148
  .workspace {
149
- position: relative; margin-top: -70px; padding: clamp(24px, 4vw, 46px);
150
  border: 1px solid var(--line); border-radius: 28px; background: var(--surface); box-shadow: var(--shadow);
151
  }
152
  .section-heading { display: flex; justify-content: space-between; gap: 24px; align-items: end; margin-bottom: 30px; }
 
146
  margin-left: auto; margin-right: auto;
147
  }
148
  .workspace {
149
+ position: relative; margin-top: 32px; padding: clamp(24px, 4vw, 46px);
150
  border: 1px solid var(--line); border-radius: 28px; background: var(--surface); box-shadow: var(--shadow);
151
  }
152
  .section-heading { display: flex; justify-content: space-between; gap: 24px; align-items: end; margin-bottom: 30px; }