nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 154 lines 5.6 kB view raw
1{ 2 config, 3 lib, 4 fetchFromGitHub, 5 fetchFromGitLab, 6 callPackage, 7}: 8 9let 10 buildFreshRssExtension = (callPackage ./freshrss-utils.nix { }).buildFreshRssExtension; 11 12 official_extensions_version = "unstable-2025-12-26"; 13 official_extensions_src = fetchFromGitHub { 14 owner = "FreshRSS"; 15 repo = "Extensions"; 16 rev = "42c32bfd9af2d816933cf310e24d25888a8e167d"; 17 hash = "sha256-El488QK3xWQM01GsuyBizud6VghXsRDqiOblnMfjVxE="; 18 }; 19 20 baseExtensions = 21 _self: 22 lib.mapAttrs (_n: lib.recurseIntoAttrs) { 23 auto-ttl = buildFreshRssExtension rec { 24 FreshRssExtUniqueId = "AutoTTL"; 25 pname = "auto-ttl"; 26 version = "0.5.0"; 27 src = fetchFromGitHub { 28 owner = "mgnsk"; 29 repo = "FreshRSS-AutoTTL"; 30 rev = "v${version}"; 31 hash = "sha256-OiTiLZ2BjQD1W/BD8EkUt7WB2wOjL6GMGJ+APT4YpwE="; 32 }; 33 meta = { 34 description = "FreshRSS extension for automatic feed refresh TTL based on the average frequency of entries"; 35 homepage = "https://github.com/mgnsk/FreshRSS-AutoTTL"; 36 license = lib.licenses.agpl3Only; 37 maintainers = [ lib.maintainers.stunkymonkey ]; 38 }; 39 }; 40 41 demo = buildFreshRssExtension { 42 FreshRssExtUniqueId = "Demo"; 43 pname = "demo"; 44 version = "unstable-2023-12-22"; 45 src = fetchFromGitHub { 46 owner = "FreshRSS"; 47 repo = "xExtension-Demo"; 48 rev = "8d60f71a2f0411f5fbbb1f88a57791cee0848f35"; 49 hash = "sha256-5fe8TjefSiGMaeZkurxSJjX8qEEa1ArhJxDztp7ZNZc="; 50 }; 51 meta = { 52 description = "FreshRSS Extension for the demo version"; 53 homepage = "https://github.com/FreshRSS/xExtension-Demo"; 54 license = lib.licenses.agpl3Only; 55 maintainers = [ lib.maintainers.stunkymonkey ]; 56 }; 57 }; 58 59 reading-time = buildFreshRssExtension { 60 FreshRssExtUniqueId = "ReadingTime"; 61 pname = "reading-time"; 62 version = "1.5"; 63 src = fetchFromGitLab { 64 domain = "framagit.org"; 65 owner = "Lapineige"; 66 repo = "FreshRSS_Extension-ReadingTime"; 67 rev = "fb6e9e944ef6c5299fa56ffddbe04c41e5a34ebf"; 68 hash = "sha256-C5cRfaphx4Qz2xg2z+v5qRji8WVSIpvzMbethTdSqsk="; 69 }; 70 meta = { 71 description = "FreshRSS extension adding a reading time estimation next to each article"; 72 homepage = "https://framagit.org/Lapineige/FreshRSS_Extension-ReadingTime"; 73 license = lib.licenses.agpl3Only; 74 maintainers = [ lib.maintainers.stunkymonkey ]; 75 }; 76 }; 77 78 reddit-image = buildFreshRssExtension rec { 79 FreshRssExtUniqueId = "RedditImage"; 80 pname = "reddit-image"; 81 version = "1.2.0"; 82 src = fetchFromGitHub { 83 owner = "aledeg"; 84 repo = "xExtension-RedditImage"; 85 rev = "v${version}"; 86 hash = "sha256-H/uxt441ygLL0RoUdtTn9Q6Q/Ois8RHlhF8eLpTza4Q="; 87 }; 88 meta = { 89 description = "FreshRSS extension to process Reddit feeds"; 90 homepage = "https://github.com/aledeg/xExtension-RedditImage"; 91 license = lib.licenses.agpl3Only; 92 maintainers = [ lib.maintainers.stunkymonkey ]; 93 }; 94 }; 95 96 title-wrap = buildFreshRssExtension { 97 FreshRssExtUniqueId = "TitleWrap"; 98 pname = "title-wrap"; 99 version = official_extensions_version; 100 src = official_extensions_src; 101 sourceRoot = "${official_extensions_src.name}/xExtension-TitleWrap"; 102 meta = { 103 description = "FreshRSS extension instead of truncating the title is wrapped"; 104 homepage = "https://github.com/FreshRSS/Extensions/tree/master/xExtension-TitleWrap"; 105 license = lib.licenses.agpl3Only; 106 maintainers = [ lib.maintainers.stunkymonkey ]; 107 }; 108 }; 109 110 unsafe-auto-login = buildFreshRssExtension { 111 FreshRssExtUniqueId = "UnsafeAutologin"; 112 pname = "unsafe-auto-login"; 113 version = official_extensions_version; 114 src = official_extensions_src; 115 sourceRoot = "${official_extensions_src.name}/xExtension-UnsafeAutologin"; 116 meta = { 117 description = "FreshRSS extension to bring back unsafe autologin functionality."; 118 homepage = "https://github.com/FreshRSS/Extensions/tree/master/xExtension-UnsafeAutologin"; 119 license = lib.licenses.agpl3Only; 120 maintainers = [ lib.maintainers.stunkymonkey ]; 121 }; 122 }; 123 124 youtube = buildFreshRssExtension { 125 FreshRssExtUniqueId = "YouTube"; 126 pname = "youtube"; 127 version = official_extensions_version; 128 src = official_extensions_src; 129 sourceRoot = "${official_extensions_src.name}/xExtension-YouTube"; 130 meta = { 131 description = "FreshRSS extension allows you to directly watch YouTube/PeerTube videos from within subscribed channel feeds"; 132 homepage = "https://github.com/FreshRSS/Extensions/tree/master/xExtension-YouTube"; 133 license = lib.licenses.agpl3Only; 134 maintainers = [ lib.maintainers.stunkymonkey ]; 135 }; 136 }; 137 }; 138 139 # add possibility to define aliases 140 aliases = super: { 141 # example: RedditImage = super.reddit-image; 142 }; 143 144 # overlays will be applied left to right, overrides should come after aliases. 145 overlays = lib.optionals config.allowAliases [ 146 (_self: super: lib.recursiveUpdate super (aliases super)) 147 ]; 148 149 toFix = lib.foldl' (lib.flip lib.extends) baseExtensions overlays; 150in 151(lib.fix toFix) 152// { 153 inherit buildFreshRssExtension; 154}