├── .github ├── CODEOWNERS └── workflows │ └── pr-checks.yml ├── .gitignore ├── .vscode └── settings.json ├── Cargo.lock ├── Cargo.toml ├── README.md ├── application ├── auth-server │ ├── Cargo.toml │ ├── README.md │ └── src │ │ └── main.rs ├── ffplay │ ├── Cargo.toml │ ├── README.md │ └── src │ │ ├── cli.rs │ │ ├── cli_test.rs │ │ └── main.rs └── soundcloud-tui │ ├── Cargo.toml │ ├── README.md │ └── src │ └── main.rs ├── docs └── assets │ └── solution-diagram.png └── library ├── player ├── Cargo.toml ├── README.md ├── src │ ├── device.rs │ ├── device_test.rs │ ├── internal │ │ ├── client.rs │ │ ├── error.rs │ │ ├── hls │ │ │ ├── mod.rs │ │ │ ├── playlist.rs │ │ │ ├── playlist_test.rs │ │ │ ├── track.rs │ │ │ └── track_test.rs │ │ ├── mod.rs │ │ ├── track_lookup.rs │ │ └── track_lookup_test.rs │ ├── lib.rs │ ├── player.rs │ └── player_test.rs └── testdata │ └── segment_12.ts ├── render ├── Cargo.toml ├── README.md └── src │ ├── app.rs │ ├── components │ ├── component.rs │ ├── mod.rs │ ├── style │ │ ├── border.rs │ │ ├── box_style.rs │ │ ├── layout.rs │ │ ├── mod.rs │ │ └── text.rs │ └── widgets │ │ ├── button.rs │ │ └── mod.rs │ ├── context.rs │ ├── event │ ├── crossterm │ │ ├── event_source.rs │ │ └── mod.rs │ ├── event_server.rs │ ├── key.rs │ ├── mod.rs │ ├── tests │ │ ├── event_server.rs │ │ ├── mod.rs │ │ └── utils.rs │ └── utils.rs │ ├── lib.rs │ ├── pages │ ├── login.rs │ ├── mod.rs │ └── splash.rs │ └── router.rs └── soundcloud-rs ├── Cargo.toml ├── README.md └── src ├── lib.rs └── me.rs /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @cherbie -------------------------------------------------------------------------------- /.github/workflows/pr-checks.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/.github/workflows/pr-checks.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | 3 | # macOS 4 | .DS_Store 5 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/Cargo.toml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/README.md -------------------------------------------------------------------------------- /application/auth-server/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/application/auth-server/Cargo.toml -------------------------------------------------------------------------------- /application/auth-server/README.md: -------------------------------------------------------------------------------- 1 | # Soundcloud OAuth2 Flow Server 2 | 3 | -------------------------------------------------------------------------------- /application/auth-server/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/application/auth-server/src/main.rs -------------------------------------------------------------------------------- /application/ffplay/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/application/ffplay/Cargo.toml -------------------------------------------------------------------------------- /application/ffplay/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/application/ffplay/README.md -------------------------------------------------------------------------------- /application/ffplay/src/cli.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/application/ffplay/src/cli.rs -------------------------------------------------------------------------------- /application/ffplay/src/cli_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/application/ffplay/src/cli_test.rs -------------------------------------------------------------------------------- /application/ffplay/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/application/ffplay/src/main.rs -------------------------------------------------------------------------------- /application/soundcloud-tui/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/application/soundcloud-tui/Cargo.toml -------------------------------------------------------------------------------- /application/soundcloud-tui/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/application/soundcloud-tui/README.md -------------------------------------------------------------------------------- /application/soundcloud-tui/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/application/soundcloud-tui/src/main.rs -------------------------------------------------------------------------------- /docs/assets/solution-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/docs/assets/solution-diagram.png -------------------------------------------------------------------------------- /library/player/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/player/Cargo.toml -------------------------------------------------------------------------------- /library/player/README.md: -------------------------------------------------------------------------------- 1 | # HLS Client Player -------------------------------------------------------------------------------- /library/player/src/device.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/player/src/device.rs -------------------------------------------------------------------------------- /library/player/src/device_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/player/src/device_test.rs -------------------------------------------------------------------------------- /library/player/src/internal/client.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/player/src/internal/client.rs -------------------------------------------------------------------------------- /library/player/src/internal/error.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/player/src/internal/error.rs -------------------------------------------------------------------------------- /library/player/src/internal/hls/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/player/src/internal/hls/mod.rs -------------------------------------------------------------------------------- /library/player/src/internal/hls/playlist.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/player/src/internal/hls/playlist.rs -------------------------------------------------------------------------------- /library/player/src/internal/hls/playlist_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/player/src/internal/hls/playlist_test.rs -------------------------------------------------------------------------------- /library/player/src/internal/hls/track.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/player/src/internal/hls/track.rs -------------------------------------------------------------------------------- /library/player/src/internal/hls/track_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/player/src/internal/hls/track_test.rs -------------------------------------------------------------------------------- /library/player/src/internal/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/player/src/internal/mod.rs -------------------------------------------------------------------------------- /library/player/src/internal/track_lookup.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/player/src/internal/track_lookup.rs -------------------------------------------------------------------------------- /library/player/src/internal/track_lookup_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/player/src/internal/track_lookup_test.rs -------------------------------------------------------------------------------- /library/player/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/player/src/lib.rs -------------------------------------------------------------------------------- /library/player/src/player.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/player/src/player.rs -------------------------------------------------------------------------------- /library/player/src/player_test.rs: -------------------------------------------------------------------------------- 1 | mod tests {} 2 | -------------------------------------------------------------------------------- /library/player/testdata/segment_12.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/player/testdata/segment_12.ts -------------------------------------------------------------------------------- /library/render/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/Cargo.toml -------------------------------------------------------------------------------- /library/render/README.md: -------------------------------------------------------------------------------- 1 | # Terminal UI Renderer -------------------------------------------------------------------------------- /library/render/src/app.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/app.rs -------------------------------------------------------------------------------- /library/render/src/components/component.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/components/component.rs -------------------------------------------------------------------------------- /library/render/src/components/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/components/mod.rs -------------------------------------------------------------------------------- /library/render/src/components/style/border.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/components/style/border.rs -------------------------------------------------------------------------------- /library/render/src/components/style/box_style.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/components/style/box_style.rs -------------------------------------------------------------------------------- /library/render/src/components/style/layout.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/components/style/layout.rs -------------------------------------------------------------------------------- /library/render/src/components/style/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/components/style/mod.rs -------------------------------------------------------------------------------- /library/render/src/components/style/text.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/components/style/text.rs -------------------------------------------------------------------------------- /library/render/src/components/widgets/button.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/components/widgets/button.rs -------------------------------------------------------------------------------- /library/render/src/components/widgets/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/components/widgets/mod.rs -------------------------------------------------------------------------------- /library/render/src/context.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/context.rs -------------------------------------------------------------------------------- /library/render/src/event/crossterm/event_source.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/event/crossterm/event_source.rs -------------------------------------------------------------------------------- /library/render/src/event/crossterm/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/event/crossterm/mod.rs -------------------------------------------------------------------------------- /library/render/src/event/event_server.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/event/event_server.rs -------------------------------------------------------------------------------- /library/render/src/event/key.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/event/key.rs -------------------------------------------------------------------------------- /library/render/src/event/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/event/mod.rs -------------------------------------------------------------------------------- /library/render/src/event/tests/event_server.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/event/tests/event_server.rs -------------------------------------------------------------------------------- /library/render/src/event/tests/mod.rs: -------------------------------------------------------------------------------- 1 | mod event_server; 2 | mod utils; 3 | -------------------------------------------------------------------------------- /library/render/src/event/tests/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/event/tests/utils.rs -------------------------------------------------------------------------------- /library/render/src/event/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/event/utils.rs -------------------------------------------------------------------------------- /library/render/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/lib.rs -------------------------------------------------------------------------------- /library/render/src/pages/login.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/pages/login.rs -------------------------------------------------------------------------------- /library/render/src/pages/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/pages/mod.rs -------------------------------------------------------------------------------- /library/render/src/pages/splash.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/pages/splash.rs -------------------------------------------------------------------------------- /library/render/src/router.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/render/src/router.rs -------------------------------------------------------------------------------- /library/soundcloud-rs/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/soundcloud-rs/Cargo.toml -------------------------------------------------------------------------------- /library/soundcloud-rs/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /library/soundcloud-rs/src/lib.rs: -------------------------------------------------------------------------------- 1 | mod me; -------------------------------------------------------------------------------- /library/soundcloud-rs/src/me.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cherbie/soundcloud-tui/HEAD/library/soundcloud-rs/src/me.rs --------------------------------------------------------------------------------