Skip to content

Commit 1a40c46

Browse files
committed
remove socket.io
1 parent faf5ad0 commit 1a40c46

16 files changed

Lines changed: 36 additions & 400 deletions

.claude/settings.local.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
"permissions": {
33
"allow": [
44
"Bash(cargo publish:*)",
5-
"Bash(cargo build:*)"
5+
"Bash(cargo build:*)",
6+
"Bash(grep:*)"
67
]
78
}
89
}

Cargo.lock

Lines changed: 1 addition & 147 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ tokio-util = { version = "0.7.11", features = ["compat", "io", "io-util"] }
5454
time = "0.3.34"
5555
tokio-stream = { version = "0.1.14", features = ["io-util"] }
5656
async-stream = "0.3"
57-
socketioxide = { version = "0.13.1", features = ["extensions","state", "v4"] }
5857
async-trait = "0.1.77"
5958
mime_guess = "2.0.4"
6059

src/main.rs

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ use tools::{auth::{sign_local, Claims}, image_tools::has_image_magick, log::{log
2323
use tower::ServiceBuilder;
2424
use tower_http::{cors::{Any, CorsLayer}, trace::TraceLayer};
2525
use crate::{server::{get_config, update_ip, ServerIpInfo}, tools::{auth::{get_or_init_keys, verify_local, ClaimsLocal}, log::log_info}};
26-
use socketioxide::{extract::{SocketRef, TryData}, SocketIo};
2726
pub use self::error::{Result, Error};
2827

2928

@@ -143,14 +142,6 @@ async fn app() -> Result<Router> {
143142
// allow requests from any origin
144143

145144
.allow_origin(origins);
146-
let (iolayer, io) = SocketIo::builder().with_state(mc.clone()).build_layer();
147-
//io.ns("/", routes::socket::on_connect);
148-
mc.set_socket(io.clone());
149-
150-
let mc_forsocket = mc.clone();
151-
io.ns("/", {
152-
|socket: SocketRef, TryData(data): TryData<AuthMessage>| async move { routes::socket::on_connect(socket, mc_forsocket, data).await }
153-
});
154145

155146
let server_id = get_server_id().await;
156147
let admin_users = mc.get_users(&model::users::ConnectedUser::ServerAdmin).await?.into_iter().filter(|u| u.is_admin()).collect::<Vec<_>>();
@@ -178,10 +169,6 @@ async fn app() -> Result<Router> {
178169
//.layer(middleware::map_response(main_response_mapper))
179170
.layer(middleware::from_fn_with_state(mc.clone(), mw_auth::mw_token_resolver))
180171
.layer(DefaultBodyLimit::disable())
181-
.layer(
182-
ServiceBuilder::new()
183-
.layer(iolayer),
184-
)
185172
.layer(
186173
ServiceBuilder::new()
187174
.layer(cors)

src/model/backups.rs

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -55,29 +55,11 @@ pub struct BackupForUpdate {
5555
impl ModelController {
5656

5757
pub fn send_backup_status(&self, message: BackupMessage) {
58-
self.broadcast_sse(SseEvent::Backups(message.clone()));
59-
self.for_connected_users(&message, |user, socket, message| {
60-
if let Some(library) = &message.backup.backup.library {
61-
let r = user.check_library_role(library, LibraryRole::Admin);
62-
if r.is_ok() {
63-
let _ = socket.emit("backups", message);
64-
}
65-
} else {
66-
let r = user.check_role(&UserRole::Admin);
67-
if r.is_ok() {
68-
let _ = socket.emit("backups", message);
69-
}
70-
}
71-
});
58+
self.broadcast_sse(SseEvent::Backups(message));
7259
}
60+
7361
pub fn send_backup_file_status(&self, message: BackupFileProgress) {
74-
self.broadcast_sse(SseEvent::BackupsFiles(message.clone()));
75-
self.for_connected_users(&message, |user, socket, message| {
76-
let r = user.check_role(&UserRole::Admin);
77-
if r.is_ok() {
78-
let _ = socket.emit("backups-files", message);
79-
}
80-
});
62+
self.broadcast_sse(SseEvent::BackupsFiles(message));
8163
}
8264

8365
pub async fn set_backup_status(&self, status: BackupProcessStatus) -> RsResult<()> {

src/model/episodes.rs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -204,13 +204,7 @@ impl ModelController {
204204

205205

206206
pub fn send_episode(&self, message: EpisodesMessage) {
207-
self.broadcast_sse(SseEvent::Episodes(message.clone()));
208-
self.for_connected_users(&message, |user, socket, message| {
209-
let r = user.check_library_role(&message.library, LibraryRole::Read);
210-
if r.is_ok() {
211-
let _ = socket.emit("episodes", message);
212-
}
213-
});
207+
self.broadcast_sse(SseEvent::Episodes(message));
214208
}
215209

216210

src/model/media_progresses.rs

Lines changed: 10 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -30,48 +30,21 @@ impl ModelController {
3030
pub async fn send_media_progress(&self, message: MediasProgressMessage) {
3131
let mapping: Vec<crate::domain::library::UserMapping> = self.get_library_mapped_users(&message.library).await.ok().unwrap_or_default();
3232

33-
// Broadcast via SSE
34-
self.broadcast_sse(SseEvent::MediaProgress(message.clone()));
35-
36-
self.for_connected_users(&message, |user, socket, message| {
37-
38-
if let Ok(user_id) = user.user_id() {
39-
if user_id == message.progress.user_ref {
40-
let _ = socket.emit("media_progress", message);
41-
}
42-
}
43-
});
44-
45-
for map in mapping.clone() {
33+
for map in &mapping {
4634
if message.progress.user_ref == map.to {
47-
let mut message = message.clone();
48-
message.progress.user_ref = map.from.clone();
49-
// Broadcast mapped SSE event
50-
self.broadcast_sse(SseEvent::MediaProgress(message.clone()));
51-
self.for_connected_users(&message, |user, socket, message| {
52-
53-
if let Ok(user_id) = user.user_id() {
54-
if user_id == message.progress.user_ref {
55-
let _ = socket.emit("media_progress", message);
56-
}
57-
}
58-
});
35+
let mut mapped = message.clone();
36+
mapped.progress.user_ref = map.from.clone();
37+
self.broadcast_sse(SseEvent::MediaProgress(mapped));
5938
}
6039
if message.progress.user_ref == map.from {
61-
let mut message = message.clone();
62-
message.progress.user_ref = map.to;
63-
// Broadcast mapped SSE event
64-
self.broadcast_sse(SseEvent::MediaProgress(message.clone()));
65-
self.for_connected_users(&message, |user, socket, message| {
66-
67-
if let Ok(user_id) = user.user_id() {
68-
if user_id == message.progress.user_ref {
69-
let _ = socket.emit("media_progress", message);
70-
}
71-
}
72-
});
40+
let mut mapped = message.clone();
41+
mapped.progress.user_ref = map.to.clone();
42+
self.broadcast_sse(SseEvent::MediaProgress(mapped));
7343
}
7444
}
45+
46+
// Broadcast original message last (consumes message)
47+
self.broadcast_sse(SseEvent::MediaProgress(message));
7548
}
7649

7750
pub async fn get_medias_progresses(&self, library_id: &str, query: MediaProgressesQuery, requesting_user: &ConnectedUser) -> RsResult<Vec<RsMediaProgress>> {

0 commit comments

Comments
 (0)