From 04bc412d0963483ffd3a66f426ecca5abcbbcbac Mon Sep 17 00:00:00 2001 From: "Agatha V. Lovelace" Date: Fri, 7 Apr 2023 18:20:50 +0200 Subject: [PATCH] Add URL eater --- common/fragments/graphical/url-eater.nix | 146 +++++++++++++++ flake.lock | 228 +++++++++++++++++++---- flake.nix | 9 +- 3 files changed, 342 insertions(+), 41 deletions(-) create mode 100644 common/fragments/graphical/url-eater.nix diff --git a/common/fragments/graphical/url-eater.nix b/common/fragments/graphical/url-eater.nix new file mode 100644 index 0000000..e70df31 --- /dev/null +++ b/common/fragments/graphical/url-eater.nix @@ -0,0 +1,146 @@ +{ pkgs, config, lib, ... }: +let + filters = pkgs.writeText "filters.kdl" '' + category "Action Map" { + params "action_object_map" "action_ref_map" "action_type_map" + } + category "AliExpress.com" { + params "aff_platform" "aff_trace_key" \ + "algo_expid@*.aliexpress.*" "*pvid@*.aliexpress.*" "btsid@*.aliexpress.*" \ + "expid@*.aliexpress.*" "initiative_id@*.aliexpress.*" "scm_id@*.aliexpress.*" \ + "spm@*.aliexpress.*" "ws_ab_test*.aliexpress.*" \ + "_t@*.aliexpress.*" "pdp_npi@*.aliexpress.*" "gatewayAdapt@*.aliexpress.*" + } + category "Amazon" { + params "_encoding@amazon.*" "ascsubtag@amazon.*" "pd_rd_*@amazon.*" "pf@amazon.*" "pf_rd_*@amazon.*" "psc@amazon.*" "ref_@amazon.*" "tag@amazon.*" + } + category "Bing" { + params "cvid@bing.com" "form@bing.com" "pq@bing.com" "qs@bing.com" "sc@bing.com" "sk@bing.com" "sp@bing.com" + } + category "Campaign tracking (Adobe Analytics)" { + params "sc_cid" + } + category "Campaign tracking (Adobe Marketo)" { + params "mkt_tok" + } + category "Campaign tracking (Amazon Kendra)" { + params "trk" "trkCampaign" + } + category "Campaign tracking (at)" { + params "at_campaign" "at_custom*" "at_medium" + } + category "Campaign tracking (Change.org)" { + params "guest@change.org" "recruited_by_id@change.org" "recruiter@change.org" "short_display_name@change.org" "source_location@change.org" + } + category "Campaign tracking (DPG Media)" { + params "dpg_*" + } + category "Campaign tracking (Google Analytics ga)" { + params "ga_*" "gclid" "gclsrc" + } + category "Campaign tracking (Humble Bundle)" { + params "hmb_campaign" "hmb_medium" "hmb_source" + } + category "Campaign tracking (IBM Acoustic Campaign)" { + params "spJobID" "spMailingID" "spReportId" "spUserID" + } + category "Campaign tracking (itm)" { + params "itm_*" + } + category "Campaign tracking (Omniture)" { + params "s_cid" + } + category "Campaign tracking (Oracle Eloqua)" { + params "assetId" "assetType" "campaignId" "elqTrack" "elqTrackId" "recipientId" "siteId" + } + category "Campaign tracking (MailChimp)" { + params "mc_cid" "mc_eid" + } + category "Campaign tracking (Matomo/Piwik)" { + params "mtm_*" "pk_*" + } + category "Campaign tracking (ns)" { + params "ns_*" + } + category "Campaign tracking (sc)" { + params "sc_campaign" "sc_channel" "sc_content" "sc_country" "sc_geo" "sc_medium" "sc_outcome" + } + category "Campaign tracking (stm)" { + params "stm_*" + } + category "Campaign tracking (utm)" { + params "nr_email_referer" "utm_*" + } + category "Campaign tracking (Vero)" { + params "vero_conv" "vero_id" + } + category "Campaign tracking (Yandex)" { + params "_openstat" "yclid" + } + category "Campaign tracking (others)" { + params "c_id" "campaign_id" "Campaign" "cmpid" "mbid" "ncid" + } + category "Caseking.de" { + params "campaign@caseking.de" "sPartner@caseking.de" + } + category "Ebay" { + params "hash@ebay.*" "_trkparms@ebay.*" "_trksid@ebay.*" "amdata@ebay.*" "epid@ebay.*" "hash@ebay.*" "var@ebay.*" + } + category "Etsy" { + params "click_key@etsy.com" "click_sum@etsy.com" "organic_search_click@etsy.com" "ref@etsy.com" + } + category "Facebook" { + params "fb_action_ids" "fb_action_types" "fb_ref" "fb_source" "fbclid" "hrc@facebook.com" "refsrc@facebook.com" + } + category "Google" { + params "ei@google.*" "gs_gbg@google.*" "gs_l" "gs_lcp@google.*" "gs_mss@google.*" "gs_rn@google.*" "gws_rd@google.*" "sei@google.*" "ved@google.*" + } + category "Hubspot" { + params "_hsenc" "_hsmi" "__hssc" "__hstc" "hsCtaTracking" + } + category "IMDb" { + params "pf_rd_*@imdb.com" "ref_@imdb.com" + } + category "LinkedIn" { + params "eBP@linkedin.com" "lgCta@linkedin.com" "lgTemp@linkedin.com" "lipi@linkedin.com" "midSig@linkedin.com" "midToken@linkedin.com" "recommendedFlavor@linkedin.com" "refId@linkedin.com" "trackingId@linkedin.com" "trk@linkedin.com" "trkEmail@linkedin.com" + } + category "Medium" { + params "_branch_match_id@medium.com" "source@medium.com" + } + category "SourceForge.net" { + params "position@sourceforge.net" "source@sourceforge.net" + } + category "Spotify" { + params "context@open.spotify.com" "si@open.spotify.com" + } + category "TikTok" { + params "_d@tiktok.com" "checksum@tiktok.com" "is_copy_url@tiktok.com" "is_from_webapp@tiktok.com" "language@tiktok.com" "preview_pb@tiktok.com" "sec_user_id@tiktok.com" "sender_device@tiktok.com" "sender_web_id@tiktok.com" "share_app_id@tiktok.com" "share_link_id@tiktok.com" "share_item_id@tiktok.com" "source@tiktok.com" "timestamp@tiktok.com" "tt_from@tiktok.com" "u_code@tiktok.com" "user_id@tiktok.com" + } + category "Twitch.tv" { + params "tt_content" "tt_medium" + } + category "Twitter" { + params "cxt@*.twitter.com" "ref_*@*.twitter.com" "s@*.twitter.com" "t@*.twitter.com" "twclid" + } + category "Yandex" { + params "lr@yandex.*" "redircnt@yandex.*" + } + category "YouTube.com" { + params "feature@youtube.com" "kw@youtube.com" + } + category "Zeit.de" { + params "wt_mc" "wt_zmc" + } + ''; +in { + systemd.user.services."url-eater" = { + description = "Clipboard URL cleanup service"; + + after = [ "graphical-session-pre.target" ]; + wantedBy = [ "graphical-session.target" ]; + + script = '' + exec ${pkgs.url-eater}/bin/url-eater ${filters} + ''; + }; +} diff --git a/flake.lock b/flake.lock index 7d27815..aa5ce25 100644 --- a/flake.lock +++ b/flake.lock @@ -18,10 +18,6 @@ }, "dream2nix": { "inputs": { - "alejandra": [ - "helix", - "nci" - ], "all-cabal-json": [ "helix", "nci" @@ -31,6 +27,8 @@ "helix", "nci" ], + "drv-parts": "drv-parts", + "flake-compat": "flake-compat", "flake-parts": [ "helix", "nci", @@ -61,6 +59,7 @@ "nci", "nixpkgs" ], + "nixpkgsV1": "nixpkgsV1", "poetry2nix": [ "helix", "nci" @@ -75,11 +74,11 @@ ] }, "locked": { - "lastModified": 1677289985, - "narHash": "sha256-lUp06cTTlWubeBGMZqPl9jODM99LpWMcwxRiscFAUJg=", + "lastModified": 1680258209, + "narHash": "sha256-lEo50RXI/17/a9aCIun8Hz62ZJ5JM5RGeTgclIP+Lgc=", "owner": "nix-community", "repo": "dream2nix", - "rev": "28b973a8d4c30cc1cbb3377ea2023a76bc3fb889", + "rev": "6f512b5a220fdb26bd3c659f7b55e4f052ec8b35", "type": "github" }, "original": { @@ -88,7 +87,58 @@ "type": "github" } }, + "drv-parts": { + "inputs": { + "flake-compat": [ + "helix", + "nci", + "dream2nix", + "flake-compat" + ], + "flake-parts": [ + "helix", + "nci", + "dream2nix", + "flake-parts" + ], + "nixpkgs": [ + "helix", + "nci", + "dream2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1680172861, + "narHash": "sha256-QMyI338xRxaHFDlCXdLCtgelGQX2PdlagZALky4ZXJ8=", + "owner": "davhau", + "repo": "drv-parts", + "rev": "ced8a52f62b0a94244713df2225c05c85b416110", + "type": "github" + }, + "original": { + "owner": "davhau", + "repo": "drv-parts", + "type": "github" + } + }, "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { "flake": false, "locked": { "lastModified": 1668681692, @@ -142,11 +192,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1678284394, - "narHash": "sha256-oEXCoNxfEmxqGuYxW7cLwINW70jeRrYqgOC40G1WBr8=", + "lastModified": 1680646269, + "narHash": "sha256-MRohWyeJJf3zwMWUt4XQnD1qbem0/3D0cbomvJ47YuE=", "owner": "helix-editor", "repo": "helix", - "rev": "34be71fb50738a7e9d9e5ee5090680a0d84a321c", + "rev": "531b745c54e5d316603601cc05ade50ab02066ab", "type": "github" }, "original": { @@ -163,11 +213,11 @@ "utils": "utils" }, "locked": { - "lastModified": 1678271387, - "narHash": "sha256-H2dv/i1LRlunRtrESirELzfPWdlG/6ElDB1ksO529H4=", + "lastModified": 1680597706, + "narHash": "sha256-ZqJ3T+BxzjPH9TnmeUwS4Uu9ZQPeBXAFC9sUWlharT4=", "owner": "nix-community", "repo": "home-manager", - "rev": "36999b8d19eb6eebb41983ef017d7e0095316af2", + "rev": "ec06f419af79207b33d797064dfb3fc9dbe1df4a", "type": "github" }, "original": { @@ -210,7 +260,7 @@ }, "mms": { "inputs": { - "flake-compat": "flake-compat", + "flake-compat": "flake-compat_2", "flake-utils": "flake-utils_2", "nix": "nix", "nixpkgs": [ @@ -231,6 +281,25 @@ "type": "github" } }, + "naersk": { + "inputs": { + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1679567394, + "narHash": "sha256-ZvLuzPeARDLiQUt6zSZFGOs+HZmE+3g4QURc8mkBsfM=", + "owner": "nix-community", + "repo": "naersk", + "rev": "88cd22380154a2c36799fe8098888f0f59861a15", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "master", + "repo": "naersk", + "type": "github" + } + }, "nci": { "inputs": { "dream2nix": "dream2nix", @@ -246,11 +315,11 @@ ] }, "locked": { - "lastModified": 1677297103, - "narHash": "sha256-ArlJIbp9NGV9yvhZdV0SOUFfRlI/kHeKoCk30NbSiLc=", + "lastModified": 1680329418, + "narHash": "sha256-+KN0eQLSZvL1J0kDO8/fxv0UCHTyZCADLmpIfeeiSGo=", "owner": "yusdacra", "repo": "nix-cargo-integration", - "rev": "a79272a2cb0942392bb3a5bf9a3ec6bc568795b2", + "rev": "98c1d2ff5155f0fee5d290f6b982cb990839d540", "type": "github" }, "original": { @@ -281,11 +350,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1677063315, - "narHash": "sha256-qiB4ajTeAOVnVSAwCNEEkoybrAlA+cpeiBxLobHndE8=", + "lastModified": 1680213900, + "narHash": "sha256-cIDr5WZIj3EkKyCgj/6j3HBH4Jj1W296z7HTcWj1aMA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "988cc958c57ce4350ec248d2d53087777f9e1949", + "rev": "e3652e0735fbec227f342712f180f4f21f0594f2", "type": "github" }, "original": { @@ -298,11 +367,11 @@ "nixpkgs-lib": { "locked": { "dir": "lib", - "lastModified": 1675183161, - "narHash": "sha256-Zq8sNgAxDckpn7tJo7V1afRSk2eoVbu3OjI1QklGLNg=", + "lastModified": 1678375444, + "narHash": "sha256-XIgHfGvjFvZQ8hrkfocanCDxMefc/77rXeHvYdzBMc8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e1e1b192c1a5aab2960bf0a0bd53a2e8124fa18e", + "rev": "130fa0baaa2b93ec45523fdcde942f6844ee9f6e", "type": "github" }, "original": { @@ -329,6 +398,21 @@ "type": "github" } }, + "nixpkgsV1": { + "locked": { + "lastModified": 1678500271, + "narHash": "sha256-tRBLElf6f02HJGG0ZR7znMNFv/Uf7b2fFInpTHiHaSE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5eb98948b66de29f899c7fe27ae112a47964baf8", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-22.11", + "type": "indirect" + } + }, "nixpkgs_2": { "locked": { "lastModified": 1657693803, @@ -347,11 +431,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1678137616, - "narHash": "sha256-T+lWTRdcYaOnZQW+Ehdlg+YldC2l9cq2GXJFPq22Nxc=", + "lastModified": 1680588688, + "narHash": "sha256-SW95w50Pdw3nivgTuCebtbbPqaCTp9ctnFMNj24vdck=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7edcdf7b169c33cd3eef9aba50521ce93ee666b8", + "rev": "3e01f83884b8ed7cbafa784727fb343f1876d56f", "type": "github" }, "original": { @@ -360,6 +444,36 @@ "type": "indirect" } }, + "nixpkgs_4": { + "locked": { + "lastModified": 1680273054, + "narHash": "sha256-Bs6/5LpvYp379qVqGt9mXxxx9GSE789k3oFc+OAL07M=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "3364b5b117f65fe1ce65a3cdd5612a078a3b31e3", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1680273054, + "narHash": "sha256-Bs6/5LpvYp379qVqGt9mXxxx9GSE789k3oFc+OAL07M=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "3364b5b117f65fe1ce65a3cdd5612a078a3b31e3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "parts": { "inputs": { "nixpkgs-lib": [ @@ -369,11 +483,11 @@ ] }, "locked": { - "lastModified": 1675933616, - "narHash": "sha256-/rczJkJHtx16IFxMmAWu5nNYcSXNg1YYXTHoGjLrLUA=", + "lastModified": 1679737941, + "narHash": "sha256-srSD9CwsVPnUMsIZ7Kt/UegkKUEBcTyU1Rev7mO45S0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "47478a4a003e745402acf63be7f9a092d51b83d7", + "rev": "3502ee99d6dade045bdeaf7b0cd8ec703484c25c", "type": "github" }, "original": { @@ -387,11 +501,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1675933616, - "narHash": "sha256-/rczJkJHtx16IFxMmAWu5nNYcSXNg1YYXTHoGjLrLUA=", + "lastModified": 1679737941, + "narHash": "sha256-srSD9CwsVPnUMsIZ7Kt/UegkKUEBcTyU1Rev7mO45S0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "47478a4a003e745402acf63be7f9a092d51b83d7", + "rev": "3502ee99d6dade045bdeaf7b0cd8ec703484c25c", "type": "github" }, "original": { @@ -405,7 +519,8 @@ "helix": "helix", "home-manager": "home-manager", "mms": "mms", - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_3", + "url-eater": "url-eater" } }, "rust-overlay": { @@ -417,11 +532,11 @@ ] }, "locked": { - "lastModified": 1677292251, - "narHash": "sha256-D+6q5Z2MQn3UFJtqsM5/AvVHi3NXKZTIMZt1JGq/spA=", + "lastModified": 1680315536, + "narHash": "sha256-0AsBuKssJMbcRcw4HJQwJsUHhZxR5+gaf6xPQayhR44=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "34cdbf6ad480ce13a6a526f57d8b9e609f3d65dc", + "rev": "5c8c151bdd639074a0051325c16df1a64ee23497", "type": "github" }, "original": { @@ -430,13 +545,48 @@ "type": "github" } }, + "url-eater": { + "inputs": { + "naersk": "naersk", + "nixpkgs": "nixpkgs_5", + "utils": "utils_2" + }, + "locked": { + "lastModified": 1680708368, + "narHash": "sha256-ZsFU/5aRoD6ggqLJzSv+j6wFN6A6ZCBnmK18WeNjU50=", + "owner": "AgathaSorceress", + "repo": "url-eater", + "rev": "1ee90d22937dcf3fcb939d49dcfcf5cd3c1ae617", + "type": "github" + }, + "original": { + "owner": "AgathaSorceress", + "repo": "url-eater", + "type": "github" + } + }, "utils": { "locked": { - "lastModified": 1676283394, - "narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=", + "lastModified": 1678901627, + "narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=", "owner": "numtide", "repo": "flake-utils", - "rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073", + "rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "utils_2": { + "locked": { + "lastModified": 1678901627, + "narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index f0469d2..effe93f 100644 --- a/flake.nix +++ b/flake.nix @@ -12,9 +12,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + url-eater.url = "github:AgathaSorceress/url-eater"; + helix.url = "github:helix-editor/helix"; }; - outputs = { nixpkgs, home-manager, mms, helix, ... }: { + outputs = { nixpkgs, home-manager, mms, helix, url-eater, ... }: { colmena = { network = { description = "Agatha's Nix Infra"; @@ -22,7 +24,10 @@ nixpkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ - (final: prev: { helix = helix.packages.${final.system}.default; }) + (final: prev: { + helix = helix.packages.${final.system}.default; + url-eater = url-eater.defaultPackage.${final.system}; + }) ]; }; };