update main.rs
This commit is contained in:
50
src/main.rs
50
src/main.rs
@@ -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(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user