Restfulapi-Plugin

  • Hi,


    mal eine kleine Frage zum Plugin, wird eigentlich das JSON Format unterstützt oder gibt es da irgendwelche Besonderheiten die der Installation beachtet werden müssen.
    Ich frage weil die Abfrage im XML Format funktioniert, aber bei Abfragen im JSON Format schmeißt das Plugin eine SEGFault ...


    localhost:8002/timers.json



    MfG,
    Andreas

  • Moin,


    Ich meine, eine bestimmte Version der cxxtools hatte da ein Problem.
    Wenn du Ubuntu benutzt, dann probiere die aus dem yavdr main PPA, ansonsten eine möglichst aktuelle. Bin mir gerade nicht sicher, welche Version betroffen war. Es gibt da aber einen Bug in den cxxtools, das weiß ich noch.


    Lars

  • Ich hatte schon so etwas befürchtet.


    Ein Upgrade des genannten Paket von debian wheezy auf debian sid hat geholfen...
    alt
    ii libcxxtools8 2.1.1-1 i386 library of unrelated but useful C++ classes
    ii libcxxtools-dev 2.1.1-1 i386 library of unrelated but useful C++ classes
    neu:
    ii libcxxtools-dev 2.2-1 i386 library of unrelated but useful C++ classes
    ii libcxxtools9 2.2-1 i386 library of unrelated but useful C++ classes


    Danke, das war's,
    Andreas

  • Zur Versionsnummern-Diskussion sage ich später noch was, wollte kurz einen neuen Bugfix vermelden:


    fixed: property stop_timestamp of a timer contained wrong date in case the timer went on over midnight
    https://github.com/yavdr/vdr-p…9ea429d6aef00b501560a82a3


    Weil's so heiß ist, habe ich zuviel committed und ein zweiter Commit räumt das wieder auf...


    arrgh - committed unfinished code by accident together with bugifx
    https://github.com/yavdr/vdr-p…2fb6491bee36616fc86a7277d



    Gruß
    hepi

  • Moin,


    Habe auch bemerkt dass auch sonst noch ein paar Versionskonstanten eingebaut sind, die Version vom info.xml kann man z.B. komplett ignorieren :-).


    Ok, dann bleibt das bei mir einfach auf 0.0.2 :)



    API.html habe ich angepasst und die Ausgabe der info.xxx beim replaying ergänzt:


    Code
    <video name="TRON: Legacy">
    /srv/vdr/video.00/TRON:_Legacy/2013-06-24.02.12.5-0.rec
    </video>
    <replay_mode>playing</replay_mode>
    <current_frame>235095</current_frame>
    <total_frames>340928</total_frames>
    <is_pes_recording>false</is_pes_recording>
    <frames_per_second>50</frames_per_second>
    <recording>false</recording>
    <diskspace>1405400MB 151446MB 89%</diskspace>



    hepi
    deine Bugfixes habe ich auch übernommen, den letzten habe ich noch in den xml Teil kopiert
    https://github.com/Saman-VDR/v…9cb614e20bd0466ee45f24173
    und dann einen pull request abgeschickt.


    Gruß S.


  • hepi
    deine Bugfixes habe ich auch übernommen, den letzten habe ich noch in den xml Teil kopiert
    https://github.com/Saman-VDR/v…9cb614e20bd0466ee45f24173
    und dann einen pull request abgeschickt.


    Danke Dir für Deine Arbeit! Ich werde bei Gelegenheit drüberschauen, der Pull-Request beinhaltet eine Menge Code zum Reviewen, also bitte nicht persönlich nehmen, wenn es dauert. Deshalb versuche ich, nur Drei-Zeilen-Fixes zu machen. ;)


    Viele Grüße
    hepi

  • Hallo hepi,


    nur kein Stress! Es würde mich aber interessieren, ob du mit dem Audio Service was anfangen kannst. Bei mir (tcpRemote) deckt der so alles ab, was ich brauche.


    Gruß S.

  • Merker für mich: BUG: Wenn man direkt nach dem Boot bzw. Start des VDR die Timerliste abruft über timers.json, sind alle event_id's aller Timer auf Wert -1. Erst beim nächsten Request sind die Werte sinnvoll gefüllt. (Prüfen, ob dies mit dem Zeitpunkt des Requests zusammenhängt oder ob der erste Request immer eine kaputte Response liefert).


    Gruß
    hepi

  • Sind dir die Post-Its ausgegangen? :P :D ...duckundwech...



    MegaX

    Gruß MegaX


  • Moin,


    anbei ein erster Test mit dem tvscraper-service.


    Dateien

  • Da mir meine Version des Plugins beim letzten yaVDR upgrade mal wieder überschrieben wurde, habe ich es mir jetzt so eingerichtet:


    Repository:


    Plugin:


    Die Versions-Nummer ist natürlich inoffiziell.
    Wie kennzeichnet man einen Fork eigentlich, damit die Versionen parallel angeboten werden können?

  • Wieso machst du nicht ein eigenes PPA bei Launchpad auf mit einer Abhängigkeit auf das passende yaVDR-vdr-PPA (für vdr-dev) und setzt die Priorität per apt-pinning höher?


    Lars.

  • Moin Lars,
    ein PPA bei Launchpad habe ich dafür schon eingerichtet. Jetzt muss ich mich noch mal einlesen, wie das mit den Schlüsseln funktioniert.
    Das mit dem apt-pinning ist schon mal eine gute Idee. Das sollte ja sicherstellen, das die richtige Version installiert wird.
    In diesem speziellen Fall, mit dem restfulapi-plugin, sind neben jeder Menge Fixes aber auch neue Funktionen dazu gekommen.
    IHMO sollte das auch deutlich werden. Darum die Frage nach der Kennzeichnung.

  • Moin,


    scraper für restfulapi auf dem git.


  • Moin Louis,


    das habe ich auch aus dem ersten Patch für den tvscraper.
    Da der Begriff so treffend ist und da ich weiter unten noch ein alles umschliessendes if wollte, habe ich es einfach drinn gelassen.


    Nun schau ich erstmal, was die services ausser banner und cover noch so abliefern ...

    2 Mal editiert, zuletzt von Saman ()


  • das habe ich auch aus dem ersten Patch für den tvscraper.
    Da der Begriff so treffend ist und da ich weiter unten noch ein alles umschliessendes if wollte, habe ich es einfach drinn gelassen.


    Ahso ok...btw: mich nervt es schon, dass die Services für die beiden Plugins unterschiedlich sind. Es kam die Idee auf, die ich auch für sehr sinnvoll erachte, die API vom tvscraper mit der vom scraper2vdr zu ersetzen. Die scraper2vdr API ist quasi eine Obermenge der tvscraper API und meiner Ansicht nach auch schöner aufgebaut, man lernt ja mit der Zeit dazu ;) Aber irgenwie scheue ich noch den Aufwand, den tvscraper für die Fans der schlanken Lösung noch mal anzufassen..ich benutze ihn nicht mehr. Auf er anderen Seite wäre es schon sehr schön, wenn ich in nopacity und tvguide nur eine API ansprechen müsste, das würde den Code wesentlich übersichtlicher machen.


    Nun schau ich erstmal, was die services ausser banner und cover noch so abliefern ...


    So einiges...insbesondere auch viele Textinfos zu den Filmen und Serien, insb. bei Serien auch zu den einzelnen Episoden, das gab es im tvscraper nicht.


    Ciao Louis

  • Moin,


    ich habe meinen Fork mit den letzten Änderungen aus dem yaVDR-Master aktualisiert,
    und für die scraper2vdr Erweiterung einen neuen Branch eröffnet: additional-media


    zZ gibt es poster, banner und fanart für events und recordings
    dazu bei den recordings für Filme noch actors, overview, genre usw.
    Der Rest kommt dann nach und nach...


    EDIT: more xml


    http://vdr:8002/recordings/242.xml


    und für einen Event:

    Einmal editiert, zuletzt von Saman ()

  • Hallo,


    ich versuch mich gerade ein wenig daran, die timers.cpp zu debuggen, scheitere aber schon an den simpelsten Dingen.


    Ich möchte erreichen , das ich andere Flags als 1 und 0 setzen kann, was IMO nicht funktioniert, weil entweder die Methode TimerValues::ConvertFlags oder TimerValues::IsFlagsValid nicht so funktioniert wie erwartet.


    Was nicht klappen will ist z.B. esyslog zu verwenden:

    Code
    esyslog('Flag is: %i', v)

    und schwupps wirft der Compiler das ich einen int nicht in einen const char wandeln kann.

    Oder

    Code
    int TimerValues::ConvertFlags(string v)
    {
      return StringExtension::strtoi(v);
    }

    ->

    Code
    int TimerValues::ConvertFlags(string v)
    {
      if (v == '1') return 1;
    
    
      return StringExtension::strtoi(v);
    }


    endet dann so:


    Könnt ihr mir da mal auf die Sprünge helfen?

    Grüße


    Hannemann

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!