sources: авто-расширение из публичных API без ключей (46 живых), universal generic_json, bsky/mastodon, --only по префиксу, auto_cycle
This commit is contained in:
@@ -21,6 +21,7 @@ from .sources_ext5 import EXTRA6
|
||||
from .sources_fresh import fresh as _fresh_sources
|
||||
from .sources_quality import quality_sources as _quality_sources
|
||||
from .sources_x import X_SOURCES
|
||||
from .sources_auto import AUTO as AUTO_SOURCES
|
||||
|
||||
|
||||
@dataclass
|
||||
@@ -204,7 +205,7 @@ def _dedup(rows):
|
||||
return out
|
||||
|
||||
|
||||
SOURCES = _dedup(SOURCES_BASE + [Source(**d) for d in EXTRA] + [Source(**d) for d in EXTRA2] + [Source(**d) for d in EXTRA3] + [Source(**d) for d in ABUSE_LIVE] + [Source(**d) for d in EXTRA4] + [Source(**d) for d in EXTRA5] + [Source(**d) for d in EXTRA6] + [Source(**d) for d in ABUSE_DEEP] + [Source(**d) for d in TG_ABUSE] + [Source(**d) for d in X_SOURCES])
|
||||
SOURCES = _dedup(SOURCES_BASE + [Source(**d) for d in EXTRA] + [Source(**d) for d in EXTRA2] + [Source(**d) for d in EXTRA3] + [Source(**d) for d in ABUSE_LIVE] + [Source(**d) for d in EXTRA4] + [Source(**d) for d in EXTRA5] + [Source(**d) for d in EXTRA6] + [Source(**d) for d in ABUSE_DEEP] + [Source(**d) for d in TG_ABUSE] + [Source(**d) for d in X_SOURCES] + [Source(**d) for d in AUTO_SOURCES])
|
||||
|
||||
BY_NAME = {s.name: s for s in SOURCES}
|
||||
CATEGORIES = sorted({s.category for s in SOURCES})
|
||||
@@ -365,7 +366,18 @@ def pick(category=None, only=None, tags=None, respect_enabled=True):
|
||||
out = [s for s in out if s.category in cats]
|
||||
if only:
|
||||
names = {n.strip() for n in only.split(",") if n.strip()}
|
||||
out = [s for s in out if s.name in names]
|
||||
|
||||
def _hit(src):
|
||||
if src.name in names:
|
||||
return True
|
||||
for n in names:
|
||||
if n.endswith("*") and src.name.startswith(n[:-1]):
|
||||
return True
|
||||
if n.endswith("_") and src.name.startswith(n):
|
||||
return True
|
||||
return False
|
||||
|
||||
out = [x for x in out if _hit(x)]
|
||||
if tags:
|
||||
wanted = {t.strip() for t in tags.split(",") if t.strip()}
|
||||
out = [s for s in out if wanted & set(s.tags)]
|
||||
|
||||
Reference in New Issue
Block a user