Skip to content

Commit 01deb46

Browse files
committed
chore: fixeroo
1 parent ce53ba7 commit 01deb46

File tree

5 files changed

+251
-30
lines changed

5 files changed

+251
-30
lines changed

.sqlx/query-7db1cf516ada444693f3ba2145ed5cce923d02d8ca452894004cf1a85ff3bff3.json

-17
This file was deleted.

src/database/repository/mods.rs

+9-11
Original file line numberDiff line numberDiff line change
@@ -240,36 +240,34 @@ pub async fn increment_downloads(id: &str, conn: &mut PgConnection) -> Result<()
240240
Ok(())
241241
}
242242

243-
pub async fn update_with_json(
244-
mut the_mod: Mod,
243+
pub async fn update_with_json_fixeroo(
244+
id: &str,
245245
json: &ModJson,
246246
conn: &mut PgConnection,
247-
) -> Result<Mod, ApiError> {
247+
) -> Result<(), ApiError> {
248248
sqlx::query!(
249249
"UPDATE mods
250250
SET repository = $1,
251251
about = $2,
252252
changelog = $3,
253253
image = $4,
254-
updated_at = NOW()",
254+
updated_at = NOW()
255+
WHERE id = $5",
255256
json.repository,
256257
json.about,
257258
json.changelog,
258-
json.logo
259+
json.logo,
260+
id
259261
)
260262
.execute(conn)
261263
.await
262264
.inspect_err(|e| log::error!("Failed to update mod: {}", e))
263265
.or(Err(ApiError::DbError))?;
264266

265-
the_mod.repository = json.repository.clone();
266-
the_mod.about = json.about.clone();
267-
the_mod.changelog = json.changelog.clone();
268-
269-
Ok(the_mod)
267+
Ok(())
270268
}
271269

272-
pub async fn update_with_json_moved(
270+
pub async fn update_with_json(
273271
mut the_mod: Mod,
274272
json: ModJson,
275273
conn: &mut PgConnection,

src/endpoints/mod_versions.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ pub async fn create_version(
376376
}
377377
}
378378

379-
mods::update_with_json_moved(the_mod, json, &mut tx).await?;
379+
mods::update_with_json(the_mod, json, &mut tx).await?;
380380
}
381381

382382
tx.commit().await.or(Err(ApiError::TransactionError))?;
@@ -474,7 +474,7 @@ pub async fn update_version(
474474

475475
let json = ModJson::from_zip(bytes, &version.download_link, true)?;
476476

477-
mods::update_with_json_moved(the_mod, json, &mut tx).await?;
477+
mods::update_with_json(the_mod, json, &mut tx).await?;
478478
}
479479

480480
tx.commit().await.or(Err(ApiError::TransactionError))?;

src/jobs/fixeroo.rs

+239
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,239 @@
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+
}

src/jobs/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ pub mod cleanup_downloads;
22
pub mod logout_user;
33
pub mod migrate;
44
pub mod token_cleanup;
5+
pub mod fixeroo;

0 commit comments

Comments
 (0)