Ja sind ja 3 widgets, und durch die vielen Filme die angezeigt wurden, und Schauspieler und Serien, ergab sich das
Aber konnte es pro widget auf sexy 800 Zeilen verkleinern.
Ja sind ja 3 widgets, und durch die vielen Filme die angezeigt wurden, und Schauspieler und Serien, ergab sich das
Aber konnte es pro widget auf sexy 800 Zeilen verkleinern.
Ich habe gestern erstmal festgestellt das es in openhab3 ne tolle Funktion gibt die oh-repeater heisst, daraufhin habe ich alles überarbeitet. Nun habe ich insgesamt über 4000 Zeilen Code im widget eingespart. Das war ziemlich wichtig damit das Ding mal schlanker wird.
Wir können da gerne am Freitag anfangen, vorher ist es etwas eng bei mir.,dann würde ich dir eine pm schreiben, mit allen nötigen rules, items und den widgets.
Ich denke da muss ich auch einwenig zu erklären.
Noch nicht, ich bastel da noch dran rum. Aber wenn dann kann ich dir gerne bescheid sagen. Ist aber dann einwenig Vorarbeit nötig um das grundgerüst aufzubauen.
Da ich das kodi binding nicht mehr nutze, aber wenn dich das nicht abschreckt kann ich mich gerne melden wenn es fertig ist
Nö! :-)Wieso?
Schneller, zuverlässiger, 4k, läuft immer muss nicht ständig angepasst werden wegen Änderungen seitens Amazon.
Nur um vier wirklich wichtige Gründe zu nennen.
Wenn ich was über Amazon gucken will soll das auch laufen und nicht ständig aussetzer haben oder Updates benötigen.
Nichts gegen den maintainer hier der leistet super Arbeit.
Update ist raus, welches zumindest den URL-Error behebt.
Wegen des Login-Problems gucke ich Montag.
Jetzt lädt er sich zu Tode beim Starten des addons.
Edit
Nein er lädt nur sehr lange. Dann geht's aber.
Jetzt sollte es gehen.
Coole Sache, was nervt:
Um dein Video zu sehen musste ich tatsächlich gerade mein alter bei Youtube verifizieren lassen
Keine Ahnung warum der das will.
Jo ist nen riesen Ding geworden, nutze ja das kodi binding nicht mehr sondern hole mir alles selber per json, da das zuverlässiger ist und weitaus mehr Optionen bietet.
Aber sind mittlerweile knapp 4000 Zeilen Code, in rules, dem widget. Aber läuft super und vorallem schnell und zuverlässig
Hier mal ein kleines Video.
Jetzt kann man auch auf die Schauspieler klicken und man kriegt die Filme / Serien der Schauspieler angezeigt.
Von dort aus können die Filme direkt gestartet werden, Serien abgespielt oder geöffnet werden.
Hmm man kann die wohl nicht so einbinden das das video abgespielt wird.
Hier auf Youtube
Dort gibt es unter pvr das zattoo Addon von rhbuelma.
Das kann nicht sein...hast du mal im Addon unter:
Einstellungen
Verbindung
Zugangsdaten und Cookie entfernen = angeklicktdann raus aus Kodi
Kodi im Hintergrund die App gelöscht auf der Shield
und dann wieder rein in Kodi... sowie das Amazon VOD Addon neu gestartet...alsauch deine Amazon Daten neu eingegeben?
Oder das Amazon Addon komplett gelöscht und wieder neu installiert...zwischendurch Kodi raus und wieder neu rein in Kodi?
Jap geht wieder, musste mich neu einloggen.
Danke
weisst du wie man die schauspieler + Bilder abrufen kann?
ich finde im Wiki Video.Cast, aber ich weiss nicht genau wie der aufruf aussehen muss?!
In Version 0.9.2 ist der Fehler mit der watch list unter Android weiterhin vorhanden. Es hat sich nix geändert
Hab das vor einer Weile auch gefragt (bzgl. des langsamen Scrapens). Ich verlink mal die Antwort
Ember Media Manager 1.9.x - Diskussionsthread
Wobei ich sagen muss, dass es am nächsten Tag plötzlich viel schneller ging, ohne dass ich etwas verändert hatte. Hängt also vielleicht auch von deiner Internetverbindung und der Auslastung der Server ab? Keine Ahnung
Ja mir ist das zu lang das macht keinen Sinn. Habe den Media Elch benutzt dort geht es 100 mal schneller.
moin
ist das eigentlich normal das der hier stunden brauch um filme zu scrapen? und zwar sind es 765 Filme, er hat aber erst 40 stück geschafft und ist seit 3 std zugange. Das Betriebssystem ist win10 und die freigaben sind per SMB.
Ember 1.5.0 x64
edit
ohje da habe ich aber eine alte version installiert, ich packe mal die neue drauf.
wie kriege ich denn clearlogo usw mit rein? das ist aktiviert in den einstellungen?!
1. Welche Hardware ist dafür vorhanden
2. Welches Betriebssystem ist vorhanden
3. Welche Kodi Version ist vorhandenEinfach über zum Beispiel deinen PC und den normalen Browser einloggen bei Amazon...dann zu den Prime Filmen und Serien reingehen/wechseln und mal einen Film ...oder eine Serie in die Watchlist setzen...oder sind dort schon Einträge vorhanden?
Shield 2019
Andoird
Kodi 19
Ich nutze aber inputstream da ich nicht möchte das er die original app startet.
Jap es sind bereits Einträge in meiner Liste.
Ich habe mir das Addon aus der sandman97 repo geladen, mich mit meinen Daten eingeloggt. Das geht auch. Doch sobald ich auf watch list klicke sagt er ich solle mich erneut anmelden.
Im ersten Post steht was davon das man sich dann am Browser einloggen soll. Wie genau muss ich das machen?
Danke
Wer kodi 19 benutz ist selber schuld. Mal ein Jahr warten...
So ein Quatsch. Kodi 19 ist Final.
hier die Lösung, dank der hilfe im openhab forum.
var Number hours = Float::parseFloat(transform("JSONPATH", "$.result.time['hours']", json_time))
var Number minutes = Float::parseFloat(transform("JSONPATH", "$.result.time['minutes']", json_time))
var Number seconds = Float::parseFloat(transform("JSONPATH", "$.result.time['seconds']", json_time))
json_currenttime.postUpdate(hours *3600 + minutes *60 + seconds)
und zwar sind alle einträge in der var Number automatisch Strings, nur mit dem Float::parseFloat[tt][/tt] wird es zu einer Number, und nur damit kann man rechnen.
hier ist jetzt das ganze Biest, das ersetzt das Kodi Binding was eh nur zickt.
import java.net.URLEncoder
rule "json abfrage - ping Kodi"
when
Time cron "0/3 * * ? * * *" // alle 3 sekunden
then
//JSON Aufruf
//var request = "%7B%20%22jsonrpc%22%3A%20%222.0%22%2C%20%22method%22%3A%20%22JSONRPC.Ping%22%2C%20%22id%22%3A%201%20%7D"
//var String url = "http://kodi:1234@192.168.0.164:8023/jsonrpc?request=" + request
//var String json = sendHttpGetRequest(url)
// Auswerten und an Item ubergeben
//var String pingkodi = transform("JSONPATH", "$.result", json)
//json_kodiping.postUpdate(pingkodi)
if (ShieldPingOnline.state == ON)
{
kodi_isactive.sendCommand(ON)
}
if (ShieldPingOnline.state != ON)
{
kodi_isactive.sendCommand(OFF)
}
end
rule "json abfrage - player aktiv - or titel change"
when
Time cron "0/3 * * ? * * *" // alle 3 sekunden
then
if (kodi_isactive.state == ON)
{
// JSON Aufruf - titel abrufen
var request_label = "%7b%22jsonrpc%22%3a+%222.0%22%2c+%22method%22%3a+%22Player.GetItem%22%2c+%22params%22%3a+%7b+%22playerid%22%3a+1+%7d%2c+%22id%22%3a+%22VideoGetItem%22%7d"
var String url_label = "http://kodi:1234@192.168.0.164:8023/jsonrpc?request=" + request_label
var String json_label = sendHttpGetRequest(url_label)
var String activeplayertype_label = transform("JSONPATH", "$.result.item.label", json_label)
json_activeplayertype_label.postUpdate(activeplayertype_label)
//JSON Aufruf - player aktiv
var request = "%7b%22jsonrpc%22%3a+%222.0%22%2c+%22method%22%3a+%22Player.GetActivePlayers%22%2c+%22id%22%3a+1%7d"
var String url = "http://kodi:1234@192.168.0.164:8023/jsonrpc?request=" + request
var String json = sendHttpGetRequest(url)
// Auswerten und an Item ubergeben
var String playeractive = transform("JSONPATH", "$.result", json)
playernowplayingactive.postUpdate(playeractive)
if (playernowplayingactive.state != NULL )
{
startplayingtypescript.sendCommand(ON)
logInfo("INFO", "KODI SPIELT ETWAS AB")
}
if (playernowplayingactive.state == NULL)
{
startplayingtypescript.sendCommand(OFF)
// ALLE ITEMS ZURUECKSETZEN
json_type.postUpdate("UNDEF")
json_title.postUpdate("UNDEF")
json_rating.postUpdate("0")
json_year.postUpdate("0")
json_fanart.postUpdate("")
json_poster.postUpdate("")
json_genre.postUpdate("UNDEF")
json_runtime.postUpdate("0")
json_episode.postUpdate("0")
json_season.postUpdate("0")
json_showtitle.postUpdate("UNDEF")
json_icon.postUpdate("")
json_thumb.postUpdate("")
json_plot.postUpdate("UNDEF")
json_season_episode.postUpdate("UNDEF")
json_currenttime.postUpdate("0")
logInfo("INFO", "KODI SPIELT NICHTS AB")
}
}
end
rule "json abfrage - file type - movie or episode or channel abfrage ausloesen"
when
Item startplayingtypescript changed to ON
or
Item json_activeplayertype_label changed
then
//JSON Aufruf
var request = "%7b%22jsonrpc%22%3a+%222.0%22%2c+%22method%22%3a+%22Player.GetItem%22%2c+%22params%22%3a+%7b+%22playerid%22%3a+1+%7d%2c+%22id%22%3a+%22VideoGetItem%22%7d"
var String url = "http://kodi:1234@192.168.0.164:8023/jsonrpc?request=" + request
var String json = sendHttpGetRequest(url)
// Auswerten und an Item ubergeben
var String activeplayertype = transform("JSONPATH", "$.result.item.type", json)
json_activeplayertype.postUpdate(activeplayertype)
logInfo("INFO", "SCRIPT HOLE MEDIEN TYPE GESTARTET")
// Mediatype vergleichen und festlegen
if (json_activeplayertype.state == "movie")
{
nowplayingkodimovie.sendCommand(ON)
logInfo("INFO", "Mediatype : movie" )
}
if (json_activeplayertype.state == "channel")
{
nowplayingkodichannel.sendCommand(ON)
logInfo("INFO", "Mediatype : channel" )
}
if (json_activeplayertype.state == "episode")
{
nowplayingkodiepisode.sendCommand(ON)
logInfo("INFO", "Mediatype : episode" )
}
if (json_activeplayertype.state == "unknown")
{
nowplayingkodiepisode.sendCommand(OFF)
nowplayingkodimovie.sendCommand(OFF)
nowplayingkodichannel.sendCommand(OFF)
logInfo("INFO", "Mdiatype : unknwon" )
}
end
rule "json abfrage - Time "
when
Time cron "0/10 * * ? * * *" // alle 10 sekunden
then
if (playernowplayingactive.state != NULL )
{
//JSON Aufruf
var request_time = "%7B%22jsonrpc%22%3A%222.0%22%2C%22method%22%3A%22Player.GetProperties%22%2C%22params%22%3A%7B%22playerid%22%3A1%2C%22properties%22%3A%5B%22percentage%22%2C%22time%22%2C%22totaltime%22%5D%7D%2C%22id%22%3A%221%22%7D"
var String url_time = "http://kodi:1234@192.168.0.164:8023/jsonrpc?request=" + request_time
var String json_time = sendHttpGetRequest(url_time)
var Number hours = Float::parseFloat(transform("JSONPATH", "$.result.time['hours']", json_time))
var Number minutes = Float::parseFloat(transform("JSONPATH", "$.result.time['minutes']", json_time))
var Number seconds = Float::parseFloat(transform("JSONPATH", "$.result.time['seconds']", json_time))
json_currenttime.postUpdate(hours *3600 + minutes *60 + seconds)
logInfo("INFO", "Currenttime" + json_currenttime )
}
end
rule "json abfrage - movie"
when
Item nowplayingkodimovie received command ON
then
//JSON Aufruf
var request = "%7B%22jsonrpc%22%3A%20%222.0%22%2C%20%22method%22%3A%20%22Player.GetItem%22%2C%20%22params%22%3A%20%7B%20%22properties%22%3A%20%5B%22title%22%2C%22art%22%2C%22rating%22%2C%22year%22%2C%22runtime%22%2C%22genre%22%2C%22plot%22%5D%2C%20%22playerid%22%3A%201%20%7D%2C%20%22id%22%3A%20%22VideoGetItem%22%7D"
var String url = "http://kodi:1234@192.168.0.164:8023/jsonrpc?request=" + request
var String json = sendHttpGetRequest(url)
var String title = transform("JSONPATH", "$.result.item.title", json)
var String rating = transform("JSONPATH", "$.result.item.rating", json)
var String year = transform("JSONPATH", "$.result.item.year", json)
var String runtime = transform("JSONPATH", "$.result.item.runtime", json)
var String genre = transform("JSONPATH", "$.result.item.genre", json)
var String plot = transform("JSONPATH", "$.result.item.plot", json)
var String fanart = transform("JSONPATH", "$.result.item.art.fanart", json)
var String poster = transform("JSONPATH", "$.result.item.art.poster", json)
json_title.postUpdate(title)
json_rating.postUpdate(rating)
json_year.postUpdate(year)
json_genre.postUpdate(genre)
json_runtime.postUpdate(runtime)
json_plot.postUpdate(plot)
// episoden items zurücksetzen , da diese sonst noch gefuellt sind durch den titel wechsel
json_episode.postUpdate("0")
json_season.postUpdate("0")
json_showtitle.postUpdate("UNDEF")
// FANART
var String newValuefanart = fanart.toString
var String newValuefanartencoded = URLEncoder::encode(newValuefanart)
var String fanartcomplete = "http://192.168.0.164:8023/image/" + newValuefanartencoded
// POSTER
var String newValueposter = poster.toString
var String newValueposterencoded = URLEncoder::encode(newValueposter)
var String postercomplete = "http://192.168.0.164:8023/image/" + newValueposterencoded
// Fanart / Poster an Strings uebergeben
json_fanart.postUpdate(fanartcomplete)
json_poster.postUpdate(postercomplete)
logInfo("INFO", "fanart url" + postercomplete)
end
rule "json abfrage - episode"
when
Item nowplayingkodiepisode received command ON
then
//JSON Aufruf
var request = "%7B%22jsonrpc%22%3A%20%222.0%22%2C%20%22method%22%3A%20%22Player.GetItem%22%2C%20%22params%22%3A%20%7B%20%22properties%22%3A%20%5B%22runtime%22%2C%22title%22%2C%22art%22%2C%22rating%22%2C%22year%22%2C%22season%22%2C%22episode%22%2C%22showtitle%22%2C%22genre%22%2C%22plot%22%5D%2C%20%22playerid%22%3A%201%20%7D%2C%20%22id%22%3A%20%22VideoGetItem%22%7D"
var String url = "http://kodi:1234@192.168.0.164:8023/jsonrpc?request=" + request
var String json = sendHttpGetRequest(url)
var String title = transform("JSONPATH", "$.result.item.title", json)
var String rating = transform("JSONPATH", "$.result.item.rating", json)
var String year = transform("JSONPATH", "$.result.item.year", json)
//var String type = transform("JSONPATH", "$.result.item.type", json)
var String runtime = transform("JSONPATH", "$.result.item.runtime", json)
var String genre = transform("JSONPATH", "$.result.item.genre", json)
var String plot = transform("JSONPATH", "$.result.item.plot", json)
var String fanartepisode = transform("JSONPATH", "$.result.item.art['tvshow.fanart']", json)
var String posterepisode = transform("JSONPATH", "$.result.item.art['tvshow.poster']", json)
var String episode = transform("JSONPATH", "$.result.item.episode", json)
var String season = transform("JSONPATH", "$.result.item.season", json)
var String showtitle = transform("JSONPATH", "$.result.item.showtitle", json)
//json_type.postUpdate(type)
json_title.postUpdate(title)
json_rating.postUpdate(rating)
json_year.postUpdate(year)
json_genre.postUpdate(genre)
json_runtime.postUpdate(runtime)
json_episode.postUpdate(episode)
json_season.postUpdate(season)
json_plot.postUpdate(plot)
json_showtitle.postUpdate(showtitle)
json_season_episode.postUpdate("Staffel " + season + " Episode " + episode)
// FANART
var String newValuefanart = fanartepisode.toString
var String newValuefanartencoded = URLEncoder::encode(newValuefanart)
var String fanartcomplete = "http://192.168.0.164:8023/image/" + newValuefanartencoded
// POSTER
var String newValueposter = posterepisode.toString
var String newValueposterencoded = URLEncoder::encode(newValueposter)
var String postercomplete = "http://192.168.0.164:8023/image/" + newValueposterencoded
// Fanart / Poster an Strings uebergeben
json_fanart.postUpdate(fanartcomplete)
json_poster.postUpdate(postercomplete)
logInfo("INFO", "episoden labels :" + fanartcomplete)
end
rule "json abfrage - channel"
when
Item nowplayingkodichannel received command ON
then
//JSON Aufruf
var request = "%7B%22jsonrpc%22%3A%20%222.0%22%2C%20%22method%22%3A%20%22Player.GetItem%22%2C%20%22params%22%3A%20%7B%20%22properties%22%3A%20%5B%22plot%22%2C%22title%22%2C%22art%22%2C%22runtime%22%2C%22genre%22%5D%2C%20%22playerid%22%3A%201%20%7D%2C%20%22id%22%3A%20%22VideoGetItem%22%7D"
var String url = "http://kodi:1234@192.168.0.164:8023/jsonrpc?request=" + request
var String json = sendHttpGetRequest(url)
var String title = transform("JSONPATH", "$.result.item.title", json)
var Number runtime = Float::parseFloat(transform("JSONPATH", "$.result.item.runtime", json_time))
//var String runtime = transform("JSONPATH", "$.result.item.runtime", json)
var String genre = transform("JSONPATH", "$.result.item.genre", json)
var String plot = transform("JSONPATH", "$.result.item.plot", json)
var String icon = transform("JSONPATH", "$.result.item.art.icon", json)
var String thumb = transform("JSONPATH", "$.result.item.art.thumb", json)
//json_type.postUpdate(type)
json_title.postUpdate(title)
json_genre.postUpdate(genre)
json_plot.postUpdate(plot)
json_runtime.postUpdate(runtime *60)
// FANART
var String newValuefanart = icon.toString
var String newValuefanartencoded = URLEncoder::encode(newValuefanart)
var String fanartcomplete = "http://192.168.0.164:8023/image/" + newValuefanartencoded
// POSTER
var String newValueposter = thumb.toString
var String newValueposterencoded = URLEncoder::encode(newValueposter)
var String postercomplete = "http://192.168.0.164:8023/image/" + newValueposterencoded
// Fanart / Poster an Strings uebergeben
json_poster.postUpdate(fanartcomplete)
json_thumb.postUpdate(postercomplete)
logInfo("INFO", "fanart url" + postercomplete)
end
Alles anzeigen
Ich glaube ich muss irgendwie die var eintsge wie zb hours in einen dezimaltype umwandeln.
Wenn ich nämlich den var Eintrag erst in ein item schreibe dann kann ich mit .state as dezimaltype arbeiten.
Aber die var ist ja kein .state
Vielleicht hat @horschte oder @SkyBird1980 die Lösung?