Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/dev-topsoil/slopsoil
/ functions
Functions
394 in github.com/dev-topsoil/slopsoil
⨍
Functions
394
◇
Types & classes
24
↳
Endpoints
1
↓ 1 callers
Function
_extract_udp_payload
Strip Ethernet/IP/UDP headers and return UDP payload, or None.
tools/analyze_dave.py:62
↓ 1 callers
Method
_ffmpeg_cmd
(self)
streaming/video_player.py:901
↓ 1 callers
Function
_find_channel
(channels: list[dict], query: str)
cogs/tv.py:41
↓ 1 callers
Function
_hex_preview
(data: bytes, n: int = 64)
tools/analyze_dave.py:143
↓ 1 callers
Function
_iter_pcap
Yield (ts_sec, ts_usec, data) for each packet in a pcap file.
tools/analyze_dave.py:39
↓ 1 callers
Method
_load
(self)
services/sources.py:37
↓ 1 callers
Function
_load_allowed_ids
()
bot.py:38
↓ 1 callers
Function
_outer_decrypt
Decrypt a Discord voice UDP packet encrypted with aead_xchacha20_poly1305_rtpsize. Packet format: [RTP header (12 B)] [ciphertext] [nonce s
tools/analyze_dave.py:117
↓ 1 callers
Function
_packetize_nal
Return a list of RTP payloads (no header) for one NAL unit. Small NAL units (≤ _MTU - 12) become a single-NAL-unit packet. Large ones ar
streaming/video_player.py:659
↓ 1 callers
Function
_parse_rtp_header
Return (version, seq, ts, ssrc) from a 12-byte RTP header, or None.
tools/analyze_dave.py:104
↓ 1 callers
Method
_poll_ws
Continuously poll the stream WebSocket to handle heartbeats.
streaming/golive.py:325
↓ 1 callers
Function
_rtp_header
(seq: int, ts: int, ssrc: int, marker: bool = False)
streaming/video_player.py:649
↓ 1 callers
Function
_run_audio
()
streaming/engine.py:129
↓ 1 callers
Function
_run_live
()
streaming/engine.py:257
↓ 1 callers
Method
_send_audio
(self)
streaming/golive.py:456
↓ 1 callers
Method
_send_frame
Packetize, encrypt, and send all NAL units for one video frame.
streaming/video_player.py:976
↓ 1 callers
Function
_yt_cleanup_after_stream
(task: asyncio.Task, tmp_dir: str)
services/ytdlp.py:74
↓ 1 callers
Function
_yt_download
Download url into out_dir via yt-dlp. Returns (file_path, title).
services/ytdlp.py:35
↓ 1 callers
Function
_yt_extract_live_url
Return (stream_url, title) if url is a live broadcast, else None. Uses yt-dlp metadata only — no download — so it's fast. If the stream is u
services/ytdlp.py:83
↓ 1 callers
Method
backfill_epg_urls
For any stored source that has no epg_url, fetch the first 1 KB of its M3U URL to read the #EXTM3U header and extract url-tvg / x-tvg
services/sources.py:108
↓ 1 callers
Function
cancel_live_stream
Cancel any active go-live stream for a guild. Cancels the stream task (whose finally block calls conn.disconnect()) and stops the video playe
streaming/engine.py:63
↓ 1 callers
Method
decrypt
(self, user_id: int, media_type, packet: bytes)
davey_compat.py:265
↓ 1 callers
Method
encrypt_h264
DAVE-encrypt an H.264 RTP payload before transport encryption.
davey_compat.py:237
↓ 1 callers
Function
fetch_and_parse
Fetch an M3U URL, validate, and parse. Returns (channels, epg_url). Raises on network or parse errors.
services/m3u.py:70
↓ 1 callers
Method
from_env
Build a client from TVHEADEND_URL/USER/PASS, or None if any are unset. Keeping this here means the "is TVheadend configured?" decision lives
services/tvheadend.py:32
↓ 1 callers
Method
get_epg_events
Return EPG events whose title contains query (case-insensitive).
services/tvheadend.py:68
↓ 1 callers
Method
get_epg_sources
Return [(source_name, epg_url)] for enabled sources with an EPG URL.
services/sources.py:100
↓ 1 callers
Method
get_now_playing
Return {channel_uuid: programme_title} for all currently airing events. Fetches up to 10 000 EPG events (TVheadend returns them sort
services/tvheadend.py:89
↓ 1 callers
Method
get_serialized_key_package
Returns the MLS key package to send to Discord (opcode MLS_KEY_PACKAGE).
davey_compat.py:170
↓ 1 callers
Function
main
()
bot.py:130
↓ 1 callers
Function
main
()
tools/analyze_dave.py:150
↓ 1 callers
Function
parse_m3u
Parse M3U playlist text into a list of channel dicts. Each channel dict has: name, tvg_id, group, stream_url. Raises ValueError if the text i
services/m3u.py:24
↓ 1 callers
Function
patch_video
Apply video patches. Call once from bot.py before any voice connections: import discord.gateway import video_compat vid
video_compat.py:111
↓ 1 callers
Method
play
Stream a channel or URL into your voice channel. Pass a URL to download and stream via yt-dlp (!play https://...). Match a TV
cogs/tv.py:347
↓ 1 callers
Method
register_video_ssrc
Register a video SSRC with the H.264 codec so DAVE can encrypt it.
davey_compat.py:230
↓ 1 callers
Method
reinit
(self, protocol_version: int, user_id: int, channel_id: int)
davey_compat.py:150
↓ 1 callers
Method
reinit_dave_session
(self)
streaming/golive.py:154
↓ 1 callers
Method
remaining
(self)
streaming/video_player.py:109
↓ 1 callers
Method
remove_source
Remove a source by index. Returns the removed source's name.
services/sources.py:157
↓ 1 callers
Method
set_enabled
(self, idx: int, enabled: bool)
services/sources.py:153
↓ 1 callers
Method
set_tvh_enabled
(self, enabled: bool)
services/sources.py:67
↓ 1 callers
Method
stop
(self, ctx: commands.Context)
cogs/voice.py:75
↓ 1 callers
Method
to_bytes
(self)
streaming/video_player.py:160
↓ 1 callers
Method
ue
(self, val: int)
streaming/video_player.py:149
Method
__init__
(self, allowed_ids: set[int])
bot.py:49
Method
__init__
(self, data: bytes)
davey_compat.py:47
Method
__init__
(self, s)
davey_compat.py:58
Method
__init__
(self, protocol_version: int, user_id: int, channel_id: int)
davey_compat.py:87
Method
__init__
(self, bot: commands.Bot)
cogs/general.py:7
Method
__init__
(self, bot: commands.Bot, source_manager: SourceManager)
cogs/iptv.py:28
Method
__init__
(self, bot: commands.Bot, client: JellyfinClient | None)
cogs/jellyfin.py:53
Method
__init__
(self, bot: commands.Bot)
cogs/voice.py:20
Method
__init__
(self, bot: commands.Bot, tvh: TVheadendClient | None)
cogs/tv.py:73
Method
__init__
(self, url: str, user: str, password: str)
services/tvheadend.py:23
Method
__init__
(self, persist_path: str | Path)
services/sources.py:31
Method
__init__
(self, url: str, api_key: str)
services/jellyfin.py:24
Method
__init__
( self, bot: SlopSoil, guild_id: int, channel_id: int, vc: discord.Voi
streaming/golive.py:84
Method
__init__
( self, file_obj, conn: GoLiveConnection, is_source_active: Callable[[], bool]
streaming/golive.py:427
Method
__init__
(self)
streaming/video_player.py:142
Method
__init__
(self, f)
streaming/video_player.py:750
Method
__init__
( self, url: str, voice_client: discord.VoiceClient, fps: float = 25.0,
streaming/video_player.py:784
Method
__repr__
(self)
davey_compat.py:268
Function
_after
(error: Exception | None)
streaming/engine.py:159
Method
_check
(msg)
cogs/iptv.py:142
Method
_check
(msg)
cogs/jellyfin.py:65
Function
_clear_profile_env
Start each test from a clean profile env so the 1080p default applies.
tests/test_video_player.py:20
Method
_drain_stderr
(self)
streaming/video_player.py:1064
Method
_emit
Send a frame and pace to wall clock. Returns True → stop.
streaming/video_player.py:1180
Method
_execute_transition
(self, transition_id: int)
streaming/golive.py:187
Function
_fetch
()
services/hls.py:30
Function
_fetch
()
services/m3u.py:73
Method
_fetch
()
services/tvheadend.py:46
Method
_fetch
()
services/jellyfin.py:42
Function
_fetch_and_parse
()
services/epg.py:43
Method
_flush_stats
(now: float)
streaming/video_player.py:1156
Function
_get_episodes
(sid, season_id)
tests/test_jellyfin.py:326
Function
_get_member
(user_id: int)
tests/test_permissions.py:73
Function
_get_seasons
(sid)
tests/test_jellyfin.py:322
Method
_on_mls_failure
(self, reason: str, detail: str)
davey_compat.py:110
Function
_patched
(self_state)
davey_compat.py:290
Function
_patched_client_connect
(self)
video_compat.py:79
Function
_patched_identify
(self)
video_compat.py:32
Function
_patched_select_protocol
(self, ip: str, port: int, mode: str)
video_compat.py:49
Method
_peek
(m3u_url: str)
services/sources.py:114
Method
_recover_from_invalid_commit
(self, transition_id: int)
streaming/golive.py:178
Function
_run
()
services/ytdlp.py:39
Function
_run
()
services/probe.py:26
Method
_scheduled_play
()
cogs/tv.py:649
Function
_search
(q, limit=25)
tests/test_jellyfin.py:319
Method
_send
(content: str, **kwargs)
cogs/tv.py:680
Method
_yn_check
(msg: discord.Message)
cogs/tv.py:597
Method
add_socket_listener
(self, callback)
streaming/golive.py:335
Method
add_source
Add or update an IPTV playlist source from an M3U URL.
cogs/iptv.py:34
Method
add_source
Add a new source or replace an existing one with the same name.
services/sources.py:75
Method
audio_fifo
(self)
streaming/video_player.py:827
Method
can_encrypt
(self)
streaming/golive.py:147
Method
channels
List all enabled channels (TVheadend + IPTV) with what's currently airing. Optional keyword filter: !channels <name>
cogs/tv.py:192
Method
cleanup
(self)
streaming/video_player.py:757
Function
client
()
tests/test_jellyfin.py:171
Method
delete_source
Remove an IPTV playlist source.
cogs/iptv.py:126
← previous
next →
101–200 of 394, ranked by callers