Commit Β·
857d3e9
1
Parent(s): d99006b
Open NoticeCheck directly at the checker
Browse filesHide the Urdu interface, remove the landing hero, and add README author attribution.
Co-Authored-By: Codex <codex@openai.com>
- README.md +5 -3
- static/app.js +4 -4
- static/index.html +1 -28
- 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 |
-
-
|
| 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
|
| 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
|
| 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 =
|
|
|
|
| 190 |
let currentStatus = null;
|
| 191 |
let currentRiskLabel = "";
|
| 192 |
|
|
@@ -195,8 +196,7 @@ function t(key) {
|
|
| 195 |
}
|
| 196 |
|
| 197 |
function applyLanguage(language) {
|
| 198 |
-
currentLanguage =
|
| 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
|
| 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:
|
| 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; }
|