chore: remove comments
This commit is contained in:
parent
f051253abb
commit
9f62332334
@ -8,8 +8,6 @@ use std::time::{SystemTime, UNIX_EPOCH};
|
|||||||
use tokio::sync::{mpsc, oneshot};
|
use tokio::sync::{mpsc, oneshot};
|
||||||
use tokio::time::{interval, Duration};
|
use tokio::time::{interval, Duration};
|
||||||
|
|
||||||
// --- Datenstrukturen und Befehle ---
|
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
pub struct PresenceData {
|
pub struct PresenceData {
|
||||||
pub state: String,
|
pub state: String,
|
||||||
@ -20,18 +18,14 @@ pub struct PresenceData {
|
|||||||
pub small_image_text: Option<String>,
|
pub small_image_text: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Befehle, die an den Presence-Actor gesendet werden können
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
enum PresenceCommand {
|
enum PresenceCommand {
|
||||||
Connect(oneshot::Sender<bool>),
|
Connect(oneshot::Sender<bool>),
|
||||||
// Geändert: Nimmt einen Sender, um den Abschluss zu signalisieren
|
|
||||||
Disconnect(oneshot::Sender<()>),
|
Disconnect(oneshot::Sender<()>),
|
||||||
UpdateData(PresenceData),
|
UpdateData(PresenceData),
|
||||||
IsConnected(oneshot::Sender<bool>),
|
IsConnected(oneshot::Sender<bool>),
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- Der Actor ---
|
|
||||||
|
|
||||||
struct PresenceActor {
|
struct PresenceActor {
|
||||||
receiver: mpsc::Receiver<PresenceCommand>,
|
receiver: mpsc::Receiver<PresenceCommand>,
|
||||||
client: Option<DiscordIpcClient>,
|
client: Option<DiscordIpcClient>,
|
||||||
@ -71,7 +65,6 @@ impl PresenceActor {
|
|||||||
Some(cmd) = self.receiver.recv() => {
|
Some(cmd) = self.receiver.recv() => {
|
||||||
match cmd {
|
match cmd {
|
||||||
PresenceCommand::Connect(responder) => self.handle_connect(responder).await,
|
PresenceCommand::Connect(responder) => self.handle_connect(responder).await,
|
||||||
// Geändert: Leitet den Responder weiter
|
|
||||||
PresenceCommand::Disconnect(responder) => {
|
PresenceCommand::Disconnect(responder) => {
|
||||||
self.handle_disconnect(responder).await;
|
self.handle_disconnect(responder).await;
|
||||||
},
|
},
|
||||||
@ -118,7 +111,6 @@ impl PresenceActor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Geändert: Nimmt einen Responder als Parameter
|
|
||||||
async fn handle_disconnect(&mut self, responder: oneshot::Sender<()>) {
|
async fn handle_disconnect(&mut self, responder: oneshot::Sender<()>) {
|
||||||
if let Some(mut client) = self.client.take() {
|
if let Some(mut client) = self.client.take() {
|
||||||
println!("Actor: Disconnecting...");
|
println!("Actor: Disconnecting...");
|
||||||
@ -126,7 +118,6 @@ impl PresenceActor {
|
|||||||
let _ = client.close().map_err(|e| e.to_string());
|
let _ = client.close().map_err(|e| e.to_string());
|
||||||
println!("Actor: Disconnected successfully.");
|
println!("Actor: Disconnected successfully.");
|
||||||
}
|
}
|
||||||
// Signalisiere, dass der Vorgang abgeschlossen ist
|
|
||||||
let _ = responder.send(());
|
let _ = responder.send(());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,7 +149,6 @@ impl PresenceActor {
|
|||||||
|
|
||||||
if let Err(e) = client.set_activity(activity).map_err(|e| e.to_string()) {
|
if let Err(e) = client.set_activity(activity).map_err(|e| e.to_string()) {
|
||||||
eprintln!("Failed to set activity, disconnecting: {:?}", e);
|
eprintln!("Failed to set activity, disconnecting: {:?}", e);
|
||||||
// Rufe die interne handle_disconnect auf, ohne auf eine Antwort zu warten
|
|
||||||
if let Some(mut client) = self.client.take() {
|
if let Some(mut client) = self.client.take() {
|
||||||
let _ = client.clear_activity();
|
let _ = client.clear_activity();
|
||||||
let _ = client.close();
|
let _ = client.close();
|
||||||
@ -168,8 +158,6 @@ impl PresenceActor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- Öffentliche API ---
|
|
||||||
|
|
||||||
static PRESENCE_TX: Lazy<mpsc::Sender<PresenceCommand>> = Lazy::new(|| {
|
static PRESENCE_TX: Lazy<mpsc::Sender<PresenceCommand>> = Lazy::new(|| {
|
||||||
let (tx, rx) = mpsc::channel(10);
|
let (tx, rx) = mpsc::channel(10);
|
||||||
let mut actor = PresenceActor::new(rx);
|
let mut actor = PresenceActor::new(rx);
|
||||||
@ -196,11 +184,9 @@ pub async fn connect() -> bool {
|
|||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
||||||
// Geändert: Wartet jetzt auf den Abschluss des Disconnects
|
|
||||||
pub async fn disconnect() {
|
pub async fn disconnect() {
|
||||||
let (tx, rx) = oneshot::channel();
|
let (tx, rx) = oneshot::channel();
|
||||||
if PRESENCE_TX.send(PresenceCommand::Disconnect(tx)).await.is_ok() {
|
if PRESENCE_TX.send(PresenceCommand::Disconnect(tx)).await.is_ok() {
|
||||||
// Warte, bis der Actor den Abschluss signalisiert
|
|
||||||
let _ = rx.await;
|
let _ = rx.await;
|
||||||
} else {
|
} else {
|
||||||
println!("Could not send disconnect command; actor may not be running.");
|
println!("Could not send disconnect command; actor may not be running.");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user