|
| 1 | +use sqlx::PgConnection; |
| 2 | + |
| 3 | +use crate::{database::repository::mods, mod_zip::download_mod, types::{api::ApiError, mod_json::ModJson}}; |
| 4 | + |
| 5 | +#[derive(Debug)] |
| 6 | +struct ModImport { |
| 7 | + id: u32, |
| 8 | + mod_id: &'static str, |
| 9 | + download_link: &'static str, |
| 10 | +} |
| 11 | + |
| 12 | +pub async fn fixeroo(limit_mb: u32, conn: &mut PgConnection) -> Result<(), ApiError> { |
| 13 | + let mod_imports: Vec<ModImport> = vec![ |
| 14 | + ModImport { |
| 15 | + id: 3845, |
| 16 | + mod_id: "alphalaneous.happy_textures", |
| 17 | + download_link: "https://github.com/Alphalaneous/HappyTextures/releases/download/1.9.6/alphalaneous.happy_textures.geode", |
| 18 | + }, |
| 19 | + ModImport { |
| 20 | + id: 3844, |
| 21 | + mod_id: "glow12.groupshift", |
| 22 | + download_link: "https://github.com/glow13/GroupShift/releases/download/v1.1.2/glow12.groupshift.geode", |
| 23 | + }, |
| 24 | + ModImport { |
| 25 | + id: 3843, |
| 26 | + mod_id: "ninkaz.editor_utils", |
| 27 | + download_link: "https://github.com/flurrybun/ninkaz-editor-utils/releases/download/v1.3.1/ninkaz.editor_utils.geode", |
| 28 | + }, |
| 29 | + ModImport { |
| 30 | + id: 3842, |
| 31 | + mod_id: "alphalaneous.improved_group_view", |
| 32 | + download_link: "https://github.com/Alphalaneous/ImprovedGroupView/releases/download/1.0.16/alphalaneous.improved_group_view.geode", |
| 33 | + }, |
| 34 | + ModImport { |
| 35 | + id: 3841, |
| 36 | + mod_id: "zilko.level_showcases", |
| 37 | + download_link: "https://github.com/ZiLko/Level-Showcases/releases/download/v1.0.0/zilko.level_showcases.geode", |
| 38 | + }, |
| 39 | + ModImport { |
| 40 | + id: 3840, |
| 41 | + mod_id: "sphericle.anti-kick", |
| 42 | + download_link: "https://github.com/sphericle/anti-kick/releases/download/v1.0.0/sphericle.anti-kick.geode", |
| 43 | + }, |
| 44 | + ModImport { |
| 45 | + id: 3839, |
| 46 | + mod_id: "ryder7223.autopractice", |
| 47 | + download_link: "https://github.com/ryder7223/Auto-Practice/releases/download/v1.1.7/ryder7223.autopractice.geode", |
| 48 | + }, |
| 49 | + ModImport { |
| 50 | + id: 3838, |
| 51 | + mod_id: "vinsterplays.music_integrations", |
| 52 | + download_link: "https://github.com/Vinsterplays/Music-Integrations/releases/download/v1.4.0/vinsterplays.music_integrations.geode", |
| 53 | + }, |
| 54 | + ModImport { |
| 55 | + id: 3836, |
| 56 | + mod_id: "raydeeux.revisedlevelcells", |
| 57 | + download_link: "https://github.com/RayDeeUx/RevisedLevelCells/releases/download/v1.2.0/raydeeux.revisedlevelcells.geode", |
| 58 | + }, |
| 59 | + ModImport { |
| 60 | + id: 3835, |
| 61 | + mod_id: "bobby_shmurner.custom-song-fade", |
| 62 | + download_link: "https://github.com/BobbyShmurner/custom-song-fade/releases/download/v1.0.1/bobby_shmurner.custom-song-fade.geode", |
| 63 | + }, |
| 64 | + ModImport { |
| 65 | + id: 3834, |
| 66 | + mod_id: "alphalaneous.safe_zones_for_ios", |
| 67 | + download_link: "https://github.com/Alphalaneous/Safe-zones-for-iOS/releases/download/1.0.7/alphalaneous.safe_zones_for_ios.geode", |
| 68 | + }, |
| 69 | + ModImport { |
| 70 | + id: 3832, |
| 71 | + mod_id: "nwo5.trigger_id_search", |
| 72 | + download_link: "https://github.com/Nwo5-trg/TriggerIDSearch/releases/download/v1.0.0/nwo5.trigger_id_search.geode", |
| 73 | + }, |
| 74 | + ModImport { |
| 75 | + id: 3831, |
| 76 | + mod_id: "jarvisdevil.abusedb", |
| 77 | + download_link: "https://github.com/jarvisdevlin/AbuseDB/releases/download/v1.0.0-beta.1/jarvisdevil.abusedb.geode", |
| 78 | + }, |
| 79 | + ModImport { |
| 80 | + id: 3830, |
| 81 | + mod_id: "razoom.object_groups", |
| 82 | + download_link: "https://github.com/RazoomGD/geode-object-groups/releases/download/v2.1.1/razoom.object_groups.geode", |
| 83 | + }, |
| 84 | + ModImport { |
| 85 | + id: 3829, |
| 86 | + mod_id: "cvolton.misc_bugfixes", |
| 87 | + download_link: "https://github.com/Cvolton/miscbugfixes-geode/releases/download/v1.6.1/cvolton.misc_bugfixes.geode", |
| 88 | + }, |
| 89 | + ModImport { |
| 90 | + id: 3828, |
| 91 | + mod_id: "cvolton.betterinfo", |
| 92 | + download_link: "https://github.com/Cvolton/betterinfo-geode/releases/download/v4.3.10/cvolton.betterinfo.geode", |
| 93 | + }, |
| 94 | + ModImport { |
| 95 | + id: 3826, |
| 96 | + mod_id: "syzzi.click_between_frames", |
| 97 | + download_link: "https://github.com/theyareonit/Click-Between-Frames/releases/download/v1.4.5/syzzi.click_between_frames.geode", |
| 98 | + }, |
| 99 | + ModImport { |
| 100 | + id: 3825, |
| 101 | + mod_id: "bobby_shmurner.zoom", |
| 102 | + download_link: "https://github.com/BobbyShmurner/Zoom/releases/download/v1.2.4/bobby_shmurner.zoom.geode", |
| 103 | + }, |
| 104 | + ModImport { |
| 105 | + id: 3824, |
| 106 | + mod_id: "alphalaneous.asyncweb", |
| 107 | + download_link: "https://github.com/Alphalaneous/AsyncWeb/releases/download/0.1.4/alphalaneous.asyncweb.geode", |
| 108 | + }, |
| 109 | + ModImport { |
| 110 | + id: 3823, |
| 111 | + mod_id: "alphalaneous.alphas_geode_utils", |
| 112 | + download_link: "https://github.com/Alphalaneous/Alphas-Geode-Utils/releases/download/1.1.3/alphalaneous.alphas_geode_utils.geode", |
| 113 | + }, |
| 114 | + ModImport { |
| 115 | + id: 3821, |
| 116 | + mod_id: "hiimjustin000.more_icons", |
| 117 | + download_link: "https://github.com/hiimjasmine00/MoreIcons/releases/download/v1.12.3/hiimjustin000.more_icons.geode", |
| 118 | + }, |
| 119 | + ModImport { |
| 120 | + id: 3820, |
| 121 | + mod_id: "zilko.playback_marker", |
| 122 | + download_link: "https://github.com/ZiLko/Playback-Marker/releases/download/v1.0.0/zilko.playback_marker.geode", |
| 123 | + }, |
| 124 | + ModImport { |
| 125 | + id: 3819, |
| 126 | + mod_id: "abb2k.custom_icon_size", |
| 127 | + download_link: "https://github.com/abb2k/Custom-icon-size/releases/download/v1.0.6/abb2k.custom_icon_s\nize.geode", |
| 128 | + }, |
| 129 | + ModImport { |
| 130 | + id: 3818, |
| 131 | + mod_id: "abb2k.duration_filter", |
| 132 | + download_link: "https://github.com/abb2k/Duration-Filter/releases/download/v1.0.4/abb2k.duration_filter.geode", |
| 133 | + }, |
| 134 | + ModImport { |
| 135 | + id: 3817, |
| 136 | + mod_id: "abb2k.demonify", |
| 137 | + download_link: "https://github.com/abb2k/demonify/releases/download/v1.0.4/abb2k.demonify.geode", |
| 138 | + }, |
| 139 | + ModImport { |
| 140 | + id: 3816, |
| 141 | + mod_id: "abb2k.gdwt", |
| 142 | + download_link: "https://github.com/abb2k/GDWT/releases/download/GDWT-v1.2.20/abb2k.gdwt.geode", |
| 143 | + }, |
| 144 | + ModImport { |
| 145 | + id: 3815, |
| 146 | + mod_id: "elohmrow.death_tracker", |
| 147 | + download_link: "https://github.com/eloh-mrow/death-tracker/releases/download/v2.4.6/elohmrow.death_tracker.geode", |
| 148 | + }, |
| 149 | + ModImport { |
| 150 | + id: 3812, |
| 151 | + mod_id: "prevter.go-indicator", |
| 152 | + download_link: "https://github.com/Prevter/gd-go-indicator/releases/download/v1.2.0/prevter.go-indicator.geode", |
| 153 | + }, |
| 154 | + ModImport { |
| 155 | + id: 3811, |
| 156 | + mod_id: "undefined0.rewind", |
| 157 | + download_link: "https://github.com/undefined06855/Rewind/releases/download/v1.1.2/undefined0.rewind.geode", |
| 158 | + }, |
| 159 | + ModImport { |
| 160 | + id: 3810, |
| 161 | + mod_id: "hiimjasmine00.smart_bpm_trigger", |
| 162 | + download_link: "https://github.com/hiimjasmine00/SmartBPMTrigger/releases/download/v1.1.4/hiimjasmine00.smart_bpm_trigger.geode", |
| 163 | + }, |
| 164 | + ModImport { |
| 165 | + id: 3807, |
| 166 | + mod_id: "ninxout.options_api", |
| 167 | + download_link: "https://github.com/ninXout/OptionsAPI/releases/download/v1.0.1/ninxout.options_api.geode", |
| 168 | + }, |
| 169 | + ModImport { |
| 170 | + id: 3806, |
| 171 | + mod_id: "capeling.one_life", |
| 172 | + download_link: "https://github.com/Capeling/One-Life/releases/download/v1.0.0-alpha.1/capeling.one_life.geode", |
| 173 | + }, |
| 174 | + ModImport { |
| 175 | + id: 3805, |
| 176 | + mod_id: "iandyhd3.wsliveeditor", |
| 177 | + download_link: "https://github.com/iAndyHD3/WSLiveEditor/releases/download/v2.4.0/iandyhd3.wsliveeditor.geode", |
| 178 | + }, |
| 179 | + ModImport { |
| 180 | + id: 3804, |
| 181 | + mod_id: "zilko.improved_folders", |
| 182 | + download_link: "https://github.com/ZiLko/Improved-Folders/releases/download/v1.0.0/zilko.improved_folders.geode", |
| 183 | + }, |
| 184 | + ModImport { |
| 185 | + id: 3803, |
| 186 | + mod_id: "naxrin.transparent", |
| 187 | + download_link: "https://github.com/Naxrin/Transparent-Background/releases/download/v3.5.2/naxrin.transparent.geode", |
| 188 | + }, |
| 189 | + ModImport { |
| 190 | + id: 3802, |
| 191 | + mod_id: "saumondeluxe.rainbow_icon", |
| 192 | + download_link: "https://github.com/shadowforce78/Rainbow-Icon/releases/download/1.3.1/saumondeluxe.rainbow_icon.geode", |
| 193 | + }, |
| 194 | + ModImport { |
| 195 | + id: 3801, |
| 196 | + mod_id: "techstudent10.gdguesser", |
| 197 | + download_link: "https://github.com/TechStudent10/GDGuesser/releases/download/v1.0.0-beta.8/techstudent10.gdguesser.geode", |
| 198 | + }, |
| 199 | + ModImport { |
| 200 | + id: 3800, |
| 201 | + mod_id: "timestepyt.deltarune_textboxes", |
| 202 | + download_link: "https://github.com/TimeStepYT/DeltaruneTextboxes/releases/download/v1.4.3/timestepyt.deltarune_textboxes.geode", |
| 203 | + }, |
| 204 | + ModImport { |
| 205 | + id: 3798, |
| 206 | + mod_id: "hbg1010.hidenewbest", |
| 207 | + download_link: "https://github.com/Hbg1010/Toggle-New-Best-Visibility/releases/download/v1.0.1/hbg1010.hidenewbest.geode", |
| 208 | + }, |
| 209 | + ModImport { |
| 210 | + id: 3797, |
| 211 | + mod_id: "somroti.offlineprogression", |
| 212 | + download_link: "https://github.com/Somroti/geode-mods/raw/refs/heads/main/Offline%20Progression/somroti.offlineprogression.geode", |
| 213 | + }, |
| 214 | + ModImport { |
| 215 | + id: 3795, |
| 216 | + mod_id: "n.friends", |
| 217 | + download_link: "https://github.com/NicknameGG/friends-/releases/download/1.1.2/n.friends.geode", |
| 218 | + }, |
| 219 | + ModImport { |
| 220 | + id: 3793, |
| 221 | + mod_id: "freakyrobot.deathmarkers", |
| 222 | + download_link: "https://github.com/MaSp005/deathmarkers/releases/download/v1.1.0/freakyrobot.deathmarkers.geode", |
| 223 | + }, |
| 224 | + ModImport { |
| 225 | + id: 3790, |
| 226 | + mod_id: "tobyadd.gdh", |
| 227 | + download_link: "https://github.com/TobyAdd/GDH/releases/download/v5.0.0-beta.5/tobyadd.gdh.geode", |
| 228 | + }, |
| 229 | + ]; |
| 230 | + |
| 231 | + for i in mod_imports { |
| 232 | + let bytes = download_mod(i.download_link, limit_mb).await?; |
| 233 | + let json = ModJson::from_zip(bytes, i.download_link, true)?; |
| 234 | + |
| 235 | + mods::update_with_json_fixeroo(i.mod_id, &json, &mut *conn).await?; |
| 236 | + } |
| 237 | + |
| 238 | + Ok(()) |
| 239 | +} |
0 commit comments