Files
omni-parse/.local/diag4.py

63 lines
3.9 KiB
Python

import sys, json
sys.path.insert(0, '.')
from concurrent.futures import ThreadPoolExecutor
from omni import feeds
from omni.sources import Source
C = [
("debian_dsa", "security", "html", "https://www.debian.org/security/", "html_listing",
{"include_prefixes": ["/tracker/DSA-"]}),
("debian_dsa2", "security", "html", "https://www.debian.org/security/", "html_listing",
{"include_prefixes": ["/debian-security-announce/"]}),
("openwall_a", "security", "html", "https://www.openwall.com/lists/oss-security/", "html_listing",
{"include_prefixes": ["/lists/oss-security/2026/"]}),
("openwall_b", "security", "html", "https://www.openwall.com/lists/oss-security/", "html_listing",
{"include_prefixes": ["/lists/oss-security/"]}),
("t00ls", "forum", "html", "https://www.t00ls.com/", "html_listing",
{"include_prefixes": ["/articles-", "/Vuls-"]}),
("anquanke_html", "security", "html", "https://www.anquanke.com/", "html_listing",
{"include_prefixes": ["/post/id/"]}),
("secrss", "security", "html", "https://www.secrss.com/", "html_listing",
{"include_prefixes": ["/articles/"], "exclude_exact": ["/articles"]}),
("freebuf_root", "security", "html", "https://www.freebuf.com/", "html_listing",
{"include_prefixes": ["/articles/", "/news/"]}),
("freebuf_news", "security", "html", "https://www.freebuf.com/news", "html_listing",
{"include_prefixes": ["/articles/", "/news/"]}),
("freebuf_rss2", "security", "rss", "https://www.freebuf.com/rss", "rss", {}),
("freebuf_rss3", "security", "rss", "https://www.freebuf.com/feed/", "rss", {}),
("securitylab_a", "security", "rss", "https://www.securitylab.ru/rss/news.xml", "rss", {}),
("securitylab_b", "security", "rss", "https://www.securitylab.ru/rss/", "rss", {}),
("kaspersky_a", "security", "rss", "https://www.kaspersky.com/blog/feed/", "rss", {}),
("anti_malware_a", "security", "rss", "https://www.anti-malware.ru/rss/news", "rss", {}),
("xakep_tech", "security", "rss", "https://xakep.ru/feed/", "rss", {}),
("codeby_x", "forum", "html", "https://codeby.net/forums/", "xenforo_latest", {}),
("seebug_retry", "security", "rss", "https://paper.seebug.org/rss/", "rss", {}),
("ransomlook_retry", "abuse", "json", "https://www.ransomlook.io/api/recent", "generic_json", {}),
("ransomware_live_g", "abuse", "json", "https://api.ransomware.live/groups", "generic_json", {}),
("cybersecnews_retry", "security", "rss", "https://cybersecuritynews.com/feed/", "rss", {}),
("gbhackers_retry", "security", "rss", "https://gbhackers.com/feed/", "rss", {}),
("huntress_retry", "security", "rss", "https://www.huntress.com/blog/rss.xml", "rss", {}),
("scmedia_a", "security", "rss", "https://www.scmagazine.com/rss/news", "rss", {}),
("trendmicro_a", "security", "rss", "https://www.trendmicro.com/en_us/research.rss", "rss", {}),
("dragos_a", "security", "rss", "https://www.dragos.com/blog/feed/", "rss", {}),
("arcticwolf_a", "security", "rss", "https://arcticwolf.com/feed/", "rss", {}),
("zscaler_a", "security", "rss", "https://www.zscaler.com/blogs/rss.xml", "rss", {}),
("arch_a", "security", "rss", "https://security.archlinux.org/advisory/feed.atom", "rss", {}),
("gentoo_a", "security", "rss", "https://www.gentoo.org/glsa/feed.xml", "rss", {}),
("cisa_all_retry", "security", "rss", "https://www.cisa.gov/cybersecurity-advisories/all.xml", "rss", {}),
]
def run(t):
name, cat, kind, url, ad, extra = t
src = Source(name=name, category=cat, kind=kind, url=url, adapter=ad, tags=(), limit=5, extra=extra)
try:
items = feeds.fetch(src, 5)
return {"name": name, "n": len(items), "first": (items[0].title[:70] if items else "")}
except Exception as e:
return {"name": name, "n": 0, "err": str(e)[:80]}
with ThreadPoolExecutor(6) as ex:
for r in ex.map(run, C):
print(json.dumps(r, ensure_ascii=False))