SYMBOL INDEX (208 symbols across 59 files) FILE: crates/cli/src/common.rs function test (line 11) | async fn test() { FILE: crates/cli/src/config.rs type ConfigOption (line 9) | pub struct ConfigOption { type Config (line 15) | pub struct Config { type FileNameConfig (line 21) | pub struct FileNameConfig { type FileNameOption (line 27) | pub struct FileNameOption { function headers (line 51) | pub fn headers(live: &str) -> HashMap { function test_config (line 67) | fn test_config() { FILE: crates/cli/src/main.rs type Cli (line 20) | struct Cli { type Commands (line 48) | enum Commands { function cli (line 54) | pub async fn cli() -> Result<()> { function main (line 143) | async fn main() -> Result<()> { FILE: crates/cli/src/util.rs constant SEPARATOR (line 2) | const SEPARATOR: &str = "\\"; constant SEPARATOR (line 5) | const SEPARATOR: &str = "/"; function bin_dir (line 7) | pub fn bin_dir() -> String { FILE: crates/core/src/common.rs constant USER_AGENT (line 5) | pub const USER_AGENT: &str = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ... FILE: crates/core/src/error.rs type Result (line 3) | pub type Result = std::result::Result; type SeamError (line 7) | pub enum SeamError { FILE: crates/core/src/live/afreeca.rs constant URL (line 14) | const URL: &str = "https://play.afreecatv.com/"; constant PLAY_URL (line 15) | const PLAY_URL: &str = "https://live.afreecatv.com/afreeca/player_live_a... constant CDN (line 16) | const CDN: &str = "https://live-global-cdn-v02.afreecatv.com/live-stmc-3... type Client (line 21) | pub struct Client; method get (line 25) | async fn get(&self, rid: &str, headers: Option>)... FILE: crates/core/src/live/bili.rs constant INIT_URL (line 15) | const INIT_URL: &str = "https://api.live.bilibili.com/room/v1/Room/room_... constant INFO_URL (line 16) | const INFO_URL: &str = constant PLAY_URL (line 18) | const PLAY_URL: &str = "https://api.live.bilibili.com/xlive/web-room/v2/... type Client (line 23) | pub struct Client; method get (line 27) | async fn get(&self, rid: &str, headers: Option>)... function get_bili_stream_info (line 137) | pub async fn get_bili_stream_info( FILE: crates/core/src/live/cc.rs constant URL (line 12) | const URL: &str = "https://cc.163.com/"; type Client (line 17) | pub struct Client; method get (line 21) | async fn get(&self, rid: &str, headers: Option>)... FILE: crates/core/src/live/douyin.rs constant URL (line 15) | const URL: &str = "https://live.douyin.com/"; constant ENTER_URL (line 16) | const ENTER_URL: &str = type Client (line 22) | pub struct Client; method get (line 27) | async fn get(&self, rid: &str, headers: Option>)... FILE: crates/core/src/live/douyu.rs constant URL (line 18) | const URL: &str = "https://www.douyu.com/"; constant PLAY_URL (line 19) | const PLAY_URL: &str = "https://www.douyu.com/lapi/live/getH5Play/"; constant BETARD_URL (line 20) | const BETARD_URL: &str = "https://www.douyu.com/betard/"; constant DID (line 21) | const DID: &str = "10000000000000000000000000001501"; type Client (line 26) | pub struct Client; method get (line 31) | async fn get(&self, rid: &str, headers: Option>)... type DouyuInfo (line 190) | struct DouyuInfo { function get_info (line 197) | async fn get_info(rid: &str, headers: HeaderMap) -> Result { FILE: crates/core/src/live/flex.rs constant URL (line 13) | const URL: &str = "https://api.flextv.co.kr/api/channels/rid/stream?opti... type Client (line 18) | pub struct Client; method get (line 22) | async fn get(&self, rid: &str, headers: Option>)... FILE: crates/core/src/live/huajiao.rs constant URL (line 14) | const URL: &str = "https://www.huajiao.com/l/"; type Client (line 19) | pub struct Client; method get (line 23) | async fn get(&self, rid: &str, headers: Option>)... FILE: crates/core/src/live/huya.rs constant URL (line 19) | const URL: &str = "https://m.huya.com/"; type Client (line 24) | pub struct Client; method get (line 28) | async fn get(&self, rid: &str, headers: Option>)... function get_uuid (line 138) | fn get_uuid(now: u128, rand: u32) -> u128 { function get_anonymous_uid (line 142) | async fn get_anonymous_uid() -> Result { function process_anticode (line 165) | fn process_anticode( FILE: crates/core/src/live/inke.rs constant URL (line 13) | const URL: &str = "https://webapi.busi.inke.cn/web/live_share_pc?uid="; type Client (line 18) | pub struct Client; method get (line 22) | async fn get(&self, rid: &str, headers: Option>)... FILE: crates/core/src/live/kk.rs constant URL (line 14) | const URL: &str = "https://www.kktv5.com/show/"; type Client (line 19) | pub struct Client; method get (line 24) | async fn get(&self, rid: &str, headers: Option>)... FILE: crates/core/src/live/ks.rs constant URL (line 14) | const URL: &str = "https://live.kuaishou.com/u/"; type Client (line 19) | pub struct Client; method get (line 24) | async fn get(&self, rid: &str, headers: Option>)... FILE: crates/core/src/live/mht.rs constant URL (line 14) | const URL: &str = "https://www.2cq.com/proxy/room/room/info"; type Client (line 19) | pub struct Client; method get (line 24) | async fn get(&self, rid: &str, headers: Option>)... FILE: crates/core/src/live/mod.rs type Live (line 37) | pub trait Live: Send + Sync { method get (line 41) | async fn get(&self, rid: &str, headers: Option... function test_get (line 52) | async fn test_get() { type Node (line 79) | pub struct Node { method json (line 89) | pub fn json(&self) -> String { type Url (line 95) | pub struct Url { method is_m3u8 (line 103) | pub fn is_m3u8(&self) -> Result { type Format (line 112) | pub enum Format { method serialize (line 120) | fn serialize(&self, serializer: S) -> std::result::Result>)... function get_title (line 60) | async fn get_title(rid: &str, headers: Option>) ... FILE: crates/core/src/live/panda.rs constant URL (line 3) | const URL: &str = "https://api.pandalive.co.kr/v1/live/play/"; type Client (line 18) | pub struct Client; method get (line 22) | async fn get(&self, rid: &str, headers: Option>)... FILE: crates/core/src/live/qf.rs constant URL (line 14) | const URL: &str = "https://qf.56.com/"; type Client (line 19) | pub struct Client; method get (line 23) | async fn get(&self, rid: &str, headers: Option>)... FILE: crates/core/src/live/twitch.rs type Client (line 15) | pub struct Client; method get_access_token (line 64) | async fn get_access_token( method get_live_streams (line 92) | async fn get_live_streams( method get_channel_metadata (line 132) | async fn get_channel_metadata(&self, rid: &str, headers: HeaderMap) ->... method get (line 19) | async fn get(&self, rid: &str, headers: Option>)... function test_twitch (line 182) | async fn test_twitch() { FILE: crates/core/src/live/wink.rs constant URL (line 3) | const URL: &str = "https://api.winktv.co.kr/v1/live/play"; type Client (line 18) | pub struct Client; method get (line 22) | async fn get(&self, rid: &str, headers: Option>)... FILE: crates/core/src/live/yqs.rs constant URL (line 14) | const URL: &str = "https://www.173.com/"; constant ROOM_URL (line 15) | const ROOM_URL: &str = "https://www.173.com/room/getVieoUrl"; type Client (line 20) | pub struct Client; method get (line 24) | async fn get(&self, rid: &str, headers: Option>)... function get_title (line 64) | async fn get_title(rid: &str, headers: Option>) ... FILE: crates/core/src/util.rs function eval (line 13) | pub fn eval(js: &str) -> String { function match_format (line 21) | pub fn match_format(url: &str) -> Format { function parse_url (line 33) | pub fn parse_url(url: String) -> Url { function get_datetime (line 43) | pub fn get_datetime() -> String { function hash2header (line 47) | pub fn hash2header(map: Option>) -> HeaderMap { FILE: crates/danmu/src/danmu/bili.rs constant WSS_URL (line 12) | const WSS_URL: &str = "wss://broadcastlv.chat.bilibili.com/sub"; constant HEART_BEAT (line 13) | const HEART_BEAT: &str = "\x00\x00\x00\x1f\x00\x10\x00\x01\x00\x00\x00\x... constant HEART_BEAT_INTERVAL (line 14) | const HEART_BEAT_INTERVAL: u64 = 60; function init_msg_generator (line 16) | fn init_msg_generator(rid: &str) -> Vec> { function decode_and_record_danmu (line 38) | fn decode_and_record_danmu(data: &[u8]) -> Result> { type Danmu (line 120) | pub struct Danmu; method start (line 124) | async fn start(rid: &str, recorder: Vec<&dyn DanmuRecorder>) -> Result<(... function test_danmu_terminal (line 153) | async fn test_danmu_terminal() { FILE: crates/danmu/src/error.rs type Result (line 3) | pub type Result = std::result::Result; type SeamDanmuError (line 6) | pub enum SeamDanmuError { FILE: crates/danmu/src/lib.rs type DanmuTrait (line 29) | pub trait DanmuTrait { method start (line 38) | async fn start(rid: &str, recorder: Vec<&dyn DanmuRecorder>) -> Result... type DanmuRecorder (line 50) | pub trait DanmuRecorder: Send + Sync { method try_new (line 51) | fn try_new(path: Option) -> Result method path (line 55) | fn path(&self) -> Option<&PathBuf>; method init (line 57) | fn init(&self) -> Result<()> { method formatter (line 65) | fn formatter(&self, danmu: &DanmuBody) -> String { method record (line 74) | fn record(&self, danmu: &DanmuBody) -> Result<()> { method try_new (line 91) | fn try_new(path: Option) -> Result { method path (line 99) | fn path(&self) -> Option<&PathBuf> { method init (line 106) | fn init(&self) -> Result<()> { method formatter (line 114) | fn formatter(&self, danmu: &DanmuBody) -> String { method try_new (line 122) | fn try_new(_path: Option) -> Result { method path (line 126) | fn path(&self) -> Option<&PathBuf> { method init (line 130) | fn init(&self) -> Result<()> { method record (line 135) | fn record(&self, danmu: &DanmuBody) -> Result<()> { type Csv (line 86) | pub struct Csv { type Terminal (line 119) | pub struct Terminal; type DanmuBody (line 143) | pub struct DanmuBody { method new (line 149) | pub fn new(user: String, content: String) -> Self { function websocket_danmu_work_flow (line 187) | pub async fn websocket_danmu_work_flow( function closed_room_checker (line 222) | async fn closed_room_checker(is_closed_room: impl Fn() -> B) function heart_beat (line 239) | async fn heart_beat( function fetch_danmu (line 264) | async fn fetch_danmu( FILE: crates/gui/src-tauri/build.rs function main (line 1) | fn main() { FILE: crates/gui/src-tauri/src/command/live.rs function url (line 6) | pub async fn url(live: String, rid: String) -> Resp { function play (line 22) | pub async fn play(url: String) -> Resp { FILE: crates/gui/src-tauri/src/command/refresh.rs function refresh_all (line 6) | pub async fn refresh_all(app: AppHandle) -> Resp<()> { function refresh_one (line 11) | pub async fn refresh_one(app: AppHandle, live: String, rid: String) -> R... FILE: crates/gui/src-tauri/src/command/subscribe.rs function subscribe_all (line 4) | pub async fn subscribe_all() -> Resp> { function subscribe_add (line 9) | pub async fn subscribe_add(live: String, rid: String) -> Resp { function subscribe_remove (line 14) | pub async fn subscribe_remove(live: String, rid: String) -> Resp { FILE: crates/gui/src-tauri/src/common.rs type Context (line 27) | pub struct Context { function load (line 32) | pub async fn load() -> Context { function test (line 64) | async fn test() { FILE: crates/gui/src-tauri/src/config.rs type ConfigOption (line 9) | pub struct ConfigOption { type Config (line 15) | pub struct Config { type PlayOption (line 21) | pub struct PlayOption { type Play (line 27) | pub struct Play { function headers (line 57) | pub fn headers(live: &str) -> HashMap { function test_config (line 73) | fn test_config() { FILE: crates/gui/src-tauri/src/database/mod.rs function init (line 7) | pub async fn init(db: &DatabaseConnection) -> Result { FILE: crates/gui/src-tauri/src/database/subscribe.rs type Model (line 7) | pub struct Model { type Relation (line 15) | pub enum Relation {} FILE: crates/gui/src-tauri/src/main.rs function main (line 22) | async fn main() { FILE: crates/gui/src-tauri/src/manager/refresh.rs type ReFreshMessage (line 12) | pub struct ReFreshMessage { function one (line 18) | pub async fn one(app: &AppHandle, live: String, rid: String) -> Result<(... function all (line 31) | pub async fn all(app: &AppHandle) -> Result<()> { FILE: crates/gui/src-tauri/src/resp.rs type Resp (line 5) | pub struct Resp { function from (line 15) | fn from(item: Result) -> Self { function success (line 27) | pub fn success(data: T) -> Self { function fail (line 35) | pub fn fail(code: i64, e: &str) -> Self { FILE: crates/gui/src-tauri/src/service/subscribe.rs function all (line 9) | pub async fn all() -> Result> { function add (line 16) | pub async fn add(live: String, rid: String) -> Result { function remove (line 29) | pub async fn remove(live: String, rid: String) -> Result { FILE: crates/gui/src-tauri/src/setup.rs function handler (line 7) | pub fn handler(app: &mut App) -> Result<(), Box> { FILE: crates/gui/src-tauri/src/util.rs constant SEPARATOR (line 7) | const SEPARATOR: &str = "\\"; constant SEPARATOR (line 10) | const SEPARATOR: &str = "/"; function bin_dir (line 12) | pub fn bin_dir() -> String { function play (line 23) | pub fn play(url: &str) -> Result { function test_play (line 42) | async fn test_play() { FILE: crates/gui/src/components/Control.tsx type BarProps (line 43) | interface BarProps { FILE: crates/gui/src/components/GoodItem.tsx type Url (line 5) | interface Url { type GoodItemProps (line 10) | interface GoodItemProps { FILE: crates/gui/src/components/Live.tsx type Url (line 5) | interface Url { type LiveProps (line 10) | interface LiveProps { FILE: crates/gui/src/components/Panel.tsx type LiveProps (line 7) | interface LiveProps { FILE: crates/gui/src/icon/icon.tsx type IconProps (line 1) | interface IconProps { FILE: crates/gui/src/model/Live.tsx type LiveItem (line 1) | interface LiveItem { FILE: crates/gui/src/model/Record.tsx type SubscribeRecord (line 1) | interface SubscribeRecord { FILE: crates/gui/src/model/Resp.tsx type Resp (line 1) | interface Resp { FILE: crates/gui/src/pages/Chart.tsx type Record (line 10) | interface Record { type Subscribe (line 17) | interface Subscribe { FILE: crates/marcos/src/lib.rs function gen_all (line 17) | pub fn gen_all(_: TokenStream) -> TokenStream { function gen_test (line 63) | pub fn gen_test(input: TokenStream) -> TokenStream { FILE: crates/status/src/common.rs constant USER_AGENT (line 5) | pub const USER_AGENT: &str = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ... FILE: crates/status/src/error.rs type Result (line 3) | pub type Result = std::result::Result; type SeamStatusError (line 6) | pub enum SeamStatusError { FILE: crates/status/src/lib.rs type StatusTrait (line 14) | pub trait StatusTrait { method status (line 17) | async fn status(rid: &str) -> Result; FILE: crates/status/src/status/bili.rs type Status (line 4) | pub struct Status; constant URL (line 6) | const URL: &str = "https://api.live.bilibili.com/room/v1/Room/room_init"; method status (line 10) | async fn status(rid: &str) -> Result { function test_status (line 28) | async fn test_status() { FILE: crates/status/src/status/cc.rs type Status (line 4) | pub struct Status; constant URL (line 6) | const URL: &str = "https://cc.163.com/"; method status (line 10) | async fn status(rid: &str) -> Result { function test_status (line 28) | async fn test_status() { FILE: crates/status/src/status/douyin.rs type Status (line 11) | pub struct Status; constant URL (line 13) | const URL: &str = "https://live.douyin.com/"; method status (line 17) | async fn status(rid: &str) -> Result { function test_status (line 49) | async fn test_status() {