Latest-Developments: Pipe-Parser fuer Name|URL-Bullet-Format
Analog Monitor-Aenderung: Pills parsen {Name|URL, Name|URL} direkt und
nutzen die URL aus dem Bullet, statt ueber sources_json-Namen nachzuschlagen.
Damit verweist jeder Pill-Klick eindeutig auf den belegenden Post — keine
Name-Kollisionen mehr (insbesondere bei Telegram-Kanaelen mit mehreren
gleichnamigen sources_json-Eintraegen).
Legacy-Kompat: Items ohne Pipe gehen weiter per lookupByName durch.
Dieser Commit ist enthalten in:
@@ -229,12 +229,18 @@ var Lagebild = {
|
|||||||
var t = trailingRe.exec(body);
|
var t = trailingRe.exec(body);
|
||||||
if (t) {
|
if (t) {
|
||||||
body = body.replace(trailingRe, '').trim();
|
body = body.replace(trailingRe, '').trim();
|
||||||
var names = t[1].split(',').map(function(n){return n.trim();}).filter(Boolean);
|
var items = t[1].split(',').map(function(n){return n.trim();}).filter(Boolean);
|
||||||
var seen = {};
|
var seen = {};
|
||||||
pills = names.map(function(n){
|
pills = items.map(function(item){
|
||||||
if (junkRe.test(n)) return '';
|
var pipeIdx = item.indexOf('|');
|
||||||
var k = normName(n); if (seen[k]) return ''; seen[k] = true;
|
var itemName = pipeIdx >= 0 ? item.slice(0, pipeIdx).trim() : item.trim();
|
||||||
return buildPill(lookupByName(n), n);
|
var itemUrl = pipeIdx >= 0 ? item.slice(pipeIdx + 1).trim() : '';
|
||||||
|
if (!itemName || junkRe.test(itemName)) return '';
|
||||||
|
var k = normName(itemName); if (seen[k]) return ''; seen[k] = true;
|
||||||
|
if (itemUrl) {
|
||||||
|
return buildPill({ name: itemName, url: itemUrl }, itemName);
|
||||||
|
}
|
||||||
|
return buildPill(lookupByName(itemName), itemName);
|
||||||
}).filter(Boolean).join('');
|
}).filter(Boolean).join('');
|
||||||
}
|
}
|
||||||
if (!pills) {
|
if (!pills) {
|
||||||
|
|||||||
@@ -278,14 +278,20 @@
|
|||||||
var t = trailingRe.exec(body);
|
var t = trailingRe.exec(body);
|
||||||
if (t) {
|
if (t) {
|
||||||
body = body.replace(trailingRe, '').trim();
|
body = body.replace(trailingRe, '').trim();
|
||||||
var names = t[1].split(',').map(function (n) { return n.trim(); }).filter(Boolean);
|
var items = t[1].split(',').map(function (n) { return n.trim(); }).filter(Boolean);
|
||||||
var seen = {};
|
var seen = {};
|
||||||
pills = names.map(function (n) {
|
pills = items.map(function (item) {
|
||||||
if (junkRe.test(n)) return '';
|
var pipeIdx = item.indexOf('|');
|
||||||
var key = normalizeSourceName(n);
|
var itemName = pipeIdx >= 0 ? item.slice(0, pipeIdx).trim() : item.trim();
|
||||||
|
var itemUrl = pipeIdx >= 0 ? item.slice(pipeIdx + 1).trim() : '';
|
||||||
|
if (!itemName || junkRe.test(itemName)) return '';
|
||||||
|
var key = normalizeSourceName(itemName);
|
||||||
if (seen[key]) return '';
|
if (seen[key]) return '';
|
||||||
seen[key] = true;
|
seen[key] = true;
|
||||||
return buildPill(lookupByName(n), n);
|
if (itemUrl) {
|
||||||
|
return buildPill({ name: itemName, url: itemUrl }, itemName);
|
||||||
|
}
|
||||||
|
return buildPill(lookupByName(itemName), itemName);
|
||||||
}).filter(Boolean).join('');
|
}).filter(Boolean).join('');
|
||||||
}
|
}
|
||||||
if (!pills) {
|
if (!pills) {
|
||||||
|
|||||||
In neuem Issue referenzieren
Einen Benutzer sperren