# AGLint config file
# Documentation: https://github.com/AdguardTeam/AGLint/blob/master/docs/configuration.md
root: true
extends:
  - aglint:recommended
platforms:
  - adg_any
rules:
  no-excluded-rules:
    - error
    - # Exclude rules by their exact text
      # Note: A rule is excluded ONLY if its text matches exactly.
      # For example, adding '||example.com^' will NOT exclude
      # '||example.com^$script'; it will exclude only '||example.com^'.
      excludedRuleTexts:
        # Breaks DuckDuckGo redirect when their Extension is installed - https://github.com/AdguardTeam/AdguardFilters/issues/161751
        - '||duckduckgo.com^$removeparam=atb'
        # Klaviyo onsite tracking - breaks some unsubscribe links
        - '$removeparam=_kx'
        # Completely blocks TikTok search
        # https://github.com/AdguardTeam/AdguardFilters/issues/225737#issuecomment-4003971740
        # https://www.tiktok.com/legal/page/global/tiktok-website-cookies-policy/en
        # For example: https://www.tiktok.com/search?q=test
        - '||tiktok.com^$cookie=ttwid'
        # Blocking pixapi.net causes issues
        - 'pixapi.net^'
        # https://github.com/AdguardTeam/AdguardFilters/issues/221086
        # May break whole mobile page
        - 'u.gg##.media-query_MOBILE_SMALL__MOBILE_LARGE'
        # https://github.com/AdguardTeam/AdguardFilters/issues/221018
        # Breaks Bandlab boost function
        - '||ad.bandlab.io^'
        # Breks shareing and access control in Google Docs
        - 'google.*##div[aria-label="Share"]'
        # Breaks websites that use Intercom chat widget
        - '||api-iam.intercom.io/messenger/web/ping'
        # Breaks adding Yahoo account in email clients
        - '||udc.yahoo.com^'
        # https://github.com/AdguardTeam/AdguardFilters/issues/188783#issuecomment-2359649738
        - '^||bilibili.com^$removeparam=mid'
        # Breaks appconsent.io cookie consents
        - '^||collector.appconsent.io^'
        # https://github.com/AdguardTeam/AdguardFilters/issues/231732
        - '||collector-sbanking.shb-pelib.com^'
        - '||verify.shb-pelib.com^'
        - '||api-ch01.shb-pelib.com^'
        - '||config-ch01.shb-pelib.com^'
        - '||api-ch02.shb-pelib.com^'
        - '||config-ch02.shb-pelib.com^'

      # Exclude rules using regular expression patterns
      #
      # IMPORTANT:
      # - Patterns are tested against the FULL line text.
      # - Matching applies to ALL lines, including comments (comments start with `!`).
      # - Use this section only when excluding by exact text is not possible.
      # - Be as specific as possible — overly broad patterns may exclude
      #   unrelated rules and cause widespread breakage.
      #
      # NOTE for comments:
      # - Matching applies to comment lines as well, so an unanchored regexp may match them.
      #   Example: the pattern `\|\|foo\^` may exclude both `||foo^` and `! ||foo^`.
      # - If you want to KEEP commented rules, ensure the pattern cannot start with `!`:
      #   * Anchor to the start if you match from the beginning:
      #       ^\|\|foo\^
      #     (matches `||foo^`, but not `! ||foo^`)
      #   * Or, if you want to match “anywhere in the rule”, prefix with:
      #       ^(?!!).*foo
      #     (matches `||foo^` or `||foo.example.com^`,
      #      but not `! ||foo^` nor `! some text foo`)
      #
      # NOTE for regexp-rules (for excluding regexp rules written as /.../):
      # - The escaping trick below is needed ONLY when the excluded rule
      #   itself is a regexp rule (i.e. written as /.../).
      # - In regexp rule text, dots (.) may appear escaped or unescaped.
      #
      # Example:
      #   Excluded rule:
      #     /example.(com|org)\/ads/
      #   Pattern to match both forms:
      #     \/example(\.|\\\.)\(com\|org\)\\\/ads\/
      #
      # This matches BOTH:
      #   /example.(com|org)\/ads/
      #   /example\.(com|org)\/ads/
      #
      # See example: https://regex101.com/r/L7CsOZ/1
      excludedRegExpPatterns:
        # https://jbbs.shitaraba.net/bbs/read.cgi/internet/25463/1618326670/297
        - suki-kira\.com###fullscreen-ad-container$
        # https://github.com/easylist/easylist/issues/24662
        - \|\|claude\.ai\/api\/event_logging
        # https://github.com/AdguardTeam/AdguardFilters/issues/235237
        - \|\|cchome.adobe.io\^$
        # https://github.com/easylist/easylist/pull/24555 add specific rules if needed
        - \|\|personaclick\.com\^(\$third-party)?$
        # Huawei GRS (Global Route Selection, like googleapis.com)
        - \|\|grs.dbankcloud.
        # https://github.com/easylist/easylist/commit/c0ba1cec6d0f9b584f9c39f411b09753735d8a00
        - \|\|prodregistryv2\.org\^
        # https://github.com/AdguardTeam/AdGuardSDNSFilter/issues/2021
        - \|\|fd\.cleantalk\.org\^
        # https://github.com/easylist/easylist/pull/22890
        - music\.163\.com\/weapi\/feedback\/weblog
        - music\.163\.com\/weapi\/pl\/count
        - \|\|clientlogusf\.music\.163.com\^
        # https://github.com/AdguardTeam/AdguardFilters/issues/223303
        - \|\|newspicks\.com\^\$removeparam=ref$
        # https://github.com/uBlockOrigin/uAssets/issues/28368#issuecomment-3730694651
        # Broken videos on bloomberg.com
        - (?=.*\|bloomberg\.com)^\/wrapperMessagingWithoutDetection\.js\$script,domain=
        # Broken PerimeterX captcha
        - \|\|collector-.*\.px-cloud\.net\^
        # https://github.com/uBlockOrigin/uAssets/issues/31330
        - \|\|metrics\.streaks\.jp\^(\$third-party)?$
        # https://github.com/AdguardTeam/AdguardFilters/issues/189518#issuecomment-2480190492
        - \@\@\|\|blog\.livedoor\.jp\^\$generichide
        # https://github.com/AdguardTeam/AdguardFilters/issues/220178
        - \|\|uts-front\.line-apps\.com\^
        # https://x.com/aminevsky/status/1999742558281564451
        - bookoffonline\.co\.jp\/files\/.+\/(GoogleAnalytics|clicktag)\.js
        # Dangerous, breaks many sites and apps
        - \|\|tags.tiqcdn.com\^$
        # https://github.com/AdguardTeam/AdguardFilters/issues/219547
        - \|\|adx\.promo\^
        # https://x.com/428rinsuki/status/1994048111082344631
        - \|\|stat\.i3\.dmm\.com
        # https://github.com/DandelionSprout/adfilt/discussions/163#discussioncomment-14989561
        - \|\|nextdns\.io.*\$removeparam=from$
        # https://github.com/easylist/easylist/issues/22562
        - \|\|duplexer\.wix\.com\^
        # https://github.com/AdguardTeam/AdguardFilters/issues/212007#issuecomment-3426074352
        - \|\|lit\.link\/scripts\/geniee-ad-inline\.js
        # https://github.com/AdguardTeam/AdguardFilters/issues/215858
        - \|\|an.gr-wcon.com\^$
        # https://github.com/AdguardTeam/AdguardFilters/issues/215269
        - nhk-ondemand\.jp#%#.+wd\.s_c_il['"]
        # https://github.com/AdguardTeam/AdguardFilters/issues/214686
        - \|\|gmss.use1.prd.api.discomax.com\^$
        # https://github.com/AdguardTeam/AdguardFilters/issues/213803
        - app\.tuta\.com###modal:has.+upgradeReminder
        # https://github.com/easylist/easylist/issues/22306#issuecomment-3303661703
        - airasia\.com\/z\.js$
        # Causes high CPU usage on notion.so
        - \|\|http-inputs-notion.splunkcloud.com\^$
        # https://github.com/hagezi/dns-blocklists/issues/7276
        - datadog.pool.ntp.org\^$
        # https://github.com/AdguardTeam/AdguardFilters/issues/212409
        - \|\|pro-1w-dataaggregator.onelouder.com\^$
        # https://github.com/AdguardTeam/AdguardFilters/commit/3835ef566e40b6374717d39546663a19c2fa7716#r162211924
        - ^##a?\[href[^*]="(https?:\/\/)?lin\.ee\/?"\]\s$
        # It seems this sript also used by anti-bot protection.
        # I can't pay on Taobao when this script is blocked, and applied the scriptlet
        - ^\|\|g\.alicdn\.com\/alilog\/mlog\/aplus_v2\.js
        # Breaks player on Independent sites. It loads config of players
        - ^\|\|pub.pixels.ai\^$
        # Blocks LiveChat chats completely
        - ^\|\|(cdn\.)?livechatinc\.com/tracking\.js(?:$|\$domain=~[^\s]*$)
        # https://github.com/AdguardTeam/AdguardFilters/issues/208130#issuecomment-3012265450
        # Breaks search results
        - ^\|\|links.duckduckgo.com\/d\.js\?q=$
        # https://github.com/AdguardTeam/AdguardFilters/issues/207941
        - ^\|\|sstats\.adobe\.com\^$
        # https://github.com/AdguardTeam/AdguardFilters/issues/208079
        # Related to GDPR consents, may break sites
        - ^\|\|global\.ketchcdn\.com\^$
        # Used by Samsung Internet browser to load config
        - ^\|\|config-api.internet.apps.samsung.com\^$
        # https://github.com/AdguardTeam/AdguardFilters/issues/207250
        # Blocks the order confirmation popup
        - etsy.com##.wt-animated--slide-from-bottom$
        # DataDome bot protection. Visitor may be blocked, if this rule will be applied
        - \$cookie=datadome$
        # https://github.com/AdguardTeam/AdguardFilters/commit/2112d107b92d9dd45c7adfd5819f3f554fa4d132
        - \|\|(www\.)?youtube\.com\^\$removeparam=si$
        - ^\$removeparam=si,domain=(www\.)?youtube\.com
        # https://github.com/AdguardTeam/AdguardFilters/issues/206173#issuecomment-2913361836
        - \|\|oogiri-ads-bucket\.s3\.ap-northeast-3\.amazonaws.com\^$
        - oogiri-chaya.com##\.ads_insert$
        # https://github.com/easylist/easylist/issues/20673#issuecomment-2887148428
        - \|\|prodregistryv2\.org\^$
        # https://github.com/AdguardTeam/AdguardFilters/issues/203956
        - \|\|event\.notifier\.rakuten\.co\.jp\^$
        - \|\|ashiato\.travel\.rakuten\.co\.jp\^$
        # https://github.com/AdguardTeam/AdguardFilters/issues/198683
        - \|\|insights.alibaba.com\^$
        # https://github.com/AdguardTeam/AdguardFilters/issues/203905
        - \|\|roblox.com\^\$cookie=RBXEventTrackerV2
        # dropbox.com
        # Broken "Add account recovery" dialog when setting up 2FA
        # https://www.dropbox.com/account/security?enroll_mfa=1&mfa_checkpoint_token=
        - dropbox\.com##div\.dig-Banner\[role="alert"\]$
        - dropbox\.com##\.dig-Banner$
        # https://github.com/AdguardTeam/AdguardFilters/issues/202560
        - \|\|hotapi\*\.tiktokv\.\w{2,3}\^$
        # plvideo.ru - history will be broken
        - ^\|\|stat\.g2\.plvideo.ru\^
        # https://github.com/AdguardTeam/AdguardFilters/issues/157889#issuecomment-1660195416
        - ^\|\|amazon\.\*\$removeparam=psc$
        # https://github.com/AdguardTeam/AdguardFilters/issues/110571
        - ^\|\|amazon\.\*\$removeparam=ref$
        # https://github.com/AdguardTeam/AdguardFilters/issues/88627
        - ^\|\|amazon\.\*\$removeparam=ref_$
        - ^\|\|amazon\.\*\$removeparam=ie$
        # https://github.com/AdguardTeam/AdguardFilters/issues/89163
        - ^\|\|amazon\.\*\/message-us\$removeparam=origRef$
        # https://github.com/AdguardTeam/AdguardFilters/issues/148958
        # Breaks navigation and removes chosen seller id on the item's page
        - ^\|\|amazon\.\*\$removeparam=smid$
        # https://github.com/AdguardTeam/AdguardFilters/issues/201809
        # May break sites
        - \|\|sdk-v2\.conscent\.in\^(\$third-party)?$
        # https://github.com/AdguardTeam/AdGuardSDNSFilter/issues/1846
        - \|\|c-api-bit.shopeemobile.com\^
        # https://github.com/AdguardTeam/AdguardFilters/issues/201028
        - \|\|tapi.pureapk.com\^
        # https://github.com/AdguardTeam/AdguardFilters/issues/200159#issuecomment-2710664591
        - \|\|market\.yandex\.[a-z]*\$removeparam=do-waremd5
        # https://github.com/easylist/easylist/issues/21268
        - \|\|applicationinsights\.io\^
        # https://github.com/AdguardTeam/AdguardFilters/issues/184034
        - \|\|events.data.microsoft.com\^
        # https://github.com/AdguardTeam/AdguardFilters/issues/127008
        - \|\|bilibili.com\^\$removeparam=from$
        # https://github.com/AdguardTeam/AdguardFilters/issues/198810
        # Don't add any too simple filter for this domain without $path
        - ^ameblo\.jp##div:has\(
        - ameblo\.jp##div(\[class.=.+\])?:empty
        # Causes problems on PlayStation consoles
        - \|\|telemetry\.api\.playstation\.com
        # https://github.com/AdguardTeam/AdguardFilters/issues/197916
        - \|\|mobile\.pipe\.aria\.microsoft.com
        # https://github.com/AdguardTeam/AdguardFilters/issues/146493
        - \|\|log\.suumo\.jp
        # Popular baits. Sync with EasyList
        - ^##\.ad-area$
        - ^##\.sidebar-ad$
        - ^##\.Ad-Container$
        # Cause many false positives
        - ^##\.cookie-modal$
        - ^###cookie-modal$
        # https://github.com/AdguardTeam/AdguardFilters/issues/165972#issuecomment-1815708057
        - ^ameblo\.jp##\.pickCreative_root$
        # https://github.com/AdguardTeam/AdguardFilters/issues/191068#issuecomment-2480464336
        - ^(\/sd)?_ads_updater-$
        - ^\|\|b\.karte\.io
        - ^\|\|static\.karte\.io
        # https://github.com/AdguardTeam/AdguardFilters/commit/a64fb16a9c0ba926f980ca5091ca6d39eeb6ef40
        - ^tuma(douga)?\.jp##\.index_banner_space$
        - static-assets\.bamgrid\.com\/analytics
        - ^staff-start\.com\/js\/track\/
        - minkou.jp\/js\/tracking\.js
        - amazon.com\/1\/batch\/1\/OP\/
        - amazon.com\/1\/batch\/1\/OE\/
        # https://github.com/AdguardTeam/AdguardFilters/pull/189856#issuecomment-2422639077
        - youtube\.com\^\$removeparam=si$
        # https://github.com/AdguardTeam/AdguardFilters/issues/195335
        - syndication\.twitter\.com\^
        # https://github.com/AdguardTeam/AdguardFilters/issues/197918
        - fiverr\.com\^\$removeparam=ref$
