Reformat code
This commit is contained in:
@@ -4,10 +4,16 @@ pub type Login<'a> = Option<(&'a str, &'a str)>;
|
||||
|
||||
pub static ALIASES: &[(&str, CatalogDefinition)] = &[
|
||||
("DS_WS1617", ("16w-diskrete-strukturen", None)),
|
||||
("EIDI_WS1617", ("eidi1-2016", Some(("eidi-2016", "PGdP.16")))),
|
||||
(
|
||||
"EIDI_WS1617",
|
||||
("eidi1-2016", Some(("eidi-2016", "PGdP.16"))),
|
||||
),
|
||||
("ERA_WS1617", ("era-2016", None)),
|
||||
|
||||
("GAD_SS17", ("17s-grundlagen-algorithmen-und-datenstrukturen", None)),
|
||||
(
|
||||
"GAD_SS17",
|
||||
("17s-grundlagen-algorithmen-und-datenstrukturen", None),
|
||||
),
|
||||
("LA_SS17", ("17s-lineare-algebra-fuer-informatik", None)),
|
||||
// EIST is on a Nextcloud
|
||||
];
|
||||
|
31
src/main.rs
31
src/main.rs
@@ -58,8 +58,8 @@ fn main() {
|
||||
Arg::with_name("CATALOG_NAME")
|
||||
.help(
|
||||
"name of the catalog e.g. from the URL:\n\
|
||||
https://streams.tum.de/Mediasite/Catalog/catalogs/era-2016 -> era-2016\n\
|
||||
special cases (WS16/17; login included): DS, EIDI, ERA, ...",
|
||||
https://streams.tum.de/Mediasite/Catalog/catalogs/era-2016 -> era-2016\n\
|
||||
special cases (WS16/17; login included): DS, EIDI, ERA, ...",
|
||||
)
|
||||
.required(true)
|
||||
.index(1),
|
||||
@@ -144,10 +144,12 @@ fn get_auth() {
|
||||
|
||||
let res = try_to_get_valid_response(
|
||||
|client| {
|
||||
let mut request_builder = client.post("https://streams.tum.de/Mediasite/Login").unwrap();
|
||||
request_builder.form(
|
||||
&form_data,
|
||||
).expect("Failed to serialize form_data!");
|
||||
let mut request_builder = client
|
||||
.post("https://streams.tum.de/Mediasite/Login")
|
||||
.unwrap();
|
||||
request_builder
|
||||
.form(&form_data)
|
||||
.expect("Failed to serialize form_data!");
|
||||
request_builder
|
||||
},
|
||||
|res| res.headers().get::<SetCookie>().is_some(),
|
||||
@@ -218,7 +220,7 @@ fn get_catalog_id(name: &str) -> String {
|
||||
let prefix = "CatalogId: '";
|
||||
let idx = body.find(prefix).expect(
|
||||
"Failed to find CatalogId on the catalog page! Perhaps you got the wrong catalog \
|
||||
name or an invalid login? Maybe you need to open the page in a browser once...",
|
||||
name or an invalid login? Maybe you need to open the page in a browser once...",
|
||||
);
|
||||
let pre_len = prefix.len();
|
||||
// Assuming all catalog ids follow this pattern!
|
||||
@@ -251,9 +253,12 @@ fn get_json(catalog_id: &str) -> String {
|
||||
let mut request_builder = client
|
||||
.post(
|
||||
"https://streams.tum.de/Mediasite/Catalog/Data/GetPresentationsForFolder",
|
||||
).unwrap();
|
||||
request_builder.header(construct_cookie())
|
||||
.json(&data).expect("Failed to serialize json!");
|
||||
)
|
||||
.unwrap();
|
||||
request_builder
|
||||
.header(construct_cookie())
|
||||
.json(&data)
|
||||
.expect("Failed to serialize json!");
|
||||
request_builder
|
||||
});
|
||||
read_response_body(&mut res)
|
||||
@@ -302,8 +307,8 @@ where
|
||||
|
||||
fn read_response_body(response: &mut Response) -> String {
|
||||
let mut string = String::new();
|
||||
response.read_to_string(&mut string).expect(
|
||||
"Failed to read body",
|
||||
);
|
||||
response
|
||||
.read_to_string(&mut string)
|
||||
.expect("Failed to read body");
|
||||
string
|
||||
}
|
||||
|
@@ -56,7 +56,9 @@ impl Presentation {
|
||||
}
|
||||
|
||||
match *self {
|
||||
Presentation::PublishToGo { ref download_url, .. } => {
|
||||
Presentation::PublishToGo {
|
||||
ref download_url, ..
|
||||
} => {
|
||||
let response_res = try_to_get_valid_response(
|
||||
|client| {
|
||||
let mut request_builder = client.get(download_url).unwrap();
|
||||
@@ -82,9 +84,10 @@ impl Presentation {
|
||||
match *param {
|
||||
DispositionParam::Filename(ref charset, _, ref vec) => {
|
||||
assert_eq!(&Charset::Ext("UTF-8".to_string()), charset);
|
||||
name = Some(String::from_utf8(vec.to_vec()).expect(
|
||||
"Suggested filename isn't valid UTF-8!",
|
||||
));
|
||||
name = Some(
|
||||
String::from_utf8(vec.to_vec())
|
||||
.expect("Suggested filename isn't valid UTF-8!"),
|
||||
);
|
||||
}
|
||||
_ => continue,
|
||||
}
|
||||
@@ -106,9 +109,9 @@ impl Presentation {
|
||||
let videos = {
|
||||
let payload = format!(
|
||||
"{{\"getPlayerOptionsRequest\":{{\
|
||||
\"ResourceId\":\"{}\",\
|
||||
\"QueryString\":\"{}\"\
|
||||
}}}}",
|
||||
\"ResourceId\":\"{}\",\
|
||||
\"QueryString\":\"{}\"\
|
||||
}}}}",
|
||||
resource_id,
|
||||
query_string
|
||||
);
|
||||
@@ -117,9 +120,10 @@ impl Presentation {
|
||||
PlayerService.svc/json/GetPlayerOptions";
|
||||
let mut res = try_to_get_response(|client| {
|
||||
let mut request_builder = client.post(url).unwrap();
|
||||
request_builder.header(construct_cookie())
|
||||
.header(ContentType::json())
|
||||
.body(payload.to_string());
|
||||
request_builder
|
||||
.header(construct_cookie())
|
||||
.header(ContentType::json())
|
||||
.body(payload.to_string());
|
||||
request_builder
|
||||
});
|
||||
|
||||
@@ -170,9 +174,10 @@ impl<'a> From<&'a JsonValue> for Presentation {
|
||||
if json["DownloadUrls"].len() >= 1 {
|
||||
assert_eq!(json["DownloadUrls"].len(), 1);
|
||||
Presentation::PublishToGo {
|
||||
name: json["Name"].clone().take_string().expect(
|
||||
"json: Presentation didn't contain a \"Name\"!",
|
||||
),
|
||||
name: json["Name"]
|
||||
.clone()
|
||||
.take_string()
|
||||
.expect("json: Presentation didn't contain a \"Name\"!"),
|
||||
download_url: json["DownloadUrls"][0]["Url"]
|
||||
.clone()
|
||||
.take_string()
|
||||
@@ -187,9 +192,10 @@ impl<'a> From<&'a JsonValue> for Presentation {
|
||||
let index_start_resource = index - "cdf23465581b45aa92d588ebd59619d91d".len();
|
||||
|
||||
Presentation::VideoOnDemand {
|
||||
name: json["Name"].clone().take_string().expect(
|
||||
"json: Presentation didn't contain a \"Name\"!",
|
||||
),
|
||||
name: json["Name"]
|
||||
.clone()
|
||||
.take_string()
|
||||
.expect("json: Presentation didn't contain a \"Name\"!"),
|
||||
query_string: player_url[index..index_end_query].to_string(),
|
||||
resource_id: player_url[index_start_resource..index].to_string(),
|
||||
}
|
||||
@@ -215,9 +221,8 @@ fn download_to_file(response: &mut Response, path: &Path) -> Result<(), io::Erro
|
||||
Err(e) => return Err(e),
|
||||
};
|
||||
|
||||
file.write_all(&buf[0..len]).expect(
|
||||
"Failed writing into the file!",
|
||||
);
|
||||
file.write_all(&buf[0..len])
|
||||
.expect("Failed writing into the file!");
|
||||
done += len;
|
||||
|
||||
let now = Instant::now();
|
||||
@@ -227,9 +232,9 @@ fn download_to_file(response: &mut Response, path: &Path) -> Result<(), io::Erro
|
||||
2,
|
||||
done as f64 * 1000.0 / update_duration_millis as f64 / 1024.0
|
||||
);
|
||||
::std::io::stdout().flush().expect(
|
||||
"Failed flushing the terminal!",
|
||||
);
|
||||
::std::io::stdout()
|
||||
.flush()
|
||||
.expect("Failed flushing the terminal!");
|
||||
last = now;
|
||||
done = 0;
|
||||
}
|
||||
@@ -276,7 +281,7 @@ fn check_video(path: &Path) -> bool {
|
||||
Err(_) => {
|
||||
println!(
|
||||
"Failed to check {} with ffmpeg. Perhaps ffmpeg isn't in your path. \
|
||||
Skipping check...",
|
||||
Skipping check...",
|
||||
path.display()
|
||||
);
|
||||
true
|
||||
|
Reference in New Issue
Block a user