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
fn main() {
println!("Hello, world!");
fn main() -> XResult<()> {
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 uri = u.parse::<Uri>().unwrap();
println!("{}", uri);
println!("{:?}", uri.scheme());
println!("{:?}", uri.scheme_str());
println!("{:?}", uri.authority());
println!("{:?}", uri.host());
println!("{:?}", uri.port());
println!("{:?}", uri.path());
println!("{:?}", uri.query());
println!("{:?}", uri.path_and_query());
println!("{:?}", uri.path().split('/').collect::<Vec<_>>());
let mut v = uri.path().split('/').collect::<Vec<_>>();
if !v.is_empty() {
let l = v.len()-1;
v[l]="xxxxx";
let parsed = parse_playlist_res(test_f_content.as_bytes());
match parsed {
Ok(Playlist::MasterPlaylist(_pl)) => { //println!("Master playlist:\n{:?}", pl),
println!("Master play list not supported!");
return Ok(());
},
Ok(Playlist::MediaPlaylist(pl)) => { //println!("Media playlist:\n{:?}", pl),
println!("Version: {}", pl.version);
println!("Duration: {}", pl.target_duration);
println!("Media sequence: {}", pl.media_sequence);
println!("Discontinueity sequence: {}", pl.discontinuity_sequence);
println!("Play list type: {:?}", pl.playlist_type);
println!("I frames only: {}", pl.i_frames_only);
println!("Start: {:?}", pl.start);
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();
Ok(())
}