update main.rs

This commit is contained in:
2020-01-25 15:47:28 +08:00
parent d0faaeb15e
commit 55b0cfad6f

View File

@@ -1,27 +1,37 @@
use http::Uri; use rust_util::*;
use m3u8_rs::*;
use m3u8_rs::playlist::Playlist;
// https://github.com/rutgersc/m3u8-rs/blob/master/examples/simple.rs // https://github.com/rutgersc/m3u8-rs/blob/master/examples/simple.rs
fn main() { fn main() -> XResult<()> {
println!("Hello, world!"); let test_fn = "/Users/hatterjiang/m/vod";
let test_f_content = std::fs::read_to_string(test_fn)?;
let u = "https://a:d@hatter.ink:443/aaa/bbb/cccc?aa=1#dd"; let parsed = parse_playlist_res(test_f_content.as_bytes());
let uri = u.parse::<Uri>().unwrap();
println!("{}", uri); match parsed {
println!("{:?}", uri.scheme()); Ok(Playlist::MasterPlaylist(_pl)) => { //println!("Master playlist:\n{:?}", pl),
println!("{:?}", uri.scheme_str()); println!("Master play list not supported!");
println!("{:?}", uri.authority()); return Ok(());
println!("{:?}", uri.host()); },
println!("{:?}", uri.port()); Ok(Playlist::MediaPlaylist(pl)) => { //println!("Media playlist:\n{:?}", pl),
println!("{:?}", uri.path()); println!("Version: {}", pl.version);
println!("{:?}", uri.query()); println!("Duration: {}", pl.target_duration);
println!("{:?}", uri.path_and_query()); println!("Media sequence: {}", pl.media_sequence);
println!("{:?}", uri.path().split('/').collect::<Vec<_>>()); println!("Discontinueity sequence: {}", pl.discontinuity_sequence);
let mut v = uri.path().split('/').collect::<Vec<_>>(); println!("Play list type: {:?}", pl.playlist_type);
if !v.is_empty() { println!("I frames only: {}", pl.i_frames_only);
let l = v.len()-1; println!("Start: {:?}", pl.start);
v[l]="xxxxx"; println!("Independent segments: {}", pl.independent_segments);
println!("End list: {}", pl.end_list);
for _s in pl.segments {
// println!("{:?}", s);
}
},
Err(e) => println!("Error: {:?}", e)
} }
println!("{:?}", v.join("/"));
// make_url("", "").ok(); // make_url("", "").ok();
Ok(())
} }