Nach Episoden (in Klammern) sortieren
-
Servus,
bei einigen Serien in der ARD Mediathek steht ja die Episodennummer im Titel, z.B. bei Giraffe, Erdmännchen & Co. Leider wird die Serie (bzw andere aus dem Format) nicht immer in der korrekten Reihenfolge ausgestrahlt oder es fehlen Teile.
Hier wäre es hilfreich, wenn man auch nach der im Titel verborgenen Episodennummer (in Klammern) sortieren könnte.
Am einfachsten wäre es wohl, diese beim iterate durch das search result per RFEGEX zu extrahieren und in einer zusätzliche Spalte “Episode” (tooltip=Gefundene mögliche Episodennummer) rechts der Titel-Spalte anzuzeigen
In dem Fall könnte mann dann direkt mit dem eingebauten TableRowSorter arbeiten.Ich habe jetzt nicht auf Github nach der Methode gesucht, also hier ein allgemeiner JAVA Code:
List<String> serien = Arrays.asList( "Die Melone, das unbekannte Wesen (230)", "Raubtierfütterung im Katzendschungel (7)", "Billy bei den Bonobos (115)", "Das Seehundbaby und der Tennisball (159)" ); Pattern pattern = Pattern.compile("\\((\\d+)\\)"); for (String titel : serien) { Matcher matcher = pattern.matcher(titel); if (matcher.find()) { String episodenNummer = matcher.group(1); System.out.println("Gefundene Episodennummer: " + episodenNummer); } else { System.out.println("Keine Episodennummer gefunden in: " + titel); } }
Als Alternative könnte man auch den TableRowSorter für den Titel umschreiben, aber ich denke mal dass würde nur verwirren und man müsste die Funktion dann ja auch aktivierbar/deaktivierbar machen.
Wenn man dann die Episodennummer sowieso schon hat, könnte man beim Download diese auch per Parameter für den Dateinamen verfügbar machen.
Dann könnte man z.b. solche Dateinamen erstellen, wenn dann auch noch die Nummer aus dem Titel automatisch entfernt wird. Hierbei steht%E
dann für die Episodennummer. (nicht getestet ob E schon verwendet wird)%t - E%E - %T.%S
Giraffe, Erdmännchen & Co. - E115 - Billy bei den Bonobos.mp4
-
So etwas vermisse ich auch schon lange. Meiner Meinung nach sollte das einfach sein, wenn man, wenn etwas in Klammern im Titel auftaucht, dies einfach extrahiert und in eine zusätzliche sortierbare Spalte schreibt.
Beispiel:
Thema: Wilsberg
Titel: Blinde Flecken - Der Samstagskrimi (S09/E01)
Zusatzspalte: S09/E01Ein Klick auf die Zusatzspalte sortiert alle Episoden in die richtige Reihenfolge. Dabei ist im Allgemeinen auch egal was genau in den Klammern steht, da die Benennung der Folgen meist innerhalb einer Staffel/Serie konsistent ist.
-
@BugMelder sagte: So etwas vermisse ich auch schon lange.
Nur zur Info für Interessierte: Es gibt wenig elegante Workarounds mit Skripten, wer damit klar kommt.
Es gibt aber auch eine Issue in dieser Richtung in Sache ZDF (die Issue ist war noch offen, aber wenn ich das richtig interpretierte, wurde in dieser Richtung beim ZDF sehr wohl etwas implementiert).@BugMelder sagte: Meiner Meinung nach sollte das einfach sein, wenn man […] in eine zusätzliche sortierbare Spalte schreibt.
Womit die Filmliste noch “schwerer” wird, als sie es jetzt schon ist. Die ganze Filmliste zu sortieren führt jetzt schon manchmal – je nach Konstellation – zu Hängern…
-
In der Zwischenzeit bin ich auch auf die Idee mit dem Skript gekommen. Das erleichtert es die Sendungen in der richtigen Reihenfolge anzusehen. Falls es jemanden interessiert: Es ist ein Powershell-Skript für Windows. Man gibt als Parameter ein Verzeichnis an, in dem die Filme liegen. Entweder werden die Filme nur aufgelistet oder mit Parameter - rename umbenannt. Folgendes Skript einfach in eine Datei “Klammern.ps1” speichern und dann in der Eingabeforderung aufrufen.
# Das Skript verschiebt einen Text in Klammern, der mindestens eine Ziffer enthält, # an den Anfang des Dateinamens hinter das erste Leerzeichen # Aufruf mit: powershell -File Klammern.ps1 -path "Dein Verzeichnis" -rename # -rename ist optional # wird -rename nicht angegeben, wird nur eine Liste der Umbenennungen ausgegeben param ($path, [switch] $rename = $false) Get-ChildItem -Path $path | ForEach-Object { # non greedy matching $x = $_.Name -match '(\([^)]*?\d.*?\))' if ($matches.Count -ge 1) { $klamm = $Matches[1] $x = $_.Name -match '(^.*?\s)' $blank = $Matches[1] $name = $_.Name.Replace($klamm, '') $r = [regex]$blank $name = $r.Replace($name, $blank + $klamm, 1) $name if ($rename) { $pathren = $path + '\' + $_.Name Rename-Item -Path $pathren -NewName $name } } }
-
Ihr vereinfacht das Problem hier doch erheblich.
Es mag sein dass es für ein Thema vermeintlich leicht ist, “einfach” mal die Episode rauszusuchen.Was von allen Schreibern vernachlässigt wird: Die Infos liegen für die verschiednen Themen unterschiedlich vor und das muss alles berücksichtigt werden. So gibt es nach einer kursorischen Suche in der Filmliste folgende Formate:
- (<Nummer>) z.B. Rote Rosen (1099)
- (<Jahr>) z.B. Das ewig Böse (2006)
- (<Datum>) z.B. Sportarena am Sonntag (20.04.2006)
- 100 Jahre Polizei (2) - Nationalsozialismus -> was soll das dann sein?
- (S<Jahr>/E<Nr>) z.B. Sündenbabel Berlin: Utopie und Untergang (S2018/E03)
- (S<Nr>/E<Nr>) z.B. Das erste Mal Strand (S20/E65)
Wie unterscheide ich (Nummer) von (Jahr), ist das eine Episode oder Season? Ist Datum eine Episode oder Season? Was wenn die Klammer nicht am Ende steht sondern wie im Beispiel mittendrin?
Somit kann man allgemein nur (Sx/Ex) auslesen - und der TE ist gekniffen.
Natürlich kann man das ganze dann regelbasiert aufbauen um eine Zuordung für jeden Film zu erzeugen. Jede Regel wird auf jeden Film in der Liste angewendet. Wie @styroll schon treffend angemerkt hat wird MV für die meisten Nutzer dadurch nicht schneller - und ich gehe davon aus dass auch nur ein kleiner Prozentsatz der Nutzer dieses Feature überhaupt benötigt.Wenn jemand eine elegante schnelle Java-Lösung findet bin ich durchaus gewillt dies als optionales Feature zur Verfügung zu stellen.
-
Ja, ich weiß, dass es keine Lösung für alle möglichen Fälle ist, aber mir genügt es bereits, wenn es innerhalb eines Themas für mich funktioniert. Entweder nach einzelnen Folgen zu suchen oder in richtiger Reihenfolge anzuschauen.
Das Skript enthält noch einen Fehler. Ich kann das oben aber nicht mehr korrigieren.
-
@BugMelder Ich bezog mich nicht auf das script, dazu hat styroll schon vorher mal entsprechende Verweise gemacht dass andere User dies schon länger so lösen, sondern auf deinen Post #2 bzw. den TE Post bzgl. programminterner Sortierung. Was ihr mit externen Skripts macht ist MV herzlich egal, wenn ich es intern implementieren soll sollte es schon einen benefit für viele bringen und dann auch möglichst viel abdecken ohne nur Ballast darzustellen.