Skip to content

utils

Module for handling client signals.

Signals ¤

Class that holds the client datastar signals.

handle_signals(datastar_signals) ¤

Handle the signals received from the client. This function can be used to process or validate the signals before they are used.

Source code in spotdl/web/utils.py
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
def handle_signals(datastar_signals: dict | None) -> Signals:
    """
    Handle the signals received from the client.
    This function can be used to process or validate the signals before they are used.
    """
    app_state.logger.debug(f"Received signals: {datastar_signals}")
    if not datastar_signals:
        # raise ValueError("No signals provided.")
        app_state.logger.warning("No signals provided, returning empty Signals.")
        return Signals()
    signals = Signals()
    signals.client_id = datastar_signals.get("client_id", "")
    signals.search_term = datastar_signals.get("search_term", "")
    signals.downloader_settings = datastar_signals.get("downloader_settings", {})
    signals.song_url = datastar_signals.get("song_url", "")
    return signals