refactor(database): improve naming to add exclude_matches to it
This commit is contained in:
parent
accc5efda8
commit
daa805f4f4
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
# Cookie Dialog Monster
|
# Cookie Dialog Monster
|
||||||
|
|
||||||
Cookie Dialog Monster is a browser extension that hides cookie consent dialogs without changing user preferences. By default, we do NOT accept cookies (except in [a few cases](https://git.wanhose.dev/wanhose/cookie-dialog-monster/src/branch/main/database.json#L248) where the pages do not function without accepting them). You can report broken sites with a single click, which will create an issue in this repository to be fixed promptly.
|
Cookie Dialog Monster is a browser extension that hides cookie consent dialogs without changing user preferences. By default, we do NOT accept cookies (except in [a few cases](https://git.wanhose.dev/wanhose/cookie-dialog-monster/src/branch/main/database.json) where the pages do not function without accepting them). You can report broken sites with a single click, which will create an issue in this repository to be fixed promptly.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
713
database.json
713
database.json
@ -1,547 +1,257 @@
|
|||||||
{
|
{
|
||||||
"commonWords": [
|
"actions": [
|
||||||
"ablehnen",
|
|
||||||
"accept",
|
|
||||||
"accepta",
|
|
||||||
"accepter",
|
|
||||||
"accettare",
|
|
||||||
"accordo",
|
|
||||||
"aceitar",
|
|
||||||
"aceptar",
|
|
||||||
"acuerdo",
|
|
||||||
"advertising",
|
|
||||||
"agree",
|
|
||||||
"akzeptieren",
|
|
||||||
"analitica",
|
|
||||||
"analítica",
|
|
||||||
"analitice",
|
|
||||||
"analityka",
|
|
||||||
"analyse",
|
|
||||||
"analytics",
|
|
||||||
"analytique",
|
|
||||||
"baner",
|
|
||||||
"banner",
|
|
||||||
"bannière",
|
|
||||||
"cc",
|
|
||||||
"cerrar",
|
|
||||||
"chiudere",
|
|
||||||
"close",
|
|
||||||
"cmp",
|
|
||||||
"compliance",
|
|
||||||
"concordar",
|
|
||||||
"confidențialitate",
|
|
||||||
"confidentialité",
|
|
||||||
"configuraciones",
|
|
||||||
"configurações",
|
|
||||||
"conformidade",
|
|
||||||
"conformità",
|
|
||||||
"conformitate",
|
|
||||||
"conformité",
|
|
||||||
"consenso",
|
|
||||||
"consent",
|
|
||||||
"consentement",
|
|
||||||
"consentimento",
|
|
||||||
"consentimiento",
|
|
||||||
"consimțământ",
|
|
||||||
"cookie",
|
|
||||||
"cumplimiento",
|
|
||||||
"d'accord",
|
|
||||||
"dados",
|
|
||||||
"dane",
|
|
||||||
"data",
|
|
||||||
"date",
|
|
||||||
"daten",
|
|
||||||
"datenschutz",
|
|
||||||
"dati",
|
|
||||||
"datos",
|
|
||||||
"de acord",
|
|
||||||
"declinar",
|
|
||||||
"declinare",
|
|
||||||
"decline",
|
|
||||||
"décliner",
|
|
||||||
"déni",
|
|
||||||
"descargo de responsabilidad",
|
|
||||||
"desempenho",
|
|
||||||
"dialog",
|
|
||||||
"dialogo",
|
|
||||||
"diálogo",
|
|
||||||
"dialogue",
|
|
||||||
"disclaimer",
|
|
||||||
"disconoscimento",
|
|
||||||
"données",
|
|
||||||
"dritte",
|
|
||||||
"einstellungen",
|
|
||||||
"einwilligung",
|
|
||||||
"fechar",
|
|
||||||
"fermer",
|
|
||||||
"fonctionnel",
|
|
||||||
"funcional",
|
|
||||||
"functional",
|
|
||||||
"funcțional",
|
|
||||||
"funkcjonalny",
|
|
||||||
"funktional",
|
|
||||||
"funzionale",
|
|
||||||
"gdpr",
|
|
||||||
"gerenciar",
|
|
||||||
"gérer",
|
|
||||||
"gesetz",
|
|
||||||
"gestiona",
|
|
||||||
"gestionar",
|
|
||||||
"gestire",
|
|
||||||
"guardar",
|
|
||||||
"haftungsausschluss",
|
|
||||||
"impostazioni",
|
|
||||||
"închide",
|
|
||||||
"informação",
|
|
||||||
"información",
|
|
||||||
"informacja",
|
|
||||||
"informații",
|
|
||||||
"information",
|
|
||||||
"informazione",
|
|
||||||
"isenção de responsabilidade",
|
|
||||||
"konformität",
|
|
||||||
"konieczny",
|
|
||||||
"law",
|
|
||||||
"lege",
|
|
||||||
"legge",
|
|
||||||
"lei",
|
|
||||||
"leistung",
|
|
||||||
"ley",
|
|
||||||
"loi",
|
|
||||||
"manage",
|
|
||||||
"necesar",
|
|
||||||
"necesario",
|
|
||||||
"nécessaire",
|
|
||||||
"necessario",
|
|
||||||
"necessário",
|
|
||||||
"necessary",
|
|
||||||
"notwendig",
|
|
||||||
"nutzung",
|
|
||||||
"odmówić",
|
|
||||||
"odrzucić",
|
|
||||||
"opcional",
|
|
||||||
"opcjonalny",
|
|
||||||
"optional",
|
|
||||||
"opțional",
|
|
||||||
"optionnel",
|
|
||||||
"opzionale",
|
|
||||||
"paramètres",
|
|
||||||
"performance",
|
|
||||||
"performanță",
|
|
||||||
"personalisierung",
|
|
||||||
"personalização",
|
|
||||||
"personalización",
|
|
||||||
"personalizacja",
|
|
||||||
"personalizare",
|
|
||||||
"personalization",
|
|
||||||
"personalizzazione",
|
|
||||||
"personnalisation",
|
|
||||||
"policy",
|
|
||||||
"politica",
|
|
||||||
"politică",
|
|
||||||
"política",
|
|
||||||
"politik",
|
|
||||||
"politique",
|
|
||||||
"polityka",
|
|
||||||
"popup",
|
|
||||||
"präferenzen",
|
|
||||||
"prawo",
|
|
||||||
"preferences",
|
|
||||||
"préférences",
|
|
||||||
"preferencias",
|
|
||||||
"preferências",
|
|
||||||
"preferencje",
|
|
||||||
"preferenze",
|
|
||||||
"preferințe",
|
|
||||||
"prestazioni",
|
|
||||||
"privacidad",
|
|
||||||
"privacidade",
|
|
||||||
"privacy",
|
|
||||||
"prywatność",
|
|
||||||
"pubblicità",
|
|
||||||
"publicidad",
|
|
||||||
"publicidade",
|
|
||||||
"publicitate",
|
|
||||||
"publicité",
|
|
||||||
"rastreamento",
|
|
||||||
"rechazar",
|
|
||||||
"refuza",
|
|
||||||
"reject",
|
|
||||||
"rejeitar",
|
|
||||||
"rejeter",
|
|
||||||
"reklama",
|
|
||||||
"rendimiento",
|
|
||||||
"respinge",
|
|
||||||
"rifiutare",
|
|
||||||
"salva",
|
|
||||||
"salvar",
|
|
||||||
"salvare",
|
|
||||||
"sauvegarder",
|
|
||||||
"save",
|
|
||||||
"schließen",
|
|
||||||
"seguimiento",
|
|
||||||
"setări",
|
|
||||||
"settings",
|
|
||||||
"śledzenie",
|
|
||||||
"speichern",
|
|
||||||
"strona trzecia",
|
|
||||||
"suivi",
|
|
||||||
"terceiro",
|
|
||||||
"tercero",
|
|
||||||
"terță parte",
|
|
||||||
"terza parte",
|
|
||||||
"third-party",
|
|
||||||
"tiers",
|
|
||||||
"tracciamento",
|
|
||||||
"tracking",
|
|
||||||
"urmărire",
|
|
||||||
"usage",
|
|
||||||
"uso",
|
|
||||||
"ustawienia",
|
|
||||||
"utilisation",
|
|
||||||
"utilizare",
|
|
||||||
"użycie",
|
|
||||||
"verfolgung",
|
|
||||||
"verwalten",
|
|
||||||
"werbung",
|
|
||||||
"wydajność",
|
|
||||||
"zaakceptować",
|
|
||||||
"zamknij",
|
|
||||||
"zapisz",
|
|
||||||
"zarządzać",
|
|
||||||
"zgoda",
|
|
||||||
"zgodność",
|
|
||||||
"zgodzić się",
|
|
||||||
"zrzeczenie się",
|
|
||||||
"zustimmen",
|
|
||||||
"аналитика",
|
|
||||||
"баннер",
|
|
||||||
"всплывающее окно",
|
|
||||||
"данные",
|
|
||||||
"диалог",
|
|
||||||
"закон",
|
|
||||||
"закрыть",
|
|
||||||
"информация",
|
|
||||||
"использование",
|
|
||||||
"конфиденциальность",
|
|
||||||
"настройки",
|
|
||||||
"необходимо",
|
|
||||||
"опционально",
|
|
||||||
"отказ",
|
|
||||||
"отказаться",
|
|
||||||
"отклонить",
|
|
||||||
"отслеживание",
|
|
||||||
"персонализация",
|
|
||||||
"политика",
|
|
||||||
"предпочтения",
|
|
||||||
"принять",
|
|
||||||
"производительность",
|
|
||||||
"реклама",
|
|
||||||
"согласен",
|
|
||||||
"согласие",
|
|
||||||
"соответствие",
|
|
||||||
"сохранить",
|
|
||||||
"третья сторона",
|
|
||||||
"управлять",
|
|
||||||
"функциональный"
|
|
||||||
],
|
|
||||||
"fixes": [
|
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "action.com",
|
"domain": "action.com",
|
||||||
|
"name": "click",
|
||||||
"selector": "#CybotCookiebotDialogBodyLevelButtonLevelOptinDeclineAll"
|
"selector": "#CybotCookiebotDialogBodyLevelButtonLevelOptinDeclineAll"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "resetAll",
|
|
||||||
"domain": "automobielmanagement.nl",
|
"domain": "automobielmanagement.nl",
|
||||||
|
"name": "resetAll",
|
||||||
"property": "filter",
|
"property": "filter",
|
||||||
"selector": "body > *"
|
"selector": "body > *"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "bilbaomuseoa.eus",
|
"domain": "bilbaomuseoa.eus",
|
||||||
|
"name": "click",
|
||||||
"selector": ".alert_message .btn-confirm"
|
"selector": ".alert_message .btn-confirm"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "resetAll",
|
|
||||||
"domain": "breitbart.com",
|
"domain": "breitbart.com",
|
||||||
|
"name": "resetAll",
|
||||||
"property": "display",
|
"property": "display",
|
||||||
"selector": ".twitter-tweet"
|
"selector": ".twitter-tweet"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "resetAll",
|
|
||||||
"domain": "breitbart.com",
|
"domain": "breitbart.com",
|
||||||
|
"name": "resetAll",
|
||||||
"property": "visibility",
|
"property": "visibility",
|
||||||
"selector": ".twitter-tweet"
|
"selector": ".twitter-tweet"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "buscotelefonosgratis.es",
|
"domain": "buscotelefonosgratis.es",
|
||||||
|
"name": "click",
|
||||||
"selector": "#cookie_action_close_header_reject"
|
"selector": "#cookie_action_close_header_reject"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "chollometro.com",
|
"domain": "chollometro.com",
|
||||||
|
"name": "click",
|
||||||
"selector": "[data-t=\"continueWithoutAccepting\"]"
|
"selector": "[data-t=\"continueWithoutAccepting\"]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "classicube.net",
|
"domain": "classicube.net",
|
||||||
|
"name": "click",
|
||||||
"selector": "#acceptcookies"
|
"selector": "#acceptcookies"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "compact-online.de",
|
"domain": "compact-online.de",
|
||||||
|
"name": "click",
|
||||||
"selector": "[id*=\"bnnr-body-rightSide-\"] div + div > span"
|
"selector": "[id*=\"bnnr-body-rightSide-\"] div + div > span"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "consent.google",
|
"domain": "consent.google",
|
||||||
|
"name": "click",
|
||||||
"selector": "[aria-label=\"Alle ablehnen\"], [aria-label=\"Odrzuć wszystko\"], [aria-label=\"Rechazar todo\"], [aria-label=\"Recusar tudo\"], [aria-label=\"Reject all\"], [aria-label=\"Rejeitar tudo\"], [aria-label=\"Respinge tot\"], [aria-label=\"Rifiuta tutto\"], [aria-label=\"Tout refuser\"], [aria-label=\"Отклонить все\"]"
|
"selector": "[aria-label=\"Alle ablehnen\"], [aria-label=\"Odrzuć wszystko\"], [aria-label=\"Rechazar todo\"], [aria-label=\"Recusar tudo\"], [aria-label=\"Reject all\"], [aria-label=\"Rejeitar tudo\"], [aria-label=\"Respinge tot\"], [aria-label=\"Rifiuta tutto\"], [aria-label=\"Tout refuser\"], [aria-label=\"Отклонить все\"]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "consent.yahoo",
|
"domain": "consent.yahoo",
|
||||||
|
"name": "click",
|
||||||
"selector": ".reject-all"
|
"selector": ".reject-all"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "consent.youtube",
|
"domain": "consent.youtube",
|
||||||
|
"name": "click",
|
||||||
"selector": "[aria-label=\"Alle ablehnen\"], [aria-label=\"Odrzuć wszystko\"], [aria-label=\"Rechazar todo\"], [aria-label=\"Recusar tudo\"], [aria-label=\"Reject all\"], [aria-label=\"Rejeitar tudo\"], [aria-label=\"Respinge tot\"], [aria-label=\"Rifiuta tutto\"], [aria-label=\"Tout refuser\"], [aria-label=\"Отклонить все\"]"
|
"selector": "[aria-label=\"Alle ablehnen\"], [aria-label=\"Odrzuć wszystko\"], [aria-label=\"Rechazar todo\"], [aria-label=\"Recusar tudo\"], [aria-label=\"Reject all\"], [aria-label=\"Rejeitar tudo\"], [aria-label=\"Respinge tot\"], [aria-label=\"Rifiuta tutto\"], [aria-label=\"Tout refuser\"], [aria-label=\"Отклонить все\"]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "dailymotion.com",
|
"domain": "dailymotion.com",
|
||||||
|
"name": "click",
|
||||||
"selector": "[aria-label=\"Continue without accepting\"]"
|
"selector": "[aria-label=\"Continue without accepting\"]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "dealabs.com",
|
"domain": "dealabs.com",
|
||||||
|
"name": "click",
|
||||||
"selector": "[data-t=\"continueWithoutAccepting\"]"
|
"selector": "[data-t=\"continueWithoutAccepting\"]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "derstandard",
|
"domain": "derstandard",
|
||||||
|
"name": "click",
|
||||||
"selector": "[aria-label=\"Einverstanden\"]"
|
"selector": "[aria-label=\"Einverstanden\"]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "fiberplane.dev",
|
"domain": "fiberplane.dev",
|
||||||
|
"name": "click",
|
||||||
"selector": "button[aria-label=\"Close Banner\"]"
|
"selector": "button[aria-label=\"Close Banner\"]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "foto-erhardt.de",
|
"domain": "foto-erhardt.de",
|
||||||
|
"name": "click",
|
||||||
"selector": "[class=\"modal show\"]"
|
"selector": "[class=\"modal show\"]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "reset",
|
|
||||||
"domain": "gamestar.de",
|
"domain": "gamestar.de",
|
||||||
|
"name": "reset",
|
||||||
"property": "filter",
|
"property": "filter",
|
||||||
"selector": "#content"
|
"selector": "#content"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "gettr.com",
|
"domain": "gettr.com",
|
||||||
|
"name": "click",
|
||||||
"selector": "button.bold"
|
"selector": "button.bold"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "gib-uns-deinen-gebrauchten.de",
|
"domain": "gib-uns-deinen-gebrauchten.de",
|
||||||
|
"name": "click",
|
||||||
"selector": "#cookie-banner-accept-selected-button"
|
"selector": "#cookie-banner-accept-selected-button"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "gmx.com",
|
"domain": "gmx.com",
|
||||||
|
"name": "click",
|
||||||
"selector": "#onetrust-accept-btn-handler"
|
"selector": "#onetrust-accept-btn-handler"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "gmx.net",
|
"domain": "gmx.net",
|
||||||
|
"name": "click",
|
||||||
"selector": "[data-id=\"save-all-pur\"]"
|
"selector": "[data-id=\"save-all-pur\"]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "golem.de",
|
"domain": "golem.de",
|
||||||
|
"name": "click",
|
||||||
"selector": "[title=\"Zustimmen und weiter\"]"
|
"selector": "[title=\"Zustimmen und weiter\"]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "google",
|
"domain": "google",
|
||||||
|
"name": "click",
|
||||||
"selector": "[aria-modal=\"true\"][role=\"dialog\"]:has([href*=\"policies.google.com/technologies/cookies\"]) button:not([aria-label]):not([role=\"link\"])"
|
"selector": "[aria-modal=\"true\"][role=\"dialog\"]:has([href*=\"policies.google.com/technologies/cookies\"]) button:not([aria-label]):not([role=\"link\"])"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "hagglezon.com",
|
"domain": "hagglezon.com",
|
||||||
|
"name": "click",
|
||||||
"selector": "[data-test=\"cookie-submit\"]"
|
"selector": "[data-test=\"cookie-submit\"]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "instagram.com",
|
"domain": "instagram.com",
|
||||||
|
"name": "click",
|
||||||
"selector": "[role=\"dialog\"] > [style=\"display: flex; flex-direction: column; height: 100%; max-width: 100%;\"] > button"
|
"selector": "[role=\"dialog\"] > [style=\"display: flex; flex-direction: column; height: 100%; max-width: 100%;\"] > button"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "motorolasound.com",
|
"domain": "motorolasound.com",
|
||||||
|
"name": "click",
|
||||||
"selector": "#cookie-btn-denied"
|
"selector": "#cookie-btn-denied"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "mydealz.de",
|
"domain": "mydealz.de",
|
||||||
|
"name": "click",
|
||||||
"selector": "[data-t=\"continueWithoutAccepting\"]"
|
"selector": "[data-t=\"continueWithoutAccepting\"]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "reload",
|
"domain": "myprivacy.dpgmedia",
|
||||||
"domain": "myprivacy.dpgmedia"
|
"name": "reload"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "off-campers.com",
|
"domain": "off-campers.com",
|
||||||
|
"name": "click",
|
||||||
"selector": "[form=\"cookie-consent-form\"][value=\"deny\"]"
|
"selector": "[form=\"cookie-consent-form\"][value=\"deny\"]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "reset",
|
|
||||||
"domain": "orcd.co",
|
"domain": "orcd.co",
|
||||||
|
"name": "reset",
|
||||||
"property": "opacity",
|
"property": "opacity",
|
||||||
"selector": ".player-container.box-shadow"
|
"selector": ".player-container.box-shadow"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "resetAll",
|
|
||||||
"domain": ".pl",
|
"domain": ".pl",
|
||||||
|
"name": "resetAll",
|
||||||
"property": "filter",
|
"property": "filter",
|
||||||
"selector": "body:has(.advertisement.contentAds.ads.adsbygoogle.top-banners.adbanner.bannerAd.ad-google.AdSense:first-child) > *"
|
"selector": "body:has(.advertisement.contentAds.ads.adsbygoogle.top-banners.adbanner.bannerAd.ad-google.AdSense:first-child) > *"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "reset",
|
|
||||||
"domain": "play.google",
|
"domain": "play.google",
|
||||||
|
"name": "reset",
|
||||||
"property": "z-index",
|
"property": "z-index",
|
||||||
"selector": "body > div"
|
"selector": "body > div"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "popeyes.es",
|
"domain": "popeyes.es",
|
||||||
|
"name": "click",
|
||||||
"selector": ".cookie-buttons > .cookie-buttons-column > div:last-child"
|
"selector": ".cookie-buttons > .cookie-buttons-column > div:last-child"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "producthunt.com",
|
"domain": "producthunt.com",
|
||||||
|
"name": "click",
|
||||||
"selector": "[data-test=\"dismiss-CookiePopup\"] button"
|
"selector": "[data-test=\"dismiss-CookiePopup\"] button"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "reddit.com",
|
"domain": "reddit.com",
|
||||||
|
"name": "click",
|
||||||
"selector": "#SHORTCUT_FOCUSABLE_DIV [style*=\"--Toaster\"] section:last-child section:last-child button"
|
"selector": "#SHORTCUT_FOCUSABLE_DIV [style*=\"--Toaster\"] section:last-child section:last-child button"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "reset",
|
|
||||||
"domain": "resonanz-labor.de",
|
"domain": "resonanz-labor.de",
|
||||||
|
"name": "reset",
|
||||||
"property": "overflow",
|
"property": "overflow",
|
||||||
"selector": "#wrapwrap"
|
"selector": "#wrapwrap"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "staylibere.com",
|
"domain": "staylibere.com",
|
||||||
|
"name": "click",
|
||||||
"selector": "[class*=\"LayoutCookieBanner_buttons\"] > button:last-child"
|
"selector": "[class*=\"LayoutCookieBanner_buttons\"] > button:last-child"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "reset",
|
|
||||||
"domain": "thetvdb.com",
|
"domain": "thetvdb.com",
|
||||||
|
"name": "reset",
|
||||||
"property": "overflow",
|
"property": "overflow",
|
||||||
"selector": "body"
|
"selector": "body"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "twitch.tv",
|
"domain": "twitch.tv",
|
||||||
|
"name": "click",
|
||||||
"selector": "[data-a-target=\"consent-banner-accept\"]"
|
"selector": "[data-a-target=\"consent-banner-accept\"]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "usnews.com",
|
"domain": "usnews.com",
|
||||||
|
"name": "click",
|
||||||
"selector": "#gdpr-modal-agree"
|
"selector": "#gdpr-modal-agree"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "web.de",
|
"domain": "web.de",
|
||||||
|
"name": "click",
|
||||||
"selector": "#reminder"
|
"selector": "#reminder"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "web.dev",
|
"domain": "web.dev",
|
||||||
|
"name": "click",
|
||||||
"selector": "a[href*=\"cookies\"] + button"
|
"selector": "a[href*=\"cookies\"] + button"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "youtube.com",
|
"domain": "youtube.com",
|
||||||
|
"name": "click",
|
||||||
"selector": "[aria-label*=\"ablehnen\"], [aria-label*=\"Reject\"], [aria-label*=\"Rechazar\"], [aria-label*=\"refuser\"], [aria-label*=\"Rifiuta\"], [aria-label*=\"Nie wyrażaj zgody\"], [aria-label*=\"Rejeitar\"], [aria-label*=\"Recusar\"], [aria-label*=\"Resping\"], [aria-label*=\"Запретить\"]"
|
"selector": "[aria-label*=\"ablehnen\"], [aria-label*=\"Reject\"], [aria-label*=\"Rechazar\"], [aria-label*=\"refuser\"], [aria-label*=\"Rifiuta\"], [aria-label*=\"Nie wyrażaj zgody\"], [aria-label*=\"Rejeitar\"], [aria-label*=\"Recusar\"], [aria-label*=\"Resping\"], [aria-label*=\"Запретить\"]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "zdf.de",
|
"domain": "zdf.de",
|
||||||
|
"name": "click",
|
||||||
"selector": "#aria-dialog-cmp-error-dialog > .dialog-close"
|
"selector": "#aria-dialog-cmp-error-dialog > .dialog-close"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "click",
|
|
||||||
"domain": "zeit.de",
|
"domain": "zeit.de",
|
||||||
|
"name": "click",
|
||||||
"selector": "[title=\"ACCEPT AND CONTINUE\"]"
|
"selector": "[title=\"ACCEPT AND CONTINUE\"]"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"rules": [
|
"exclusions": {
|
||||||
"||app.usercentrics.eu^",
|
|
||||||
"||b2brouter.net/de/wp-content/plugins/cookies-and-content-security-policy^",
|
|
||||||
"||benno-gymnasium.de/plugins/system/gdpr^",
|
|
||||||
"||c.evidon.com^",
|
|
||||||
"||cdn-cookieyes.com^",
|
|
||||||
"||cdn.consentmanager.net^",
|
|
||||||
"||cdn.cookielaw.org^",
|
|
||||||
"||cdn.optable.co^",
|
|
||||||
"||cdn.trustcommander.net/privacy^",
|
|
||||||
"||cdntranscend.eventbrite.com^",
|
|
||||||
"||chollometro.com/assets/js/CookiesMessage*.js^",
|
|
||||||
"||city-bahn.de/wp-content/plugins/borlabs-cookie^",
|
|
||||||
"||cmp.huffingtonpost.fr^",
|
|
||||||
"||cmp.inmobi.com^",
|
|
||||||
"||cmp.prisa.com^",
|
|
||||||
"||cmp.uniconsent.com^",
|
|
||||||
"||cms.static-bahn.de/cms/consent-layer^",
|
|
||||||
"||consent.cookiebot.com^",
|
|
||||||
"||consent.cookiefirst.com^",
|
|
||||||
"||consent.pdf24.org^",
|
|
||||||
"||consent.trustarc.com^",
|
|
||||||
"||consent.up.welt.de^",
|
|
||||||
"||consentbar.interencheres.com^",
|
|
||||||
"||consentcdn.cookiebot.com^",
|
|
||||||
"||cookiehub.net^",
|
|
||||||
"||cp.as.com^",
|
|
||||||
"||cp.inside-digital.de^",
|
|
||||||
"||download.amd.com/OneTrust^",
|
|
||||||
"||driftingchef.com/static/*/Sticky2,ConsentManager",
|
|
||||||
"||emp.bbci.co.uk^",
|
|
||||||
"||eu.fastcmp.com^",
|
|
||||||
"||forum.vorondesign.com/js/xf/notice.min.js^",
|
|
||||||
"||gdpr-tcfv2.sp-prod.net^",
|
|
||||||
"||get.optad360.io/sf/*/plugin.min.js",
|
|
||||||
"||ilims.de/typo3conf/ext/nb_cookie_banner^",
|
|
||||||
"||itkadmin.de/_javascripts/cookiesolution/es_cookie_solution_sources_v2.js^",
|
|
||||||
"||js.vxcdn.com/usercentrics-sdk^",
|
|
||||||
"||lensois.com/wp-admin/admin-ajax.php",
|
|
||||||
"||media.bzcompany.cz/scookies^",
|
|
||||||
"||myprivacy-static.dpgmedia.net/consent.js^",
|
|
||||||
"||myprivacy.dpgmedia.*/consent^",
|
|
||||||
"||optanon.blob.core.windows.net^",
|
|
||||||
"||privacy.wetransfer.com/fides.js^",
|
|
||||||
"||prod.widgets.burgerprofiel.vlaanderen.be/*/js.cookie.js^",
|
|
||||||
"||redditstatic.com/onetrust.*.js",
|
|
||||||
"||s.nitropay.com/gpp-*.min.js",
|
|
||||||
"||s.p7s1.io/cmp^",
|
|
||||||
"||sdk.privacy-center.org^",
|
|
||||||
"||static.fastcmp.com^",
|
|
||||||
"||transcend-cdn.com^",
|
|
||||||
"||wcpstatic.microsoft.com^",
|
|
||||||
"||webtools.europa.eu/js/webtools.cck.js^",
|
|
||||||
"||widgets.marketcat.net^"
|
|
||||||
],
|
|
||||||
"skips": {
|
|
||||||
"domains": [
|
"domains": [
|
||||||
|
"*.bauhaus.cz",
|
||||||
|
"*.codesandbox.io",
|
||||||
|
"*.cookie-dialog-monster.com",
|
||||||
|
"*.facebook.com",
|
||||||
|
"*.googleapis.com",
|
||||||
|
"*.olympics.com",
|
||||||
|
"translate.google.*",
|
||||||
|
"www.youtube-nocookie.com",
|
||||||
|
"www.youtube.com"
|
||||||
|
],
|
||||||
|
"overflows": [
|
||||||
"app.diagrams.net",
|
"app.diagrams.net",
|
||||||
"blog.sapegin.me",
|
"blog.sapegin.me",
|
||||||
"buyagift.co.uk",
|
"buyagift.co.uk",
|
||||||
@ -964,6 +674,307 @@
|
|||||||
"YTD-YOODLE-RENDERER"
|
"YTD-YOODLE-RENDERER"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"keywords": [
|
||||||
|
"ablehnen",
|
||||||
|
"accept",
|
||||||
|
"accepta",
|
||||||
|
"accepter",
|
||||||
|
"accettare",
|
||||||
|
"accordo",
|
||||||
|
"aceitar",
|
||||||
|
"aceptar",
|
||||||
|
"acuerdo",
|
||||||
|
"advertising",
|
||||||
|
"agree",
|
||||||
|
"akzeptieren",
|
||||||
|
"analitica",
|
||||||
|
"analítica",
|
||||||
|
"analitice",
|
||||||
|
"analityka",
|
||||||
|
"analyse",
|
||||||
|
"analytics",
|
||||||
|
"analytique",
|
||||||
|
"baner",
|
||||||
|
"banner",
|
||||||
|
"bannière",
|
||||||
|
"cc",
|
||||||
|
"cerrar",
|
||||||
|
"chiudere",
|
||||||
|
"close",
|
||||||
|
"cmp",
|
||||||
|
"compliance",
|
||||||
|
"concordar",
|
||||||
|
"confidențialitate",
|
||||||
|
"confidentialité",
|
||||||
|
"configuraciones",
|
||||||
|
"configurações",
|
||||||
|
"conformidade",
|
||||||
|
"conformità",
|
||||||
|
"conformitate",
|
||||||
|
"conformité",
|
||||||
|
"consenso",
|
||||||
|
"consent",
|
||||||
|
"consentement",
|
||||||
|
"consentimento",
|
||||||
|
"consentimiento",
|
||||||
|
"consimțământ",
|
||||||
|
"cookie",
|
||||||
|
"cumplimiento",
|
||||||
|
"d'accord",
|
||||||
|
"dados",
|
||||||
|
"dane",
|
||||||
|
"data",
|
||||||
|
"date",
|
||||||
|
"daten",
|
||||||
|
"datenschutz",
|
||||||
|
"dati",
|
||||||
|
"datos",
|
||||||
|
"de acord",
|
||||||
|
"declinar",
|
||||||
|
"declinare",
|
||||||
|
"decline",
|
||||||
|
"décliner",
|
||||||
|
"déni",
|
||||||
|
"descargo de responsabilidad",
|
||||||
|
"desempenho",
|
||||||
|
"dialog",
|
||||||
|
"dialogo",
|
||||||
|
"diálogo",
|
||||||
|
"dialogue",
|
||||||
|
"disclaimer",
|
||||||
|
"disconoscimento",
|
||||||
|
"données",
|
||||||
|
"dritte",
|
||||||
|
"einstellungen",
|
||||||
|
"einwilligung",
|
||||||
|
"fechar",
|
||||||
|
"fermer",
|
||||||
|
"fonctionnel",
|
||||||
|
"funcional",
|
||||||
|
"functional",
|
||||||
|
"funcțional",
|
||||||
|
"funkcjonalny",
|
||||||
|
"funktional",
|
||||||
|
"funzionale",
|
||||||
|
"gdpr",
|
||||||
|
"gerenciar",
|
||||||
|
"gérer",
|
||||||
|
"gesetz",
|
||||||
|
"gestiona",
|
||||||
|
"gestionar",
|
||||||
|
"gestire",
|
||||||
|
"guardar",
|
||||||
|
"haftungsausschluss",
|
||||||
|
"impostazioni",
|
||||||
|
"închide",
|
||||||
|
"informação",
|
||||||
|
"información",
|
||||||
|
"informacja",
|
||||||
|
"informații",
|
||||||
|
"information",
|
||||||
|
"informazione",
|
||||||
|
"isenção de responsabilidade",
|
||||||
|
"konformität",
|
||||||
|
"konieczny",
|
||||||
|
"law",
|
||||||
|
"lege",
|
||||||
|
"legge",
|
||||||
|
"lei",
|
||||||
|
"leistung",
|
||||||
|
"ley",
|
||||||
|
"loi",
|
||||||
|
"manage",
|
||||||
|
"necesar",
|
||||||
|
"necesario",
|
||||||
|
"nécessaire",
|
||||||
|
"necessario",
|
||||||
|
"necessário",
|
||||||
|
"necessary",
|
||||||
|
"notwendig",
|
||||||
|
"nutzung",
|
||||||
|
"odmówić",
|
||||||
|
"odrzucić",
|
||||||
|
"opcional",
|
||||||
|
"opcjonalny",
|
||||||
|
"optional",
|
||||||
|
"opțional",
|
||||||
|
"optionnel",
|
||||||
|
"opzionale",
|
||||||
|
"paramètres",
|
||||||
|
"performance",
|
||||||
|
"performanță",
|
||||||
|
"personalisierung",
|
||||||
|
"personalização",
|
||||||
|
"personalización",
|
||||||
|
"personalizacja",
|
||||||
|
"personalizare",
|
||||||
|
"personalization",
|
||||||
|
"personalizzazione",
|
||||||
|
"personnalisation",
|
||||||
|
"policy",
|
||||||
|
"politica",
|
||||||
|
"politică",
|
||||||
|
"política",
|
||||||
|
"politik",
|
||||||
|
"politique",
|
||||||
|
"polityka",
|
||||||
|
"popup",
|
||||||
|
"präferenzen",
|
||||||
|
"prawo",
|
||||||
|
"preferences",
|
||||||
|
"préférences",
|
||||||
|
"preferencias",
|
||||||
|
"preferências",
|
||||||
|
"preferencje",
|
||||||
|
"preferenze",
|
||||||
|
"preferințe",
|
||||||
|
"prestazioni",
|
||||||
|
"privacidad",
|
||||||
|
"privacidade",
|
||||||
|
"privacy",
|
||||||
|
"prywatność",
|
||||||
|
"pubblicità",
|
||||||
|
"publicidad",
|
||||||
|
"publicidade",
|
||||||
|
"publicitate",
|
||||||
|
"publicité",
|
||||||
|
"rastreamento",
|
||||||
|
"rechazar",
|
||||||
|
"refuza",
|
||||||
|
"reject",
|
||||||
|
"rejeitar",
|
||||||
|
"rejeter",
|
||||||
|
"reklama",
|
||||||
|
"rendimiento",
|
||||||
|
"respinge",
|
||||||
|
"rifiutare",
|
||||||
|
"salva",
|
||||||
|
"salvar",
|
||||||
|
"salvare",
|
||||||
|
"sauvegarder",
|
||||||
|
"save",
|
||||||
|
"schließen",
|
||||||
|
"seguimiento",
|
||||||
|
"setări",
|
||||||
|
"settings",
|
||||||
|
"śledzenie",
|
||||||
|
"speichern",
|
||||||
|
"strona trzecia",
|
||||||
|
"suivi",
|
||||||
|
"terceiro",
|
||||||
|
"tercero",
|
||||||
|
"terță parte",
|
||||||
|
"terza parte",
|
||||||
|
"third-party",
|
||||||
|
"tiers",
|
||||||
|
"tracciamento",
|
||||||
|
"tracking",
|
||||||
|
"urmărire",
|
||||||
|
"usage",
|
||||||
|
"uso",
|
||||||
|
"ustawienia",
|
||||||
|
"utilisation",
|
||||||
|
"utilizare",
|
||||||
|
"użycie",
|
||||||
|
"verfolgung",
|
||||||
|
"verwalten",
|
||||||
|
"werbung",
|
||||||
|
"wydajność",
|
||||||
|
"zaakceptować",
|
||||||
|
"zamknij",
|
||||||
|
"zapisz",
|
||||||
|
"zarządzać",
|
||||||
|
"zgoda",
|
||||||
|
"zgodność",
|
||||||
|
"zgodzić się",
|
||||||
|
"zrzeczenie się",
|
||||||
|
"zustimmen",
|
||||||
|
"аналитика",
|
||||||
|
"баннер",
|
||||||
|
"всплывающее окно",
|
||||||
|
"данные",
|
||||||
|
"диалог",
|
||||||
|
"закон",
|
||||||
|
"закрыть",
|
||||||
|
"информация",
|
||||||
|
"использование",
|
||||||
|
"конфиденциальность",
|
||||||
|
"настройки",
|
||||||
|
"необходимо",
|
||||||
|
"опционально",
|
||||||
|
"отказ",
|
||||||
|
"отказаться",
|
||||||
|
"отклонить",
|
||||||
|
"отслеживание",
|
||||||
|
"персонализация",
|
||||||
|
"политика",
|
||||||
|
"предпочтения",
|
||||||
|
"принять",
|
||||||
|
"производительность",
|
||||||
|
"реклама",
|
||||||
|
"согласен",
|
||||||
|
"согласие",
|
||||||
|
"соответствие",
|
||||||
|
"сохранить",
|
||||||
|
"третья сторона",
|
||||||
|
"управлять",
|
||||||
|
"функциональный"
|
||||||
|
],
|
||||||
|
"rules": [
|
||||||
|
"||app.usercentrics.eu^",
|
||||||
|
"||b2brouter.net/de/wp-content/plugins/cookies-and-content-security-policy^",
|
||||||
|
"||benno-gymnasium.de/plugins/system/gdpr^",
|
||||||
|
"||c.evidon.com^",
|
||||||
|
"||cdn-cookieyes.com^",
|
||||||
|
"||cdn.consentmanager.net^",
|
||||||
|
"||cdn.cookielaw.org^",
|
||||||
|
"||cdn.optable.co^",
|
||||||
|
"||cdn.trustcommander.net/privacy^",
|
||||||
|
"||cdntranscend.eventbrite.com^",
|
||||||
|
"||chollometro.com/assets/js/CookiesMessage*.js^",
|
||||||
|
"||city-bahn.de/wp-content/plugins/borlabs-cookie^",
|
||||||
|
"||cmp.huffingtonpost.fr^",
|
||||||
|
"||cmp.inmobi.com^",
|
||||||
|
"||cmp.prisa.com^",
|
||||||
|
"||cmp.uniconsent.com^",
|
||||||
|
"||cms.static-bahn.de/cms/consent-layer^",
|
||||||
|
"||consent.cookiebot.com^",
|
||||||
|
"||consent.cookiefirst.com^",
|
||||||
|
"||consent.pdf24.org^",
|
||||||
|
"||consent.trustarc.com^",
|
||||||
|
"||consent.up.welt.de^",
|
||||||
|
"||consentbar.interencheres.com^",
|
||||||
|
"||consentcdn.cookiebot.com^",
|
||||||
|
"||cookiehub.net^",
|
||||||
|
"||cp.as.com^",
|
||||||
|
"||cp.inside-digital.de^",
|
||||||
|
"||download.amd.com/OneTrust^",
|
||||||
|
"||driftingchef.com/static/*/Sticky2,ConsentManager",
|
||||||
|
"||emp.bbci.co.uk^",
|
||||||
|
"||eu.fastcmp.com^",
|
||||||
|
"||forum.vorondesign.com/js/xf/notice.min.js^",
|
||||||
|
"||gdpr-tcfv2.sp-prod.net^",
|
||||||
|
"||get.optad360.io/sf/*/plugin.min.js",
|
||||||
|
"||ilims.de/typo3conf/ext/nb_cookie_banner^",
|
||||||
|
"||itkadmin.de/_javascripts/cookiesolution/es_cookie_solution_sources_v2.js^",
|
||||||
|
"||js.vxcdn.com/usercentrics-sdk^",
|
||||||
|
"||lensois.com/wp-admin/admin-ajax.php",
|
||||||
|
"||media.bzcompany.cz/scookies^",
|
||||||
|
"||myprivacy-static.dpgmedia.net/consent.js^",
|
||||||
|
"||myprivacy.dpgmedia.*/consent^",
|
||||||
|
"||optanon.blob.core.windows.net^",
|
||||||
|
"||privacy.wetransfer.com/fides.js^",
|
||||||
|
"||prod.widgets.burgerprofiel.vlaanderen.be/*/js.cookie.js^",
|
||||||
|
"||redditstatic.com/onetrust.*.js",
|
||||||
|
"||s.nitropay.com/gpp-*.min.js",
|
||||||
|
"||s.p7s1.io/cmp^",
|
||||||
|
"||sdk.privacy-center.org^",
|
||||||
|
"||static.fastcmp.com^",
|
||||||
|
"||transcend-cdn.com^",
|
||||||
|
"||wcpstatic.microsoft.com^",
|
||||||
|
"||webtools.europa.eu/js/webtools.cck.js^",
|
||||||
|
"||widgets.marketcat.net^"
|
||||||
|
],
|
||||||
"tokens": {
|
"tokens": {
|
||||||
"backdrops": [
|
"backdrops": [
|
||||||
".cc-policy-overlay",
|
".cc-policy-overlay",
|
||||||
@ -13997,5 +14008,5 @@
|
|||||||
"ytm-consent-bump-v2-renderer"
|
"ytm-consent-bump-v2-renderer"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"version": "1728300083309"
|
"version": "1729252494919"
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,9 @@ import v4ReportRoutes from 'routes/v4/report';
|
|||||||
import v5DataRoutes from 'routes/v5/data';
|
import v5DataRoutes from 'routes/v5/data';
|
||||||
import v5IssuesRoutes from 'routes/v5/issues';
|
import v5IssuesRoutes from 'routes/v5/issues';
|
||||||
import v5ReportRoutes from 'routes/v5/report';
|
import v5ReportRoutes from 'routes/v5/report';
|
||||||
|
import v6DataRoutes from 'routes/v6/data';
|
||||||
|
import v6IssuesRoutes from 'routes/v6/issues';
|
||||||
|
import v6ReportRoutes from 'routes/v6/report';
|
||||||
import environment from 'services/environment';
|
import environment from 'services/environment';
|
||||||
|
|
||||||
const server = fastify({ logger: true });
|
const server = fastify({ logger: true });
|
||||||
@ -39,6 +42,9 @@ server.register(v4ReportRoutes, { prefix: '/rest/v4' });
|
|||||||
server.register(v5DataRoutes, { prefix: '/rest/v5' });
|
server.register(v5DataRoutes, { prefix: '/rest/v5' });
|
||||||
server.register(v5IssuesRoutes, { prefix: '/rest/v5' });
|
server.register(v5IssuesRoutes, { prefix: '/rest/v5' });
|
||||||
server.register(v5ReportRoutes, { prefix: '/rest/v5' });
|
server.register(v5ReportRoutes, { prefix: '/rest/v5' });
|
||||||
|
server.register(v6DataRoutes, { prefix: '/rest/v6' });
|
||||||
|
server.register(v6IssuesRoutes, { prefix: '/rest/v6' });
|
||||||
|
server.register(v6ReportRoutes, { prefix: '/rest/v6' });
|
||||||
|
|
||||||
server.listen({ host: '0.0.0.0', port: environment.port }, (error, address) => {
|
server.listen({ host: '0.0.0.0', port: environment.port }, (error, address) => {
|
||||||
if (error) {
|
if (error) {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { FastifyInstance, RouteShorthandOptions } from 'fastify';
|
import { FastifyInstance, RouteShorthandOptions } from 'fastify';
|
||||||
import fetch from 'node-fetch';
|
import fetch from 'node-fetch';
|
||||||
import { parseNewFix } from 'services/compatibility';
|
import { parseAction } from 'services/compatibility';
|
||||||
import environment from 'services/environment';
|
import environment from 'services/environment';
|
||||||
import { RATE_LIMIT_10_PER_MIN } from 'services/rateLimit';
|
import { RATE_LIMIT_10_PER_MIN } from 'services/rateLimit';
|
||||||
|
|
||||||
@ -14,17 +14,18 @@ export default (server: FastifyInstance, _options: RouteShorthandOptions, done:
|
|||||||
},
|
},
|
||||||
async (_request, reply) => {
|
async (_request, reply) => {
|
||||||
try {
|
try {
|
||||||
const url = `${environment.gitea.raw}/database.json`;
|
const database = `${environment.gitea.raw}/database.json`;
|
||||||
const result = await (await fetch(url)).json();
|
const response = await fetch(database);
|
||||||
|
const { actions, exclusions, keywords, tokens } = await response.json();
|
||||||
|
|
||||||
reply.send({
|
reply.send({
|
||||||
data: {
|
data: {
|
||||||
classes: result.tokens.classes,
|
classes: tokens.classes,
|
||||||
commonWords: result.commonWords,
|
commonWords: keywords,
|
||||||
elements: result.tokens.selectors,
|
elements: tokens.selectors,
|
||||||
fixes: result.fixes.map(parseNewFix),
|
fixes: actions.map(parseAction),
|
||||||
skips: result.skips.domains,
|
skips: exclusions.overflows,
|
||||||
tags: result.skips.tags,
|
tags: exclusions.tags,
|
||||||
},
|
},
|
||||||
success: true,
|
success: true,
|
||||||
});
|
});
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { FastifyInstance, RouteShorthandOptions } from 'fastify';
|
import { FastifyInstance, RouteShorthandOptions } from 'fastify';
|
||||||
import fetch from 'node-fetch';
|
import fetch from 'node-fetch';
|
||||||
import { parseNewFix } from 'services/compatibility';
|
import { parseAction } from 'services/compatibility';
|
||||||
import environment from 'services/environment';
|
import environment from 'services/environment';
|
||||||
import { RATE_LIMIT_3_PER_MIN } from 'services/rateLimit';
|
import { RATE_LIMIT_3_PER_MIN } from 'services/rateLimit';
|
||||||
|
|
||||||
@ -14,13 +14,16 @@ export default (server: FastifyInstance, _options: RouteShorthandOptions, done:
|
|||||||
},
|
},
|
||||||
async (_request, reply) => {
|
async (_request, reply) => {
|
||||||
try {
|
try {
|
||||||
const url = `${environment.gitea.raw}/database.json`;
|
const database = `${environment.gitea.raw}/database.json`;
|
||||||
const result = await (await fetch(url)).json();
|
const response = await fetch(database);
|
||||||
|
const { actions, exclusions, keywords, ...rest } = await response.json();
|
||||||
|
|
||||||
reply.send({
|
reply.send({
|
||||||
data: {
|
data: {
|
||||||
...result,
|
...rest,
|
||||||
fixes: result.fixes.map(parseNewFix),
|
commonWords: keywords,
|
||||||
|
fixes: actions.map(parseAction),
|
||||||
|
skips: { domains: exclusions.overflows, tags: exclusions.tags },
|
||||||
},
|
},
|
||||||
success: true,
|
success: true,
|
||||||
});
|
});
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import { FastifyInstance, RouteShorthandOptions } from 'fastify';
|
import { FastifyInstance, RouteShorthandOptions } from 'fastify';
|
||||||
import fetch from 'node-fetch';
|
import fetch from 'node-fetch';
|
||||||
|
import { parseActionName, toDeclarativeNetRequestRule } from 'services/compatibility';
|
||||||
import environment from 'services/environment';
|
import environment from 'services/environment';
|
||||||
import { RATE_LIMIT_3_PER_MIN } from 'services/rateLimit';
|
import { RATE_LIMIT_3_PER_MIN } from 'services/rateLimit';
|
||||||
|
|
||||||
@ -13,14 +14,18 @@ export default (server: FastifyInstance, _options: RouteShorthandOptions, done:
|
|||||||
},
|
},
|
||||||
async (_request, reply) => {
|
async (_request, reply) => {
|
||||||
try {
|
try {
|
||||||
|
const database = `${environment.gitea.raw}/database.json`;
|
||||||
const options = { headers: { 'Cache-Control': 'no-cache' } };
|
const options = { headers: { 'Cache-Control': 'no-cache' } };
|
||||||
const url = `${environment.gitea.raw}/database.json`;
|
const response = await fetch(database, options);
|
||||||
const { rules, ...result } = await (await fetch(url, options)).json();
|
const { actions, exclusions, keywords, rules, ...rest } = await response.json();
|
||||||
|
|
||||||
reply.send({
|
reply.send({
|
||||||
data: {
|
data: {
|
||||||
...result,
|
...rest,
|
||||||
|
actions: actions.map(parseActionName),
|
||||||
|
commonWords: keywords,
|
||||||
rules: rules.map(toDeclarativeNetRequestRule),
|
rules: rules.map(toDeclarativeNetRequestRule),
|
||||||
|
skips: { domains: exclusions.overflows, tags: exclusions.tags },
|
||||||
},
|
},
|
||||||
success: true,
|
success: true,
|
||||||
});
|
});
|
||||||
@ -35,17 +40,3 @@ export default (server: FastifyInstance, _options: RouteShorthandOptions, done:
|
|||||||
|
|
||||||
done();
|
done();
|
||||||
};
|
};
|
||||||
|
|
||||||
function toDeclarativeNetRequestRule(urlFilter: string, index: number) {
|
|
||||||
return {
|
|
||||||
action: {
|
|
||||||
type: 'block',
|
|
||||||
},
|
|
||||||
condition: {
|
|
||||||
resourceTypes: ['font', 'image', 'media', 'object', 'script', 'stylesheet', 'xmlhttprequest'],
|
|
||||||
urlFilter,
|
|
||||||
},
|
|
||||||
id: index + 1,
|
|
||||||
priority: 1,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
39
packages/api/src/routes/v6/data.ts
Normal file
39
packages/api/src/routes/v6/data.ts
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import { FastifyInstance, RouteShorthandOptions } from 'fastify';
|
||||||
|
import fetch from 'node-fetch';
|
||||||
|
import { toDeclarativeNetRequestRule } from 'services/compatibility';
|
||||||
|
import environment from 'services/environment';
|
||||||
|
import { RATE_LIMIT_3_PER_MIN } from 'services/rateLimit';
|
||||||
|
|
||||||
|
export default (server: FastifyInstance, _options: RouteShorthandOptions, done: () => void) => {
|
||||||
|
server.get(
|
||||||
|
'/data/',
|
||||||
|
{
|
||||||
|
config: {
|
||||||
|
rateLimit: RATE_LIMIT_3_PER_MIN,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
async (_request, reply) => {
|
||||||
|
try {
|
||||||
|
const database = `${environment.gitea.raw}/database.json`;
|
||||||
|
const options = { headers: { 'Cache-Control': 'no-cache' } };
|
||||||
|
const response = await fetch(database, options);
|
||||||
|
const { rules, ...rest } = await response.json();
|
||||||
|
|
||||||
|
reply.send({
|
||||||
|
data: {
|
||||||
|
...rest,
|
||||||
|
rules: rules.map(toDeclarativeNetRequestRule),
|
||||||
|
},
|
||||||
|
success: true,
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
reply.send({
|
||||||
|
errors: [error.message],
|
||||||
|
success: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
done();
|
||||||
|
};
|
1
packages/api/src/routes/v6/issues.ts
Normal file
1
packages/api/src/routes/v6/issues.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
export { default as default } from '../v5/issues';
|
1
packages/api/src/routes/v6/report.ts
Normal file
1
packages/api/src/routes/v6/report.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
export { default as default } from '../v5/report';
|
@ -1,13 +1,32 @@
|
|||||||
/**
|
export function parseAction(action: Action): string {
|
||||||
* Parse the new fix object into the old string format used by older versions of the extension
|
return `${action.domain}##${action.selector}##${action.name}${action.property ? `##${action.property}` : ''}`;
|
||||||
*/
|
|
||||||
export function parseNewFix(fix: Fix): string {
|
|
||||||
return `${fix.domain}##${fix.selector}##${fix.action}${fix.property ? `##${fix.property}` : ''}`;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Fix {
|
export function parseActionName(
|
||||||
readonly action: string;
|
action: Action
|
||||||
|
): Omit<Action, 'name'> & { readonly action: string } {
|
||||||
|
const { name, ...rest } = action;
|
||||||
|
|
||||||
|
return { action: name, ...rest };
|
||||||
|
}
|
||||||
|
|
||||||
|
export function toDeclarativeNetRequestRule(urlFilter: string, index: number) {
|
||||||
|
return {
|
||||||
|
action: {
|
||||||
|
type: 'block',
|
||||||
|
},
|
||||||
|
condition: {
|
||||||
|
resourceTypes: ['font', 'image', 'media', 'object', 'script', 'stylesheet', 'xmlhttprequest'],
|
||||||
|
urlFilter,
|
||||||
|
},
|
||||||
|
id: index + 1,
|
||||||
|
priority: 1,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Action {
|
||||||
readonly domain: string;
|
readonly domain: string;
|
||||||
|
readonly name: string;
|
||||||
readonly property?: string;
|
readonly property?: string;
|
||||||
readonly selector: string;
|
readonly selector: string;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user