function createPraxisBanner(content) { const banner = document.createElement('div'); banner.id = 'praxis-banner'; banner.innerHTML = content; Object.assign(banner.style, { position: 'sticky', top: '0', left: '0', width: '100%', padding: '12px', backgroundColor: '#374151', color: '#f3f4f6', textAlign: 'center', zIndex: '999999', fontSize: '16px', boxSizing: 'border-box', borderBottom: '1px solid #4b5563' }); document.body.prepend(banner); return banner; } (async () => { const headlineElement = document.querySelector("h1"); const headlineText = headlineElement ? headlineElement.textContent : null; if (!headlineText) { return; } const ISSUES = [ { value: "gun-control", text: "Gun Control" }, { value: "gun-rights", text: "Gun Rights" }, { value: "privacy", text: "Electronic Privacy" }, { value: "immigration", text: "Immigration" }, { value: "climate-change", text: "Climate Change" }, { value: "healthcare", text: "Healthcare" }, { value: "racial-justice", text: "Racial Justice" }, { value: "lgbtq-rights", text: "LGBTQ+ Rights" }, { value: "economic-inequality", text: "Economic Inequality" }, { value: "reproductive-rights", text: "Reproductive Rights" }, { value: "education-reform", text: "Education Reform" }, { value: "criminal-justice", text: "Criminal Justice" }, { value: "voting-rights", text: "Voting Rights" }, { value: "campaign-finance", text: "Campaign Finance" }, { value: "foreign-policy", text: "Foreign Policy" }, { value: "national-security", text: "National Security" }, { value: "free-speech", text: "Free Speech" }, { value: "net-neutrality", text: "Net Neutrality" }, { value: "labor-rights", text: "Labor Rights" }, { value: "affordable-housing", text: "Affordable Housing" }, { value: "environmental-protection", text: "Environmental Protection" }, { value: "space-exploration", text: "Space Exploration" }, { value: "drug-policy-reform", text: "Drug Policy Reform" }, { value: "veterans-affairs", text: "Veterans' Affairs" }, { value: "senior-citizen-rights", text: "Senior Citizen Rights" }, ]; const issueTitlesMap = new Map(ISSUES.map(issue => [issue.value, issue.text])); const donationLinks = { "gun-control": [ { "name": "Brady United", "url": "https://www.bradyunited.org/donate" }, { "name": "Everytown for Gun Safety", "url": "https://www.everytown.org/donate/" }, { "name": "Moms Demand Action", "url": "https://momsdemandaction.org/donate/"} ], "gun-rights": [ { "name": "Gun Owners of America", "url": "https://www.gunowners.org/donate/" }, { "name": "National Rifle Association (NRA)", "url": "https://donate.nra.org/donate" }, { "name": "Second Amendment Foundation (SAF)", "url": "https://www.saf.org/donate/"} ], "privacy": [ { "name": "Electronic Frontier Foundation (EFF)", "url": "https://www.eff.org/donate" }, { "name": "ACLU", "url": "https://www.aclu.org/donate/join-aclu-renew-your-membership" }, { "name": "Privacy Rights Clearinghouse", "url": "https://privacyrights.org/donate"} ], "immigration": [ { "name": "ACLU Immigrants' Rights Project", "url": "https://www.aclu.org/issues/immigrants-rights/donate" }, { "name": "National Immigration Law Center (NILC)", "url": "https://www.nilc.org/donate/" }, { "name": "Kids in Need of Defense (KIND)", "url": "https://supportkind.org/donate/"} ], "climate-change": [ { "name": "Earthjustice", "url": "https://www.earthjustice.org/donate" }, { "name": "Natural Resources Defense Council (NRDC)", "url": "https://www.nrdc.org/donate" }, { "name": "Environmental Defense Fund (EDF)", "url": "https://www.edf.org/donate"} ], "healthcare": [ { "name": "Families USA", "url": "https://www.familiesusa.org/donate/" }, { "name": "Planned Parenthood", "url": "https://www.plannedparenthood.org/donate" }, { "name": "Doctors Without Borders", "url": "https://give.doctorswithoutborders.org/campaign/675296/donate"} ], "racial-justice": [ { "name": "NAACP Legal Defense and Educational Fund (NAACP LDF)", "url": "https://www.naacpldf.org/donate/" }, { "name": "Southern Poverty Law Center (SPLC)", "url": "https://www.splcenter.org/support-us" }, { "name": "Black Lives Matter Global Network Foundation", "url": "https://blacklivesmatter.com/donate/"} ], "lgbtq-rights": [ { "name": "Lambda Legal", "url": "https://www.lambdalegal.org/donate" }, { "name": "Human Rights Campaign (HRC)", "url": "https://www.hrc.org/donate" }, { "name": "The Trevor Project", "url": "https://www.thetrevorproject.org/donate/"} ], "economic-inequality": [ { "name": "National Employment Law Project (NELP)", "url": "https://www.nelp.org/donate/" }, { "name": "Economic Policy Institute (EPI)", "url": "https://www.epi.org/donate/" }, { "name": "Oxfam America", "url": "https://www.oxfamamerica.org/donate/"} ], "reproductive-rights": [ { "name": "Reproductive Freedom for All", "url": "https://act.reprofreedomforall.org/a/donate" }, { "name": "Planned Parenthood", "url": "https://www.plannedparenthood.org/donate" }, { "name": "National Abortion Federation (NAF)", "url": "https://prochoice.org/donate/"} ], "education-reform": [ { "name": "The Education Trust", "url": "https://edtrust.org/donate/" }, { "name": "DonorsChoose", "url": "https://www.donorschoose.org/donate" }, { "name": "Teach for America", "url": "https://www.teachforamerica.org/donate"} ], "criminal-justice": [ { "name": "Justice in Aging", "url": "https://www.justiceinaging.org/donate/" }, { "name": "The Sentencing Project", "url": "https://www.sentencingproject.org/donate/" }, { "name": "Innocence Project", "url": "https://innocenceproject.org/donate/" }, { "name": "Drug Policy Alliance", "url": "https://drugpolicy.org/donate" } ], "voting-rights": [ { "name": "Brennan Center for Justice", "url": "https://www.brennancenter.org/donate" }, { "name": "Fair Fight", "url": "https://fairfight.com/invest/" }, { "name": "League of Women Voters", "url": "https://www.lwv.org/donate"} ], "campaign-finance": [ { "name": "Campaign Legal Center", "url": "https://campaignlegal.org/donate" }, { "name": "OpenSecrets (Center for Responsive Politics)", "url": "https://www.opensecrets.org/donate" }, { "name": "Common Cause", "url": "https://www.commoncause.org/donate/"} ], "foreign-policy": [ { "name": "Council on Foreign Relations (CFR)", "url": "https://www.cfr.org/support-cfr" }, { "name": "Carnegie Endowment for International Peace", "url": "https://carnegieendowment.org/donate/" }, { "name": "United Nations Foundation", "url": "https://unfoundation.org/donate/"} ], "national-security": [ { "name": "Center for Strategic and International Studies (CSIS)", "url": "https://www.csis.org/donate" }, { "name": "Atlantic Council", "url": "https://www.atlanticcouncil.org/support/" }, { "name": "Union of Concerned Scientists (UCS)", "url": "https://www.ucsusa.org/donate"} ], "free-speech": [ { "name": "Foundation for Individual Rights and Expression (FIRE)", "url": "https://www.thefire.org/donate" }, { "name": "ACLU", "url": "https://www.aclu.org/donate/join-aclu-renew-your-membership" }, { "name": "PEN America", "url": "https://pen.org/donate/"} ], "net-neutrality": [ { "name": "Free Press", "url": "https://www.freepress.net/donate/" }, { "name": "Electronic Frontier Foundation (EFF)", "url": "https://www.eff.org/donate" }, { "name": "Demand Progress", "url": "https://demandprogress.org/donate/"} ], "labor-rights": [ { "name": "AFL-CIO", "url": "https://aflcio.org/about/ways-to-give" }, { "name": "National Labor Law Project", "url": "https://www.nationallaborlawproject.org/donate/"}, { "name": "United Farm Workers (UFW)", "url": "https://ufw.org/donate/"} ], "affordable-housing": [ { "name": "National Low Income Housing Coalition (NLIHC)", "url": "https://nlihc.org/donate" }, { "name": "Habitat for Humanity", "url": "https://www.habitat.org/donate" }, { "name": "Enterprise Community Partners", "url": "https://www.enterprisecommunity.org/donate"} ], "environmental-protection": [ { "name": "Natural Resources Defense Council (NRDC)", "url": "https://www.nrdc.org/donate" }, { "name": "Sierra Club", "url": "https://www.sierraclub.org/donate" }, { "name": "World Wildlife Fund (WWF)", "url": "https://www.worldwildlife.org/donate"} ], "space-exploration": [ { "name": "The Planetary Society", "url": "https://www.planetary.org/donate" }, { "name": "National Space Society", "url": "https://space.nss.org/donate/" }, { "name": "Space Foundation", "url": "https://www.spacefoundation.org/support-us/"} ], "drug-policy-reform": [ { "name": "Drug Policy Alliance", "url": "https://drugpolicy.org/donate" }, { "name": "NORML", "url": "https://norml.org/donate/" }, { "name": "Marijuana Policy Project (MPP)", "url": "https://www.mpp.org/donate/"} ], "veterans-affairs": [ { "name": "Iraq and Afghanistan Veterans of America (IAVA)", "url": "https://www.iava.org/donate/" }, { "name": "Wounded Warrior Project", "url": "https://www.woundedwarrior.org/donate" }, { "name": "Gary Sinise Foundation", "url": "https://www.garysinisefoundation.org/donate"} ], "senior-citizen-rights": [ { "name": "Justice in Aging", "url": "https://www.justiceinaging.org/donate/" }, { "name": "AARP Foundation", "url": "https://www.aarp.org/giving/" }, { "name": "National Council on Aging (NCOA)", "url": "https://www.ncoa.org/donate"} ], "disability-rights": [ { "name": "Disability Rights Education and Defense Fund (DREDF)", "url": "https://dredf.org/donate/" }, { "name": "American Association of People with Disabilities (AAPD)", "url": "https://www.aapd.com/donate/" } ], "animal-welfare": [ { "name": "ASPCA (American Society for the Prevention of Cruelty to Animals)", "url": "https://www.aspca.org/donate" }, { "name": "Humane Society of the United States (HSUS)", "url": "https://www.humanesociety.org/donate" } ], "arts-culture": [ { "name": "National Endowment for the Arts (NEA)", "url": "https://www.arts.gov/support-nea" }, { "name": "Americans for the Arts", "url": "https://www.americansforthearts.org/donate" } ], "child-welfare": [ { "name": "Childhelp", "url": "https://www.childhelp.org/donate/" }, { "name": " Prevent Child Abuse America", "url": "https://preventchildabuse.org/donate/" } ] }; let praxisBanner = null; const sendSentimentAnalysisRequest = async () => { const response = await chrome.runtime.sendMessage({ type: "ANALYZE_SENTIMENT", payload: { headline: headlineText } }); if (response.type === "ANALYSIS_RESULT" && response.result && response.result.sentiment) { const sentiment = response.result.sentiment; if (sentiment === 'negative' || sentiment === 'depressing' || sentiment === 'worrying') { sendCategoryAnalysisRequest(); } else { return; } } else if (response.type === "LLM_ERROR") { return; } else { return; } }; const sendCategoryAnalysisRequest = async () => { const storageApi = typeof browser !== 'undefined' && browser.storage ? browser.storage.local : (typeof chrome !== 'undefined' && chrome.storage ? chrome.storage.sync : null); let selectedIssues = []; if (storageApi) { try { const data = await storageApi.get('selected_issues'); if (data && data.selected_issues) { selectedIssues = data.selected_issues; } } catch (error) { } } const response = await chrome.runtime.sendMessage({ type: "ANALYZE_HEADLINE_CATEGORY", payload: { headline: headlineText, selectedIssues: selectedIssues } }); if (response.type === "ANALYSIS_RESULT" && response.result && response.result.categories && response.result.categories.length > 0) { let donateLinksHtml = ''; response.result.categories.forEach(category => { const organizations = donationLinks[category]; if (organizations && organizations.length > 0) { const niceCategoryTitle = issueTitlesMap.get(category) || category.replace(/-/g, ' '); donateLinksHtml += `${niceCategoryTitle}: `; const categoryOrgLinks = organizations.map(org => `${org.name}` ).join(', '); donateLinksHtml += `${categoryOrgLinks}
`; } else { } }); if (donateLinksHtml) { praxisBanner = createPraxisBanner(`Based on this news article, you can donate to the following impact organizations:
${donateLinksHtml}`); } else { } } else if (response.type === "LLM_ERROR") { return; } else { return; } }; sendSentimentAnalysisRequest(); })();