diff --git a/api/block-lists.js b/api/block-lists.js index 99615c9..75524ea 100644 --- a/api/block-lists.js +++ b/api/block-lists.js @@ -99,7 +99,7 @@ exports.handler = middleware(async (url) => { const results = await checkDomainAgainstDnsServers(domain); return { statusCode: 200, - body: JSON.stringify(results) + body: JSON.stringify({ blocklists: results }) }; }); diff --git a/src/components/Results/BlockLists.tsx b/src/components/Results/BlockLists.tsx new file mode 100644 index 0000000..ef10768 --- /dev/null +++ b/src/components/Results/BlockLists.tsx @@ -0,0 +1,19 @@ + +import { Card } from 'components/Form/Card'; +import Row from 'components/Form/Row'; + +const BlockListsCard = (props: {data: any, title: string, actionButtons: any }): JSX.Element => { + const blockLists = props.data.blocklists; + return ( + + { blockLists.map((blocklist: any) => ( + + ))} + + ); +} + +export default BlockListsCard; diff --git a/src/components/misc/ProgressBar.tsx b/src/components/misc/ProgressBar.tsx index 8917911..210d342 100644 --- a/src/components/misc/ProgressBar.tsx +++ b/src/components/misc/ProgressBar.tsx @@ -217,6 +217,7 @@ const jobNames = [ 'http-security', 'rank', 'archives', + 'block-lists', ] as const; export const initialJobs = jobNames.map((job: string) => { diff --git a/src/pages/Results.tsx b/src/pages/Results.tsx index 279a0c5..f0d5b72 100644 --- a/src/pages/Results.tsx +++ b/src/pages/Results.tsx @@ -52,6 +52,7 @@ import HttpSecurityCard from 'components/Results/HttpSecurity'; import FirewallCard from 'components/Results/Firewall'; import ArchivesCard from 'components/Results/Archives'; import RankCard from 'components/Results/Rank'; +import BlockListsCard from 'components/Results/BlockLists'; import keys from 'utils/get-keys'; import { determineAddressType, AddressType } from 'utils/address-type-checker'; @@ -439,6 +440,14 @@ const Results = (): JSX.Element => { fetchRequest: () => fetch(`${api}/rank?url=${address}`).then(res => parseJson(res)), }); + // Check site against DNS blocklists + const [blockListsResults, updateBlockListsResults] = useMotherHook({ + jobId: 'block-lists', + updateLoadingJobs, + addressInfo: { address, addressType, expectedAddressTypes: urlTypeOnly }, + fetchRequest: () => fetch(`${api}/block-lists?url=${address}`).then(res => parseJson(res)), + }); + /* Cancel remaining jobs after 10 second timeout */ useEffect(() => { const checkJobs = () => { @@ -493,6 +502,7 @@ const Results = (): JSX.Element => { { id: 'dns-server', title: 'DNS Server', result: dnsServerResults, Component: DnsServerCard, refresh: updateDnsServerResults }, { id: 'linked-pages', title: 'Linked Pages', result: linkedPagesResults, Component: ContentLinksCard, refresh: updateLinkedPagesResults }, { id: 'txt-records', title: 'TXT Records', result: txtRecordResults, Component: TxtRecordCard, refresh: updateTxtRecordResults }, + { id: 'block-lists', title: 'Block Lists', result: blockListsResults, Component: BlockListsCard, refresh: updateBlockListsResults }, { id: 'features', title: 'Site Features', result: siteFeaturesResults, Component: SiteFeaturesCard, refresh: updateSiteFeaturesResults }, { id: 'sitemap', title: 'Pages', result: sitemapResults, Component: SitemapCard, refresh: updateSitemapResults }, { id: 'carbon', title: 'Carbon Footprint', result: carbonResults, Component: CarbonFootprintCard, refresh: updateCarbonResults }, diff --git a/src/utils/docs.ts b/src/utils/docs.ts index cc0b29c..9db788c 100644 --- a/src/utils/docs.ts +++ b/src/utils/docs.ts @@ -462,6 +462,14 @@ const docs: Doc[] = [ ], screenshot: 'https://i.ibb.co/nkbczgb/Screenshot-from-2023-08-14-22-02-40.png', }, + { + id: 'block-lists', + title: 'Block Detection', + description: 'Checks access to the URL using 10+ of the most popular privacy, malware and parental control blocking DNS servers.', + use: '', + resources: [], + screenshot: '', + }, // { // id: '', // title: '',