diff --git a/Script/SOCMINT-Twitter/sentiment.py b/Script/SOCMINT-Twitter/sentiment.py index d3acbbc..755907a 100644 --- a/Script/SOCMINT-Twitter/sentiment.py +++ b/Script/SOCMINT-Twitter/sentiment.py @@ -148,7 +148,7 @@ NEGATIVE_WORDS = { "zionist", "bodo", "ludahi", "ludahin", "penjajah", "pajet", "pajeet", "cemoohan", "cemooh", "rusuh", "barbar", "paj3t", "cuih", "ngibul", "boong", "pekok", "pea", "pantek", "pantat", - "Anak haram", + "Anak haram", "asbun", } # Flips the polarity of a sentiment word found within NEGATION_WINDOW tokens diff --git a/Script/SOCMINT-Twitter/templates/archive.html b/Script/SOCMINT-Twitter/templates/archive.html index 6ebb9b7..b90f23e 100644 --- a/Script/SOCMINT-Twitter/templates/archive.html +++ b/Script/SOCMINT-Twitter/templates/archive.html @@ -441,13 +441,6 @@ font-weight: 500; } .card-val { color: var(--text); word-break: break-word; flex: 1; } - .card-val.clamp { - overflow: hidden; - display: -webkit-box; - -webkit-line-clamp: 3; - line-clamp: 3; - -webkit-box-orient: vertical; - } .card-link { color: var(--accent); text-decoration: none; font-size: 12px; } .card-link:hover { text-decoration: underline; } @@ -883,7 +876,7 @@ function flatText(obj) { // so a record's avatar/name/handle/banner/bio render identically whether // you're looking at a live result or a saved archive. const SKIP = ['archived_media', 'profile_image_url', 'profile_banner_url', 'entities', 'extended_entities', 'urls', 'media', 'indices']; -const CLAMP = new Set(['text','full_text','content','description','bio','article_text','retweeted_text','retweeted_by_bio','post_text','quoted_text']); +const CLAMP = new Set(); // ── Auto-scroll — same mechanism index.html's live search results use // (IntersectionObserver watching a sentinel, root: null since — per this @@ -1005,10 +998,10 @@ function buildCard(item, nested = false) { } else if (k === 'text' && item.reply_to_mentions && item.reply_to_mentions.length) { const badge = `
↩ Replying to ${item.reply_to_mentions.map(m => '@' + esc(m)).join(', ')}
`; const clean = stripLeadingMentions(String(v), item.reply_to_mentions); - display = `${badge}${esc(clean)}`; + display = `${badge}${esc(clean)}`; } else if (typeof v === 'object') { - const s = JSON.stringify(v); - display = `${esc(s.length > 100 ? s.slice(0,100)+'…' : s)}`; + const s = JSON.stringify(v, null, 2); + display = `${esc(s)}`; } else { const cls = CLAMP.has(k) ? ' clamp' : ''; display = `${esc(String(v))}`; diff --git a/Script/SOCMINT-Twitter/templates/index.html b/Script/SOCMINT-Twitter/templates/index.html index da2ed94..278350f 100644 --- a/Script/SOCMINT-Twitter/templates/index.html +++ b/Script/SOCMINT-Twitter/templates/index.html @@ -524,13 +524,6 @@ font-weight: 500; } .card-val { color: var(--text); word-break: break-word; flex: 1; } - .card-val.clamp { - overflow: hidden; - display: -webkit-box; - -webkit-line-clamp: 3; - line-clamp: 3; - -webkit-box-orient: vertical; - } .empty-state { color: var(--muted); @@ -1173,7 +1166,7 @@ function flatText(obj) { // PRIORITY / DRILLABLE / SOURCE_CLASS / AGE_LABELS come from // static/js/card_constants.js, loaded above — shared with archive.html. const SKIP = ['profile_image_url','profile_banner_url','entities','extended_entities','urls','media','indices']; -const CLAMP = new Set(['text','full_text','content','description','bio','article_text','retweeted_text','retweeted_by_bio','post_text','quoted_text']); +const CLAMP = new Set(); // ── Media helpers ───────────────────────────────────────────────────────────── @@ -1321,12 +1314,12 @@ function buildCard(item, nested = false) { } else if (k === 'text' && item.reply_to_mentions && item.reply_to_mentions.length) { const badge = `
↩ Replying to ${item.reply_to_mentions.map(m => '@' + esc(m)).join(', ')}
`; const clean = stripLeadingMentions(String(v), item.reply_to_mentions); - display = `${badge}${esc(clean)}`; + display = `${badge}${esc(clean)}`; } else if (v === null || v === undefined) { display = ``; } else if (typeof v === 'object') { - const s = JSON.stringify(v); - display = `${esc(s.length > 90 ? s.slice(0,90)+'…' : s)}`; + const s = JSON.stringify(v, null, 2); + display = `${esc(s)}`; } else { const cls = CLAMP.has(k) ? ' clamp' : ''; display = `${esc(String(v))}`;