Jump to content

MediaServer API SQLite query: Columns [recordedlist]


Siox

Recommended Posts

Ich habe mir gerade die Tabelle [recordedList] angeschaut und werde aus den Spalten nicht so recht schlau.

Was geben denn die beiden Spalten DateAdded und Duration an. Oder besser gefragt: Wie berechnet man aus diesen Spalten für Menschen korrekte Werte?

 

<?xml version="1.0" encoding="utf-8" ?>
<table>
  <row>
    <IDRECORD>1</IDRECORD>
    <CHANNEL>Phoenix</CHANNEL>
    <DATEADDED>3521261849728</DATEADDED>
    <DURATION>5400000</DURATION>
    <TITLE>Verzockt, verloren, verstaatlicht ...</TITLE>
    <INFO>Was kostet uns die Hypo Real Estate?</INFO>
  </row>
  <row>
    <IDRECORD>2</IDRECORD>
    <CHANNEL>ZDF HD</CHANNEL>
    <DATEADDED>3521261849868</DATEADDED>
    <DURATION>6300000</DURATION>
    <TITLE>Terra X</TITLE>
    <INFO>Superbauten - Schloss Neuschwanstein</INFO>
  </row>
  <row>
    <IDRECORD>3</IDRECORD>
    <CHANNEL>Phoenix</CHANNEL>
    <DATEADDED>3521261849931</DATEADDED>
    <DURATION>44100000</DURATION>
    <TITLE>VOR ORT</TITLE>
    <INFO></INFO>
  </row>
</table>

 

Link to comment

DateAdded ist die Anzahl Millisekunden seit dem 30.12.1899 (d.h. 0 = 30.12.1899 00.00 Uhr).

 

Duration ist die Dauer in Millisekunden. Der Wert bei der dritten Aufnahme (44100000 = 735 Minuten, mehr als 12 Stunden) kommt mir allerdings recht groß vor. Kann das sein?

 

Wie auch immer: Ich würde nicht viel Zeit in die Tabelle recordedlist (AKA Aufnahme-Historie) investieren, das sie ab dem nächsten DMS Release durch ein neues System abgelöst wird. Sie wird zwar aus Kompatibilitätsgründen noch in der DB verbleiben, aber nicht mehr mit neuen Einträgen bestückt.

Link to comment

Ja das mit 12h kann schon fast hinkommen. Phoenix vor Ort ist nicht immer Zeitgenau. Und eigentlich nimmt man sowas nur auf, wenn wirklich was los ist.

Eine andere Frage: Das Datenbankdiagramm habe ich aus diesem Post: Klick. Sollte man da aktuell generell die Finger von lassen, oder betrifft das nur einige Datenbanken/Tabellen?

Edited by Siox
Link to comment
On 22.1.2018 at 3:55 PM, Siox said:

Sollte man da aktuell generell die Finger von lassen?

 

Du meinst die Datenbanken generell? Eigentlich nicht. Speziell bei der Aufnahmedatenbank wird es im nächsten Release die besagte Änderung geben, d.h. die Tabelle recordedlist wird an Bedeutung verlieren. In anderen Tabellen gibt es zur Zeit nur (kompatible) Ergänzungen, also zusätzliche hinten angehängte Spalten.

 

Allerdings kann ich nicht ausschließen, dass es in Zukunft zu einer allgemeinen größeren Umstrukturierung der Datenbanken kommt. Wer dann in Skripten oder Add-Ons direkt auf die Tabellen zugreift, wird Anpassungen vornehmen müssen.

 

BTW: Wenn du dich weiter mit den DBs befassen willst, ist der SQLite Browser empfehlenswert, mit dem du die .db3-Dateien im Konfigurationsordner\Database öffnen und die Strukturen und den Inhalt anzeigen lassen kannst.

 

Link to comment

Hallo Griga,

 

danke für deine Antwort. Da Software immer lebt, ist mit Änderungen zu rechnen. Ich hatte mir die historischen Aufnahmen nur deswegen vorgenommen, weil es für mich am leichtesten schien. Quasi zum reintasten über die sql.html.

 

Das ich um den SQLite Browser nicht herumkomme ist mir schon klar. Aktuell geht es mir vordergründig auch nur um die Aufnahmen, später um alle (Media)Bibliotheken. Denn ich erkenne richtig Potential die Daten (im eigenen Heim) einzusetzen. Da sich meine Arbeit aber noch in den Kinderschuhen befindet, möchte ich darauf aktuell nicht weiter eingehen.

 

Danke für deine Hilfe, hat mir sehr geholfen. B) Ich stelle die Arbeit mit den historischen Aufnahmen erst einmal nach hinten.

Link to comment
Am 21.1.2018 um 18:46 schrieb Siox:

<DURATION>5400000</DURATION>

540000 / 1000 ==> 5400 Sekunden

5400 Sekunden / 60 ==> 90 Minuten

90 Minuten /60 ==> 1,5 Stunden

 

Jetzt wirds komplizierter:

Der Wert DATEADDED bezieht sich auf das Referenzdatum 31.12.1899 0:00 Uhr.

Unten eine Konverterfunktion in C#.

<DATEADDED>3521261849728</DATEADDED>
private static DateTime DelphiTimeStampToDateTime(long delphiTimeStamp)
    {
        System.DateTime dtDateTime = new DateTime(1899, 12, 31, 0, 0, 0, 0, System.DateTimeKind.Utc);
        dtDateTime = dtDateTime.AddMilliseconds(delphiTimeStamp);
        return dtDateTime;
    }

 

Edited by janee
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...