Files
worldmonitor/api/_rss-allowed-domains.js
Elie Habib ecd56d4212 feat(feeds): add IRNA, Mehr, Jerusalem Post, Ynetnews to middleeast (#3236)
* feat(feeds): add IRNA, Mehr, Jerusalem Post, Ynetnews to middleeast

Four direct-RSS sources verified from a clean IP and absent everywhere
in the repo (src/config/feeds.ts, scripts/seed-*, ais-relay.cjs, RSS
allowlist). Closes the highest-ROI Iran / Israel domestic-press gap
from the ME source audit (PR #3226) with zero infra changes.

- IRNA        https://en.irna.ir/rss
- Mehr News   https://en.mehrnews.com/rss
- Jerusalem Post https://www.jpost.com/rss/rssfeedsheadlines.aspx
- Ynetnews    https://www.ynetnews.com/Integration/StoryRss3089.xml

Propaganda-risk metadata:
- IRNA + Mehr tagged high / Iran state-affiliated (join Press TV).
- JPost + Ynetnews tagged low with knownBiases for transparency.

RSS allowlist updated in all three mirrors (shared/, scripts/shared/,
api/_rss-allowed-domains.js) per the byte-identical mirror contract
enforced by tests/edge-functions.test.mjs.

Deferred (separate PRs):
- Times of Israel: already in allowlist; was removed from feeds for
  cloud-IP 403. Needs Decodo routing.
- IDF Spokesperson: idf.il has no direct RSS endpoint; needs scraper.
- Tasnim / Press TV RSS / Israel Hayom: known cloud-IP blocks.
- WAM / SPA / KUNA / QNA / BNA: public RSS endpoints are dead; sites
  migrated to SPAs or gate with 403.

Plan doc (PR #3226) overstated the gap: it audited only feeds.ts and
missed that travel advisories + US Embassy alerts are already covered
by scripts/seed-security-advisories.mjs. NOTAM claim in that doc is
also wrong: we use ICAO's global NOTAM API, not FAA.

* fix(feeds): enable IRNA, Mehr, Jerusalem Post, Ynetnews by default

Reviewer on #3236 flagged that adding the four new ME feeds to
FULL_FEEDS.middleeast alone leaves them disabled on first run, because
App.ts:661 persists computeDefaultDisabledSources() output derived from
DEFAULT_ENABLED_SOURCES. Users would have to manually re-enable via
Settings > Sources, defeating the purpose of broadening the default
ME mix.

Add the four new sources to DEFAULT_ENABLED_SOURCES.middleeast so they
ship on by default. Placement keeps them adjacent to their peers
(IRNA / Mehr with the other Iran sources, JPost / Ynetnews after
Haaretz). Risk/slant tags already in SOURCE_PROPAGANDA_RISK ensure
downstream digest dedup + summarization weights them correctly.

* style(feeds): move JPost + Ynetnews under Low-risk section header

Greptile on #3236 flagged that both entries are risk: 'low' but were
inserted above the `// Low risk - Independent with editorial standards`
comment header, making the section boundary misleading for future
contributors. Shift them under the header where they belong.

No runtime change; cosmetic ordering only.
2026-04-20 19:07:09 +04:00

305 lines
6.6 KiB
JavaScript

// Edge-compatible ESM wrapper for shared RSS allowed domains.
// Source of truth: shared/rss-allowed-domains.json
// NOTE: Cannot use `import ... with { type: "json" }` — Vercel esbuild doesn't support import attributes.
export default [
"feeds.bbci.co.uk",
"www.theguardian.com",
"feeds.npr.org",
"news.google.com",
"www.aljazeera.com",
"www.aljazeera.net",
"rss.cnn.com",
"hnrss.org",
"feeds.arstechnica.com",
"www.theverge.com",
"www.cnbc.com",
"feeds.marketwatch.com",
"www.defenseone.com",
"www.bellingcat.com",
"techcrunch.com",
"huggingface.co",
"www.technologyreview.com",
"rss.arxiv.org",
"export.arxiv.org",
"www.federalreserve.gov",
"www.sec.gov",
"www.whitehouse.gov",
"www.state.gov",
"www.defense.gov",
"home.treasury.gov",
"www.justice.gov",
"tools.cdc.gov",
"www.fema.gov",
"www.dhs.gov",
"www.thedrive.com",
"krebsonsecurity.com",
"finance.yahoo.com",
"thediplomat.com",
"venturebeat.com",
"foreignpolicy.com",
"www.ft.com",
"openai.com",
"www.reutersagency.com",
"feeds.reuters.com",
"rsshub.app",
"asia.nikkei.com",
"www.cfr.org",
"www.csis.org",
"www.politico.com",
"www.brookings.edu",
"layoffs.fyi",
"www.defensenews.com",
"www.militarytimes.com",
"taskandpurpose.com",
"news.usni.org",
"www.oryxspioenkop.com",
"www.gov.uk",
"www.foreignaffairs.com",
"www.atlanticcouncil.org",
"www.zdnet.com",
"www.techmeme.com",
"www.darkreading.com",
"www.schneier.com",
"www.ransomware.live",
"rss.politico.com",
"www.anandtech.com",
"www.tomshardware.com",
"www.semianalysis.com",
"feed.infoq.com",
"thenewstack.io",
"devops.com",
"dev.to",
"lobste.rs",
"changelog.com",
"seekingalpha.com",
"news.crunchbase.com",
"www.saastr.com",
"feeds.feedburner.com",
"www.producthunt.com",
"www.axios.com",
"api.axios.com",
"github.blog",
"githubnext.com",
"mshibanami.github.io",
"www.engadget.com",
"news.mit.edu",
"dev.events",
"www.ycombinator.com",
"a16z.com",
"www.a16z.news",
"review.firstround.com",
"www.sequoiacap.com",
"www.nfx.com",
"www.aaronsw.com",
"bothsidesofthetable.com",
"www.lennysnewsletter.com",
"stratechery.com",
"www.eu-startups.com",
"tech.eu",
"sifted.eu",
"www.techinasia.com",
"kr-asia.com",
"techcabal.com",
"disrupt-africa.com",
"lavca.org",
"contxto.com",
"inc42.com",
"yourstory.com",
"pitchbook.com",
"www.cbinsights.com",
"www.techstars.com",
"asharqbusiness.com",
"asharq.com",
"www.omanobserver.om",
"english.alarabiya.net",
"www.timesofisrael.com",
"www.jpost.com",
"www.ynetnews.com",
"en.irna.ir",
"en.mehrnews.com",
"www.haaretz.com",
"www.scmp.com",
"kyivindependent.com",
"www.themoscowtimes.com",
"feeds.24.com",
"feeds.news24.com",
"feeds.capi24.com",
"www.france24.com",
"www.euronews.com",
"de.euronews.com",
"es.euronews.com",
"fr.euronews.com",
"it.euronews.com",
"pt.euronews.com",
"ru.euronews.com",
"gr.euronews.com",
"www.lemonde.fr",
"rss.dw.com",
"www.bild.de",
"www.africanews.com",
"fr.africanews.com",
"www.premiumtimesng.com",
"www.vanguardngr.com",
"www.channelstv.com",
"dailytrust.com",
"www.thisdaylive.com",
"www.naftemporiki.gr",
"www.in.gr",
"www.iefimerida.gr",
"www.lasillavacia.com",
"www.channelnewsasia.com",
"japantoday.com",
"www.thehindu.com",
"indianexpress.com",
"www.twz.com",
"gcaptain.com",
"news.un.org",
"www.iaea.org",
"www.who.int",
"www.cisa.gov",
"www.crisisgroup.org",
"rusi.org",
"warontherocks.com",
"responsiblestatecraft.org",
"www.fpri.org",
"jamestown.org",
"www.chathamhouse.org",
"ecfr.eu",
"www.gmfus.org",
"www.wilsoncenter.org",
"www.lowyinstitute.org",
"www.mei.edu",
"www.stimson.org",
"www.cnas.org",
"carnegieendowment.org",
"www.rand.org",
"fas.org",
"www.armscontrol.org",
"www.nti.org",
"thebulletin.org",
"www.iss.europa.eu",
"www.fao.org",
"worldbank.org",
"www.imf.org",
"www.bbc.com",
"www.spiegel.de",
"www.tagesschau.de",
"newsfeed.zeit.de",
"feeds.elpais.com",
"e00-elmundo.uecdn.es",
"www.repubblica.it",
"www.ansa.it",
"xml2.corriereobjects.it",
"feeds.nos.nl",
"www.nrc.nl",
"www.telegraaf.nl",
"www.dn.se",
"www.svd.se",
"www.svt.se",
"www.asahi.com",
"www.clarin.com",
"oglobo.globo.com",
"feeds.folha.uol.com.br",
"www.eltiempo.com",
"www.eluniversal.com.mx",
"www.jeuneafrique.com",
"www.lorientlejour.com",
"www.hurriyet.com.tr",
"tvn24.pl",
"www.polsatnews.pl",
"www.rp.pl",
"meduza.io",
"novayagazeta.eu",
"www.bangkokpost.com",
"vnexpress.net",
"www.abc.net.au",
"islandtimes.org",
"www.brasilparalelo.com.br",
"mexiconewsdaily.com",
"insightcrime.org",
"www.primicias.ec",
"www.infobae.com",
"www.eluniverso.com",
"news.ycombinator.com",
"www.coindesk.com",
"cointelegraph.com",
"travel.state.gov",
"th.usembassy.gov",
"ae.usembassy.gov",
"de.usembassy.gov",
"ua.usembassy.gov",
"mx.usembassy.gov",
"in.usembassy.gov",
"pk.usembassy.gov",
"co.usembassy.gov",
"pl.usembassy.gov",
"bd.usembassy.gov",
"it.usembassy.gov",
"do.usembassy.gov",
"mm.usembassy.gov",
"wwwnc.cdc.gov",
"www.ecdc.europa.eu",
"www.afro.who.int",
"www.goodnewsnetwork.org",
"www.positive.news",
"reasonstobecheerful.world",
"www.optimistdaily.com",
"www.upworthy.com",
"www.dailygood.org",
"www.goodgoodgood.co",
"www.good.is",
"www.sunnyskyz.com",
"thebetterindia.com",
"singularityhub.com",
"humanprogress.org",
"greatergood.berkeley.edu",
"www.onlygoodnewsdaily.com",
"news.mongabay.com",
"conservationoptimism.org",
"www.shareable.net",
"www.yesmagazine.org",
"www.sciencedaily.com",
"feeds.nature.com",
"www.nature.com",
"www.livescience.com",
"www.newscientist.com",
"www.pbs.org",
"feeds.abcnews.com",
"feeds.nbcnews.com",
"www.cbsnews.com",
"moxie.foxnews.com",
"feeds.content.dowjones.io",
"thehill.com",
"www.flightglobal.com",
"simpleflying.com",
"aerotime.aero",
"thepointsguy.com",
"airlinegeeks.com",
"onemileatatime.com",
"viewfromthewing.com",
"www.aviationpros.com",
"www.aviationweek.com",
"www.kitco.com",
"goldsilverworlds.com",
"www.fxempire.com",
"www.mining.com",
"www.commoditytrademantra.com",
"oilprice.com",
"www.rigzone.com",
"www.eia.gov",
"www.mining-journal.com",
"www.northernminer.com",
"www.miningweekly.com",
"www.mining-technology.com",
"www.australianmining.com.au",
"news.goldseek.com",
"news.silverseek.com",
"decrypt.co",
"blockworks.co",
"thedefiant.io",
"bitcoinmagazine.com",
"www.dlnews.com",
"cryptoslate.com",
"unchainedcrypto.com"
];