Den Weg der App einmal ganz abgehen
Die App schickt keine Codec-Listen; dann nimmt der Server Apples Profil. Das führt zu einer anderen Entscheidung als beim Browser — dort wird umgerechnet, hier umgepackt — und damit auf einen Weg, den keine Prüfung abging. Jetzt schon: bestellen, Hauptliste, Medienliste, erstes Stück. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
6e503d63de
commit
6ef84b47cf
@@ -558,4 +558,40 @@ public class StreamTests
|
||||
Assume.That(strom.Method, Is.EqualTo("direct"));
|
||||
Assert.That(strom.MasterUrl, Is.Null);
|
||||
}
|
||||
|
||||
/// <summary>Was die App bestellt, lässt sich auch abholen.</summary>
|
||||
///
|
||||
/// <remarks>
|
||||
/// <b>Die App schickt keine Codec-Listen</b> — dann nimmt der Server
|
||||
/// Apples Profil, und das ist hier richtig: dieses Gerät ist Apple. Der
|
||||
/// Weg danach ist aber ein anderer als der des Browsers, und genau dort
|
||||
/// kam eine 500 heraus. Diese Prüfung geht ihn ganz ab: bestellen,
|
||||
/// Hauptliste holen, Medienliste holen, erstes Stück holen.
|
||||
/// </remarks>
|
||||
[Test]
|
||||
public async Task Der_Weg_der_App_fuehrt_bis_zum_ersten_Stueck()
|
||||
{
|
||||
FilmMitUntertitel("Wie die App (2020)");
|
||||
var (client, datei) = await Eingelesen();
|
||||
|
||||
var strom = await Strom(client, datei.Id, new StreamRequest(
|
||||
Containers: null, VideoCodecs: null, AudioCodecs: null, StartSeconds: 0));
|
||||
|
||||
Assert.That(strom.MasterUrl, Is.Not.Null, "Eine MKV ist für Apple nichts zum Durchreichen.");
|
||||
|
||||
var haupt = await client.GetAsync(strom.MasterUrl!);
|
||||
Assert.That(haupt.StatusCode, Is.EqualTo(HttpStatusCode.OK),
|
||||
await haupt.Content.ReadAsStringAsync());
|
||||
|
||||
var medien = await client.GetAsync(strom.Url);
|
||||
Assert.That(medien.StatusCode, Is.EqualTo(HttpStatusCode.OK),
|
||||
await medien.Content.ReadAsStringAsync());
|
||||
|
||||
var liste = await medien.Content.ReadAsStringAsync();
|
||||
var stueck = liste.Split('\n').FirstOrDefault(z => z.Length > 0 && !z.StartsWith('#'));
|
||||
Assert.That(stueck, Is.Not.Null, liste);
|
||||
|
||||
var teil = await client.GetAsync($"/api/v1/stream/{strom.SessionId}/{stueck}");
|
||||
Assert.That(teil.StatusCode, Is.EqualTo(HttpStatusCode.OK));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user