From 026e0bf7d5afb47945995a13fd1bd33b2e64746f Mon Sep 17 00:00:00 2001 From: DrewSC13 Date: Fri, 12 Jun 2026 18:17:22 -0400 Subject: [PATCH 1/3] feat(workflows): add showcase sync workflow --- .github/workflows/showcase_sync.yml | 64 +++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 .github/workflows/showcase_sync.yml diff --git a/.github/workflows/showcase_sync.yml b/.github/workflows/showcase_sync.yml new file mode 100644 index 0000000..04a6bb0 --- /dev/null +++ b/.github/workflows/showcase_sync.yml @@ -0,0 +1,64 @@ +name: Sync community projects to Discord showcase + +on: + workflow_dispatch: + repository_dispatch: + types: [community_projects_changed] + +jobs: + sync-showcase: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: "recursive" + + - name: Update projects submodule + run: git submodule update --remote extras + + - name: Build showcase sync payload + run: | + python3 <<'PY' + import json + import tomllib + from pathlib import Path + + projects_root = Path("extras/proyectos") + projects = [] + + for path in sorted(projects_root.rglob("*.toml")): + with path.open("rb") as file: + project = tomllib.load(file) + + name = " ".join(part.strip() for part in project["name"] if part.strip()) + key = str(path.relative_to("extras")) + + projects.append( + { + "key": key, + "name": name, + "desc": project["description"], + "url": project["link"], + "tags": [], + } + ) + + payload = {"projects": projects} + + with Path("showcase_payload.json").open("w", encoding="utf-8") as file: + json.dump(payload, file, ensure_ascii=False) + + print(f"Prepared {len(projects)} projects") + PY + + - name: Call Cangrebot showcase sync + run: | + curl --fail-with-body -X POST "${CANGREBOT_URL%/}/showcase/sync" \ + -H "Content-Type: application/json" \ + -H "Authorization: $CANGREBOT_API_KEY" \ + --data @showcase_payload.json + env: + CANGREBOT_URL: ${{ secrets.CANGREBOT_URL }} + CANGREBOT_API_KEY: ${{ secrets.CANGREBOT_API_KEY }} From 4bed4bfeab5ec9020c88a3bf2f83acfbc3047ad1 Mon Sep 17 00:00:00 2001 From: DrewSC13 Date: Fri, 12 Jun 2026 18:31:31 -0400 Subject: [PATCH 2/3] style: apply project formatting --- src/components/cards/contributor_card.rs | 8 +- src/pages/contributors.rs | 648 ++++++++++++++++++++--- src/pages/mod.rs | 2 +- 3 files changed, 571 insertions(+), 87 deletions(-) diff --git a/src/components/cards/contributor_card.rs b/src/components/cards/contributor_card.rs index 97c9e54..59905b3 100644 --- a/src/components/cards/contributor_card.rs +++ b/src/components/cards/contributor_card.rs @@ -1,5 +1,7 @@ use crate::components::icons::{GithubIcon, LocationIcon, TwitterIcon}; -use leptos::{component, leptos_dom::helpers::location as location_dom, prelude::*, view, IntoView}; +use leptos::{ + component, leptos_dom::helpers::location as location_dom, prelude::*, view, IntoView, +}; #[component] pub fn ContributorCard( @@ -33,10 +35,10 @@ pub fn ContributorCard( } }); view! { -
+ > diff --git a/src/pages/contributors.rs b/src/pages/contributors.rs index 70b99fc..5987c3b 100644 --- a/src/pages/contributors.rs +++ b/src/pages/contributors.rs @@ -11,83 +11,558 @@ use serde::{Deserialize, Serialize}; use std::collections::HashMap; const NOT_COMMUNITY_MEMBERS: [&str; 550] = [ - "chriskrycho", "maxdeviant", "github-actions[bot]", "hustcer", "SpectralPixel", "carols10cents", - "amtoine", "NotTheDr01ds", "fdncred", "sholderbach", "kubouch", "devyn", "JosephTLyons", - "IanManske", "huacnlee", "sophiajt", "zarifpour", "Hofer-Julian", "Kissaki", "blaqat", "atifaziz", "jpmelos", - "maxbrunsfeld", "osiewicz", "WindSoilder", "d1y", "tecandrew", "dependabot[bot]", "someone13574", "Otterpocket", - "rgwood", "damoasda", "kwi-dk", "ayax79", "maxim-uvarov", "ssaunderss", "MordFustang21", "vitallium", "webhooked", - "slymax", "bzierk", "davccavalcante", "filipjanevski", "petrisch", "bajrangCoder", "louni-longheval", "hasit", - "JoaquinTrinanes", "ysthakur", "grndctrl", "mikasius", "mikesun", "mrnugget", "yukitomoda", "perragnar", - "luckydye", "sweetppro", "gdamore", "Imgkl", "e-simpson", "dangh", "ABckh", "valentinegb", "weirdan", - "MartinRybergLaude", "ThatOneCalculator", "Moshyfawn", "LaPingvino", "bryanbuchanan", "pingiun", "presidento", - "rubjo", "foxoman", "joergsch", "meocoder31099", "davidkurilla", "jamesmunns", "denix666", "das-g", "clicktodev", - "11bit", "tamimhasandev", "Feel-ix-343", "bswinnerton", "rzukic", "kevcamel", "WeetHet", "henrikruscon", - "Ifthel", "132ikl", "timcole", "PyaeSoneAungRgn", "timClicks", "mauscoelho", "anikinmd", "nwhetsell", - "mshaugh", "4teapo", "p3rception", "TornaxO7", "bobhy", "trbutler4", "TWSiO", "vyadh", "notpeter", - "segersniels", "PedroChaps", "xqsit94", "eth0net", "webbedspace", "borngraced", "h2000", "nathanjcollins", - "fachammer", "kaathewisegit", "cange", "edhowland", "zaucy", "lnay", "jkasky", "mianlang", "elGusto", - "yo-goto", "arnau", "teziovsky", "jaudiger", "jpearnshaw", "makifdb", "adorabilis", "stomar", "kirqe", - "zetashift", "k0tran", "FilipAndersson245", "coghost", "caius", "Kalmaegi", "CAESIUS-TIM", "pcminh0505", - "gx0r", "lv37", "flukejones", "YussufSassi", "cptpiepmatz", "wisn", "ralfdoering", "stfacc", "savente93", - "mb21", "abt8601", "mandarvaze", "YukiOnodera", "salihguru", "calmyournerves", "texastoland", - "connorjs", "abusch", "kai-tub", "mrkkrp", "drmikesamy", "AineeJames", "kejadlen", "Trent-Fellbootman", - "rgbkrk", "tesujimath", "BrianLondon", "mrkstwrt", "tbu-", "Abhinav5383", "shuklaayush", "isti115", - "koozz", "jafriyie1", "waldyrious", "narqo", "adamchalmers", "Cs4r", "ehuss", "NathanLovato", "Ph0enixKM", - "LeoniePhiline", "fitzchivalrik", "MarikaChlebowska", "MichalPospech", "eldruin", "Narukara", "hanneskaeufler", - "EliiseS", "demoded", "abcd-ca", "microsoft-github-policy-service[bot]", "apraga", "knickish", "busslina", - "Kenysdev", "burrbull", "dmatos2012", "stormasm", "kiarie404", "akkartik", "gdamjan", "Zarenor", - "dmatos-t32", "flying-sheep", "rxwb", "decorator-factory", "nthState-Chris", "OccupyMars2025", "nyurik", - "FnControlOption", "Eekle", "mgeisler", "orangecms", "emilyalbini", "LUISEDOCCOR", "sharpe5", "josh-degraw", - "armaxri", "CodeRunRepeat", "bneumann", "jacojvv-betsoftware", "Feriixu", "seishun", "szabgab", "CarlKCarlK", - "engdoreis", "cassidoxa", "mpawelski", "ChrisDenton", "JoseAUrdanetaM", "eramoss", "aneojgurhem", - "9unkn", "zivarah", "BartMassey", "loadresource", "jannic", "fekie", "fhalim", "renovate[bot]", - "actions-user", "allcontributors[bot]", "qwandor", "lorenzolewis", "Ekwuno", "vasfvitor", "henrif75", - "FabianLars", "simonhyll", "dreyfus92", "djmitche", "lucasfernog", "kearfy", "dimitrianoudi", "igor-petruk", - "GuoJikun", "dklassic", "fbornhofen", "cchiw", "Dhghomon", "tweidinger", "wnghl", "Odonno", "domenukk", - "tauri-bot", "jiyongp", "randomPoison", "gguillemas", "pewsheen", "nodmp", "dawnlarsson", "tobiemh", - "gendx", "jooyunghan", "reta", "johnathan79717", "seporterfield", "hurryabit", "fw-immunant", "kantasv", - "rastringer", "AdrienBaudemont", "AlexFrid", "anforowicz", "sylxjtu", "timpratim", "emmanuel-keller", - "mo8it", "amrbashir", "kuanhungchen", "rbehjati", "mani-chand", "RoseBlume", "baltuky", "proski", - "naisofly", "adetaylor", "leonzchang", "tillmann-crabnebula", "brandonpollack23", "skarline", - "justanotheranonymoususer", "RSS1102", "CoinEZ-JPN", "detro", "Throvn", "ronaldfw", "HidenoriKobayashi", - "marshallpierce", "mingyc", "anlunx", "nidhalmessaoudi", "moaminsharifi", "errge", "njr0", - "markozagar", "sakex", "pwnall", "adamac", "olivierlemasle", "joaovicmendes", "ChayimFriedman2", - "ningcng", "raselmandol", "manyinsects", "yohcop", "thedataking", "superwhd", "mauvealerts", - "Embers-of-the-Fire", "KikkiZ", "mobyw", "emmali01", "jbolda", "tshepang", "hugojacob", - "keiichiw", "max-heller", "Enes1313", "suetfei", "ImUrX", "naman-crabnebula", "christophsanz", - "hamidrezakp", "DelSkayn", "NoahDragon", "SwiftSIQI", "hueich", "klensy", "chippers", "jcvicelli", - "Doris-Ge", "cyevgeniy", "AgainstEntropy", "i-c-b", "MaschitaG", "LightQuanta", "yaremam", - "Rigidity", "x10an14", "athanclark", "friendlymatthew", "dyeroshenko", "ahqsoftwares", "zvonden", - "eunsukimme", "phughk", "macjuul", "hades2510", "IP1llar", "noamzaks", "Sir-Thom", "guoard", - "victorhsieh", "khoaxuantu", "cleveng", "b-apperlo", "StepanZagray", "seanpoulter", - "1dimir", "eroullit", "poneciak57", "sharunkumar", "JJungs-lee", "schultetwin1", "bholmesdev", - "auipga", "ahresse", "timuric", "Hassunaama", "abhik-bits", "jrcarl624", "pierd", "EthnTuttle", - "abhik-99", "kharbanda14", "LizzieH01", "ivan-kiselev", "hezhizhen", "0PandaDEV", "patelka2211", "b6k-dev", - "sahennenkamp", "az0977776", "ternbusty", "Skwodo", "bean5", "danny900714", "alexandergill", - "freeaion", "byarbrough", "jasminewu229", "JohnScience", "aravindputrevu", "murnifine", "WalrusSoup", - "ilyagr", "tklauser", "0ri0nexe", "BlackTiger007", "ferreira-tb", "rb5014", "husjon", "notriddle", - "xubeiyan", "HangDu1995", "docwilco", "Gannu456", "akkie", "sgirones", "brenoepics", "loky-lp", "willhack", - "luis-prates", "Legend-Master", "gabenddos", "welpie21", "jalejotorresm", "cobaltburn", "simonwong", - "oalders", "ruizdiazever", "washanhanzi", "TACIXAT", "fcoury", "KirillTregubov", "cameronbraid", - "jaydevelopsstuff", "ShaharNaveh", "dan-myles", "dalance", "KMJ-007", "KennanHunter", "dfaust", - "sunng87", "giripriyadarshan", "NikolaRHristov", "GlobalHive", "ISSOtm", "alvin883", "tjensen42", - "Pitasi", "idofilus", "samuelscheit", "reinhard-sanz", "ifraixedes", "matthewjnield", "lucascherzer", - "Franco-Pertusati", "mateothegreat", "jaimemh", "ShadowWolf308", "ugsto", "AndrewKraevskii", "GhastCraftHD", - "JonahPlusPlus", "tfpk", "lilyyy411", "garyhai", "guofoo", "Ochibobo", "ActuallyHappening", "iSaborit", - "m-c-frank", "nazmul-pro", "lkwr", "SiliconSelf", "pickfire", "lveillard", "Charlie-McLovins", - "Julian-Hackenberg", "noritada", "damccull", "skierpage", "gwen-lg", "AliSajid", "generalworksinc", - "yeonsy", "maxwellflitton", "5Dev24", "cyril-marpaud", "ilkerkorkut", "juangesino", - "danieleades", "MatthewAry", "ManAnRuck", "rschooley", "magnusrodseth", "joserg1801", "zvictor", - "Catchawink", "jlalfonso21", "ThatColdToast", "kotolex", "dbarrosop", - "ZibanPirate", "paradox8599", "Oughie", "alex-crabnebula", "jason89521", "Czxck001", - "hangriver", "adrian-ub", "beninada", "Sindrir", "vjousse", "Uninen", - "denjell-crabnebula", "Trojanking123", "as-flow", "samcday", "knownasnaffy", "Juan-LukeKlopper", - "kaikaibenkai", "peppergrayxyz", "dionysuzx", "Victoria-Casasampere-BeeTheData", "yixinNB", - "skyslide22", "ahkohd", "swordtraveller", "vemonet", "cnlancehu", "noxan", "Niavana97", - "ryansteil", "bitQ2019", "regexident", "jcasben", "waozixyz" + "chriskrycho", + "maxdeviant", + "github-actions[bot]", + "hustcer", + "SpectralPixel", + "carols10cents", + "amtoine", + "NotTheDr01ds", + "fdncred", + "sholderbach", + "kubouch", + "devyn", + "JosephTLyons", + "IanManske", + "huacnlee", + "sophiajt", + "zarifpour", + "Hofer-Julian", + "Kissaki", + "blaqat", + "atifaziz", + "jpmelos", + "maxbrunsfeld", + "osiewicz", + "WindSoilder", + "d1y", + "tecandrew", + "dependabot[bot]", + "someone13574", + "Otterpocket", + "rgwood", + "damoasda", + "kwi-dk", + "ayax79", + "maxim-uvarov", + "ssaunderss", + "MordFustang21", + "vitallium", + "webhooked", + "slymax", + "bzierk", + "davccavalcante", + "filipjanevski", + "petrisch", + "bajrangCoder", + "louni-longheval", + "hasit", + "JoaquinTrinanes", + "ysthakur", + "grndctrl", + "mikasius", + "mikesun", + "mrnugget", + "yukitomoda", + "perragnar", + "luckydye", + "sweetppro", + "gdamore", + "Imgkl", + "e-simpson", + "dangh", + "ABckh", + "valentinegb", + "weirdan", + "MartinRybergLaude", + "ThatOneCalculator", + "Moshyfawn", + "LaPingvino", + "bryanbuchanan", + "pingiun", + "presidento", + "rubjo", + "foxoman", + "joergsch", + "meocoder31099", + "davidkurilla", + "jamesmunns", + "denix666", + "das-g", + "clicktodev", + "11bit", + "tamimhasandev", + "Feel-ix-343", + "bswinnerton", + "rzukic", + "kevcamel", + "WeetHet", + "henrikruscon", + "Ifthel", + "132ikl", + "timcole", + "PyaeSoneAungRgn", + "timClicks", + "mauscoelho", + "anikinmd", + "nwhetsell", + "mshaugh", + "4teapo", + "p3rception", + "TornaxO7", + "bobhy", + "trbutler4", + "TWSiO", + "vyadh", + "notpeter", + "segersniels", + "PedroChaps", + "xqsit94", + "eth0net", + "webbedspace", + "borngraced", + "h2000", + "nathanjcollins", + "fachammer", + "kaathewisegit", + "cange", + "edhowland", + "zaucy", + "lnay", + "jkasky", + "mianlang", + "elGusto", + "yo-goto", + "arnau", + "teziovsky", + "jaudiger", + "jpearnshaw", + "makifdb", + "adorabilis", + "stomar", + "kirqe", + "zetashift", + "k0tran", + "FilipAndersson245", + "coghost", + "caius", + "Kalmaegi", + "CAESIUS-TIM", + "pcminh0505", + "gx0r", + "lv37", + "flukejones", + "YussufSassi", + "cptpiepmatz", + "wisn", + "ralfdoering", + "stfacc", + "savente93", + "mb21", + "abt8601", + "mandarvaze", + "YukiOnodera", + "salihguru", + "calmyournerves", + "texastoland", + "connorjs", + "abusch", + "kai-tub", + "mrkkrp", + "drmikesamy", + "AineeJames", + "kejadlen", + "Trent-Fellbootman", + "rgbkrk", + "tesujimath", + "BrianLondon", + "mrkstwrt", + "tbu-", + "Abhinav5383", + "shuklaayush", + "isti115", + "koozz", + "jafriyie1", + "waldyrious", + "narqo", + "adamchalmers", + "Cs4r", + "ehuss", + "NathanLovato", + "Ph0enixKM", + "LeoniePhiline", + "fitzchivalrik", + "MarikaChlebowska", + "MichalPospech", + "eldruin", + "Narukara", + "hanneskaeufler", + "EliiseS", + "demoded", + "abcd-ca", + "microsoft-github-policy-service[bot]", + "apraga", + "knickish", + "busslina", + "Kenysdev", + "burrbull", + "dmatos2012", + "stormasm", + "kiarie404", + "akkartik", + "gdamjan", + "Zarenor", + "dmatos-t32", + "flying-sheep", + "rxwb", + "decorator-factory", + "nthState-Chris", + "OccupyMars2025", + "nyurik", + "FnControlOption", + "Eekle", + "mgeisler", + "orangecms", + "emilyalbini", + "LUISEDOCCOR", + "sharpe5", + "josh-degraw", + "armaxri", + "CodeRunRepeat", + "bneumann", + "jacojvv-betsoftware", + "Feriixu", + "seishun", + "szabgab", + "CarlKCarlK", + "engdoreis", + "cassidoxa", + "mpawelski", + "ChrisDenton", + "JoseAUrdanetaM", + "eramoss", + "aneojgurhem", + "9unkn", + "zivarah", + "BartMassey", + "loadresource", + "jannic", + "fekie", + "fhalim", + "renovate[bot]", + "actions-user", + "allcontributors[bot]", + "qwandor", + "lorenzolewis", + "Ekwuno", + "vasfvitor", + "henrif75", + "FabianLars", + "simonhyll", + "dreyfus92", + "djmitche", + "lucasfernog", + "kearfy", + "dimitrianoudi", + "igor-petruk", + "GuoJikun", + "dklassic", + "fbornhofen", + "cchiw", + "Dhghomon", + "tweidinger", + "wnghl", + "Odonno", + "domenukk", + "tauri-bot", + "jiyongp", + "randomPoison", + "gguillemas", + "pewsheen", + "nodmp", + "dawnlarsson", + "tobiemh", + "gendx", + "jooyunghan", + "reta", + "johnathan79717", + "seporterfield", + "hurryabit", + "fw-immunant", + "kantasv", + "rastringer", + "AdrienBaudemont", + "AlexFrid", + "anforowicz", + "sylxjtu", + "timpratim", + "emmanuel-keller", + "mo8it", + "amrbashir", + "kuanhungchen", + "rbehjati", + "mani-chand", + "RoseBlume", + "baltuky", + "proski", + "naisofly", + "adetaylor", + "leonzchang", + "tillmann-crabnebula", + "brandonpollack23", + "skarline", + "justanotheranonymoususer", + "RSS1102", + "CoinEZ-JPN", + "detro", + "Throvn", + "ronaldfw", + "HidenoriKobayashi", + "marshallpierce", + "mingyc", + "anlunx", + "nidhalmessaoudi", + "moaminsharifi", + "errge", + "njr0", + "markozagar", + "sakex", + "pwnall", + "adamac", + "olivierlemasle", + "joaovicmendes", + "ChayimFriedman2", + "ningcng", + "raselmandol", + "manyinsects", + "yohcop", + "thedataking", + "superwhd", + "mauvealerts", + "Embers-of-the-Fire", + "KikkiZ", + "mobyw", + "emmali01", + "jbolda", + "tshepang", + "hugojacob", + "keiichiw", + "max-heller", + "Enes1313", + "suetfei", + "ImUrX", + "naman-crabnebula", + "christophsanz", + "hamidrezakp", + "DelSkayn", + "NoahDragon", + "SwiftSIQI", + "hueich", + "klensy", + "chippers", + "jcvicelli", + "Doris-Ge", + "cyevgeniy", + "AgainstEntropy", + "i-c-b", + "MaschitaG", + "LightQuanta", + "yaremam", + "Rigidity", + "x10an14", + "athanclark", + "friendlymatthew", + "dyeroshenko", + "ahqsoftwares", + "zvonden", + "eunsukimme", + "phughk", + "macjuul", + "hades2510", + "IP1llar", + "noamzaks", + "Sir-Thom", + "guoard", + "victorhsieh", + "khoaxuantu", + "cleveng", + "b-apperlo", + "StepanZagray", + "seanpoulter", + "1dimir", + "eroullit", + "poneciak57", + "sharunkumar", + "JJungs-lee", + "schultetwin1", + "bholmesdev", + "auipga", + "ahresse", + "timuric", + "Hassunaama", + "abhik-bits", + "jrcarl624", + "pierd", + "EthnTuttle", + "abhik-99", + "kharbanda14", + "LizzieH01", + "ivan-kiselev", + "hezhizhen", + "0PandaDEV", + "patelka2211", + "b6k-dev", + "sahennenkamp", + "az0977776", + "ternbusty", + "Skwodo", + "bean5", + "danny900714", + "alexandergill", + "freeaion", + "byarbrough", + "jasminewu229", + "JohnScience", + "aravindputrevu", + "murnifine", + "WalrusSoup", + "ilyagr", + "tklauser", + "0ri0nexe", + "BlackTiger007", + "ferreira-tb", + "rb5014", + "husjon", + "notriddle", + "xubeiyan", + "HangDu1995", + "docwilco", + "Gannu456", + "akkie", + "sgirones", + "brenoepics", + "loky-lp", + "willhack", + "luis-prates", + "Legend-Master", + "gabenddos", + "welpie21", + "jalejotorresm", + "cobaltburn", + "simonwong", + "oalders", + "ruizdiazever", + "washanhanzi", + "TACIXAT", + "fcoury", + "KirillTregubov", + "cameronbraid", + "jaydevelopsstuff", + "ShaharNaveh", + "dan-myles", + "dalance", + "KMJ-007", + "KennanHunter", + "dfaust", + "sunng87", + "giripriyadarshan", + "NikolaRHristov", + "GlobalHive", + "ISSOtm", + "alvin883", + "tjensen42", + "Pitasi", + "idofilus", + "samuelscheit", + "reinhard-sanz", + "ifraixedes", + "matthewjnield", + "lucascherzer", + "Franco-Pertusati", + "mateothegreat", + "jaimemh", + "ShadowWolf308", + "ugsto", + "AndrewKraevskii", + "GhastCraftHD", + "JonahPlusPlus", + "tfpk", + "lilyyy411", + "garyhai", + "guofoo", + "Ochibobo", + "ActuallyHappening", + "iSaborit", + "m-c-frank", + "nazmul-pro", + "lkwr", + "SiliconSelf", + "pickfire", + "lveillard", + "Charlie-McLovins", + "Julian-Hackenberg", + "noritada", + "damccull", + "skierpage", + "gwen-lg", + "AliSajid", + "generalworksinc", + "yeonsy", + "maxwellflitton", + "5Dev24", + "cyril-marpaud", + "ilkerkorkut", + "juangesino", + "danieleades", + "MatthewAry", + "ManAnRuck", + "rschooley", + "magnusrodseth", + "joserg1801", + "zvictor", + "Catchawink", + "jlalfonso21", + "ThatColdToast", + "kotolex", + "dbarrosop", + "ZibanPirate", + "paradox8599", + "Oughie", + "alex-crabnebula", + "jason89521", + "Czxck001", + "hangriver", + "adrian-ub", + "beninada", + "Sindrir", + "vjousse", + "Uninen", + "denjell-crabnebula", + "Trojanking123", + "as-flow", + "samcday", + "knownasnaffy", + "Juan-LukeKlopper", + "kaikaibenkai", + "peppergrayxyz", + "dionysuzx", + "Victoria-Casasampere-BeeTheData", + "yixinNB", + "skyslide22", + "ahkohd", + "swordtraveller", + "vemonet", + "cnlancehu", + "noxan", + "Niavana97", + "ryansteil", + "bitQ2019", + "regexident", + "jcasben", + "waozixyz", ]; - #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct Contributor { pub login: String, @@ -160,7 +635,10 @@ pub async fn load_contributors() -> ContributorsResponse { { use gloo_net::http::Request; match Request::get("/contributors.json").send().await { - Ok(resp) => resp.json::().await.unwrap_or_default(), + Ok(resp) => resp + .json::() + .await + .unwrap_or_default(), Err(_) => ContributorsResponse::default(), } } @@ -173,8 +651,12 @@ async fn fetch_contributors() -> ContributorsResponse { if is_debug { if let Ok(contents) = std::fs::read_to_string(CONTRIBUTORS_CACHE_PATH) { if let Ok(cached) = serde_json::from_str::(&contents) { - println!("Loaded {} contributors from cache ({})", cached.total, CONTRIBUTORS_CACHE_PATH); - let dist_path = std::env::var("LEPTOS_SITE_ROOT").unwrap_or_else(|_| "dist".to_string()); + println!( + "Loaded {} contributors from cache ({})", + cached.total, CONTRIBUTORS_CACHE_PATH + ); + let dist_path = + std::env::var("LEPTOS_SITE_ROOT").unwrap_or_else(|_| "dist".to_string()); let _ = std::fs::create_dir_all(&dist_path); let json_path = format!("{}/contributors.json", dist_path); let _ = std::fs::write(&json_path, &contents); @@ -266,7 +748,10 @@ async fn fetch_all_contributors() -> Vec { tokio::time::sleep(tokio::time::Duration::from_millis(config::API_DELAY_MS)).await; } - let logins: Vec = seen.values().map(|(login, _, _, _)| login.clone()).collect(); + let logins: Vec = seen + .values() + .map(|(login, _, _, _)| login.clone()) + .collect(); let profiles = fetch_user_profiles_batch(&client, &token, &logins).await; let mut result = Vec::new(); @@ -424,10 +909,7 @@ async fn fetch_user_profiles_batch( profiles.insert( login.clone(), UserProfile { - bio: user - .get("bio") - .and_then(|v| v.as_str()) - .map(String::from), + bio: user.get("bio").and_then(|v| v.as_str()).map(String::from), twitter_username: user .get("twitterUsername") .and_then(|v| v.as_str()) diff --git a/src/pages/mod.rs b/src/pages/mod.rs index 38f54ec..bbfa044 100644 --- a/src/pages/mod.rs +++ b/src/pages/mod.rs @@ -6,6 +6,6 @@ mod projects; pub use aprende::Aprende; pub use communities::Communities; -pub use contributors::{Contributors, load_contributors}; +pub use contributors::{load_contributors, Contributors}; pub use index::Index; pub use projects::Projects; From 2c2f5427343d3fe44b402d295b005b7e5e4d5f18 Mon Sep 17 00:00:00 2001 From: DrewSC13 Date: Fri, 12 Jun 2026 18:43:11 -0400 Subject: [PATCH 3/3] refactor: fix clippy warnings --- src/main.rs | 13 +++++++------ src/pages/contributors.rs | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index aabbe4c..73ffd83 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,15 +3,12 @@ #[cfg(feature = "ssr")] #[tokio::main] async fn main() { - use axum::Router; use leptos::{config::get_configuration, logging::log}; - use leptos_axum::{generate_route_list_with_ssg, LeptosRoutes}; + use leptos_axum::generate_route_list_with_ssg; use rust_lang_es::app::*; - use tower_http::services::ServeDir; let conf = get_configuration(None).unwrap(); let leptos_options = conf.leptos_options; - let addr = leptos_options.site_addr; let (routes, static_routes) = generate_route_list_with_ssg({ let leptos_options = leptos_options.clone(); @@ -30,9 +27,13 @@ async fn main() { #[cfg(feature = "development")] { - println!("listening on http://{}", addr); + use axum::{routing::get, Router}; + use leptos_axum::LeptosRoutes; + use tower_http::services::ServeDir; + + let addr = leptos_options.site_addr; - use axum::routing::get; + println!("listening on http://{}", addr); let site_root = leptos_options.site_root.as_ref(); let pkg_dir = format!("{}/pkg", site_root); diff --git a/src/pages/contributors.rs b/src/pages/contributors.rs index 5987c3b..a72ba31 100644 --- a/src/pages/contributors.rs +++ b/src/pages/contributors.rs @@ -667,7 +667,7 @@ async fn fetch_contributors() -> ContributorsResponse { let mut all_contributors = fetch_all_contributors().await; - all_contributors.sort_by(|a, b| b.contributions.cmp(&a.contributions)); + all_contributors.sort_by_key(|contributor| std::cmp::Reverse(contributor.contributions)); let total = all_contributors.len(); @@ -930,7 +930,7 @@ async fn fetch_user_profiles_batch( #[component] pub fn Contributors() -> impl IntoView { - let contributors = LocalResource::new(|| load_contributors()); + let contributors = LocalResource::new(load_contributors); view! {