Quali ist nicht so der Hit, aber vllt erkennts ja jmd:
Beiträge von NBs
-
-
American Psycho?
-
Raised Fist - And then they run
Sonic Syndicate - denied
Sum 41 - Jessica Kill -
Movie Resume klappt bei mir ohne Probleme (Egal ob Netflix, Amazon oder Disney)
-
Ich habe diese Maus geliebt!
Also das Original damals. Ich finds geil das sie die wieder haben aufleben lassen. Meine jetzige Logitech G403 wollte bislang noch nicht sterben weshalb ich die Intelli Pro noch nicht besitze.
Ewig nach nem Ersatz für die IE3.0 gesucht.... Und jetzt fühle ich mich wieder zu Hause, da kommen einem fast die Tränen
-
Intelli Pro Mouse [Anzeige] für 27€
HyperX Alloy Elite RGB für 99€und ne Gebrauchte EVGA 1080 FTW2 mit Jahren Restgarantie für 270€
Irgendwo muss die Kohle ja hin
-
Es lag am Mimic Skin.
Mit dem Lyrebird Mod funktioniert alles wie es soll.
Aber hey, jetz ist mein System wieder frisch und sauber -
@NBs Bei mir funktioniert es, gerade getestet.
Meh, dann muss ich wohl doch wieder von vorne Anfangen -.-
-
Gesehen-Status bei Serien
Hola!
Wenn ich Filme und Serien via Osmosis einpflege, wird der "Gesehen-Status" bei Serien nicht aktualisiert wenn ich eine Folge geschaut habe. Bei Filmen (egal aus welcher Quelle) funktioniert es tadellos.
Bei Serien und Filmen die ich lokal gespeichert und auf konventionellem Weg eingepflegt habe tritt dieses Verhalten nicht auf.Ist das bei irgendjmd. auch so?
-
Das stimmt,
aber dann kann ich auch bei meiner vorhanden Liste bleiben und die Senderlogos wieder von Hand mappen.So hatte ich es vorher gemacht, da die Picons nicht alle gefunden wurden.
Deswegen war mein Gedanke:
Komm, nimm die aktuelle Liste samt den Picons und dann musst du nichts mehr manuel mappen.
Wenn ich dann doch manuel Services mappen muss habe ich genau genommen nicht viel gewonnen.
Das ganze ist bitte nicht als Kritik zu verstehen, nur als Hinweis, das es sicherlich noch ein paar andere gibt die darüber stolpern könnten.Deswegen wäre eventuell ein Hinweis für die nicht HD Privat Sender Nutzer hilfreich.
Evtl als Tipp für @chvb:
Man kann in TVH den Kanälen mehrere Services zuordnen, dann zusätzlich die Free Sender zu den HD+ Sendern hinzufügen.Danach muss im Streaming Profil noch "Fortfahren, wenn Entschlüsselung fehlschlägt" deaktiviert werden und schon wird der FreeTV Sender genutzt, wenn kein HD+ verfügbar ist.
-
Danke für die Bestätigung!
Die kannst du aber fix manuell hinzufügen. Als Services sind sie ja vorhanden - müssen halt nur noch gemapped werden.
-
Genau so, wie Du beschreibst, geht's! Im übrigen auch bei Prime.
Bei Prime kann man die Suche ohne Probleme verwenden, darum ja die Frage.
Aber ist ja richtig, Serien und Filme auf die Watchlist setzen und dann Scrapen wäre ne Option - Aber ich muss beim importieren doch auswählen ob es sich um Filme oder Serien handelt - geht das denn mit gemischten Inhalten in der Watchlist? -
Hola!
erst mal Danke für dein Addon!Ich hab jetzt auf die schnelle nichts gefunden - aber ist die Suchfunktion in den einzelnen Videopplugins wie Netflix und Co noch WIP? Wenn ich die Suche (über OSMOSIS) im Netflixaddon öffne, einen Titel eingebe und dann auf Suchen klicke, öffnet sich erneut die Suche und nicht die Ergebnisliste. - Oder muss ich hier anders vorgehen?
-
Hola!
Ich hab das Pulgin via ZIP aus dem ersten Post installiert und bekomme außer einem Login und dem folgenden Ladescreen nichts zu sehen. Auch nach Neustart, Deinstallation, Installation etc bekomme ich nichts weiter als einen Ladescreen.Weiß hier jmd weiter?
Hier mal ohne einen Userlogin:
Spoiler anzeigen
tail -F storage/.kodi/temp/[definition=9,2]kodi.[definition='1','0']log[/definition][/definition] | grep joyn
2020-04-29 13:32:11.078 T:140268751072960 DEBUG: LoadFromFileInternal - Load of /storage/downloads/plugin.video.joyn-2.3.1.3.zip failed.
2020-04-29 13:32:11.898 T:140268751072960 DEBUG: CAddonInstaller: installing from zip '/storage/downloads/plugin.video.joyn-2.3.1.3.zip'
2020-04-29 13:32:11.909 T:140268637124352 DEBUG: Unpacking zip://%2fstorage%2fdownloads%http://2fplugin.video.joyn-2.3.1.3.zip/plugin.video.joyn/ to /storage/.kodi/addons/temp/bf14f4df-6784-403f-ae5b-28a733c988b1
2020-04-29 13:32:11.944 T:140268637124352 NOTICE: ADDON: plugin.video.joyn v2.3.1.3 installed
2020-04-29 13:32:11.945 T:140268637124352 DEBUG: CAddonDatabase: plugin.video.joyn has been installed.
2020-04-29 13:32:11.968 T:140268637124352 DEBUG: CAddonMgr: enabled plugin.video.joyn
2020-04-29 13:32:11.969 T:140268637124352 DEBUG: LocalizeStrings: loaded 144 strings from file /storage/.kodi/addons/http://plugin.video.joyn/resources/lang…e_de/strings.po
2020-04-29 13:32:11.969 T:140268637124352 DEBUG: LocalizeStrings: loaded 0 strings from file /storage/.kodi/addons/http://plugin.video.joyn/resources/lang…n_gb/strings.po
2020-04-29 13:32:11.970 T:140265860867840 DEBUG: CServiceAddonManager: starting plugin.video.joyn
2020-04-29 13:32:11.971 T:140267080361728 DEBUG: CPythonInvoker(25, /storage/.kodi/addons/http://plugin.video.joyn/service.py): start processing
2020-04-29 13:32:11.980 T:140267080361728 DEBUG: CPythonInvoker(25, /storage/.kodi/addons/http://plugin.video.joyn/service.py): the source file to load is "/storage/.kodi/addons/http://plugin.video.joyn/service.py"
2020-04-29 13:32:11.982 T:140267080361728 DEBUG: CPythonInvoker(25, /storage/.kodi/addons/http://plugin.video.joyn/service.py): setting the Python path to /storage/.kodi/addons/plugin.video.joyn:/storage/.kodi/addons/script.module.inputstreamhelper/lib:/storage/.kodi/addons/script.module.pydes/lib:/storage/.kodi/addons/script.module.simplejson/lib:/usr/lib/python27.zip:/usr/lib/python2.7:/usr/lib/python2.7/plat-linux2:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload:/usr/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages/gtk-2.0
2020-04-29 13:32:11.982 T:140267080361728 DEBUG: CPythonInvoker(25, /storage/.kodi/addons/http://plugin.video.joyn/service.py): entering source directory /storage/.kodi/addons/plugin.video.joyn
2020-04-29 13:32:11.982 T:140267080361728 DEBUG: CPythonInvoker(25, /storage/.kodi/addons/http://plugin.video.joyn/service.py): instantiating addon using automatically obtained id of "plugin.video.joyn" dependent on version 2.26.0 of the xbmc.python api
2020-04-29 13:32:12.036 T:140267080361728 DEBUG: CAddonSettings[plugin.video.joyn]: loading setting definitions
2020-04-29 13:32:12.036 T:140267080361728 DEBUG: CAddonSettings[plugin.video.joyn]: trying to load setting definitions from old format...
2020-04-29 13:32:12.037 T:140267080361728 DEBUG: [plugin.video.joyn - 2.3.1.3] Detected xbmc.python version 2.26.0
2020-04-29 13:32:12.037 T:140267080361728 DEBUG: [plugin.video.joyn - 2.3.1.3] Detected xbmc version: 18.6 Git:18.6-Leia
2020-04-29 13:32:12.038 T:140267080361728 NOTICE: [plugin.video.joyn - 2.3.1.3] Monitor started
2020-04-29 13:32:30.675 T:140268751072960 DEBUG: CAddonSettings[plugin.video.joyn]: loading setting definitions
2020-04-29 13:32:30.675 T:140268751072960 DEBUG: CAddonSettings[plugin.video.joyn]: trying to load setting definitions from old format...
2020-04-29 13:32:32.999 T:140268751072960 DEBUG: CGUIMediaWindow::GetDirectory (plugin://plugin.video.joyn/)
2020-04-29 13:32:32.999 T:140268751072960 DEBUG: ParentPath = [plugin://plugin.video.joyn/]
2020-04-29 13:32:33.003 T:140268637124352 DEBUG: CAddonDatabase::SetLastUsed[plugin.video.joyn] took 4 ms
2020-04-29 13:32:33.003 T:140266837112576 DEBUG: StartScript - calling plugin Joyn('plugin://http://plugin.video.joyn/','1','','resume:false')
2020-04-29 13:32:33.003 T:140265818904320 DEBUG: CPythonInvoker(27, /storage/.kodi/addons/http://plugin.video.joyn/default.py): start processing
2020-04-29 13:32:33.008 T:140265818904320 DEBUG: CPythonInvoker(27, /storage/.kodi/addons/http://plugin.video.joyn/default.py): the source file to load is "/storage/.kodi/addons/http://plugin.video.joyn/default.py"
2020-04-29 13:32:33.008 T:140265818904320 DEBUG: CPythonInvoker(27, /storage/.kodi/addons/http://plugin.video.joyn/default.py): setting the Python path to /storage/.kodi/addons/plugin.video.joyn:/storage/.kodi/addons/script.module.inputstreamhelper/lib:/storage/.kodi/addons/script.module.pydes/lib:/storage/.kodi/addons/script.module.simplejson/lib:/usr/lib/python27.zip:/usr/lib/python2.7:/usr/lib/python2.7/plat-linux2:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload:/usr/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages/gtk-2.0
2020-04-29 13:32:33.008 T:140265818904320 DEBUG: CPythonInvoker(27, /storage/.kodi/addons/http://plugin.video.joyn/default.py): entering source directory /storage/.kodi/addons/plugin.video.joyn
2020-04-29 13:32:33.008 T:140265818904320 DEBUG: CPythonInvoker(27, /storage/.kodi/addons/http://plugin.video.joyn/default.py): instantiating addon using automatically obtained id of "plugin.video.joyn" dependent on version 2.26.0 of the xbmc.python api
2020-04-29 13:32:33.044 T:140265818904320 DEBUG: CAddonSettings[plugin.video.joyn]: loading setting definitions
2020-04-29 13:32:33.044 T:140265818904320 DEBUG: CAddonSettings[plugin.video.joyn]: trying to load setting definitions from old format...
2020-04-29 13:32:33.045 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] Detected xbmc.python version 2.26.0
2020-04-29 13:32:33.045 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] Detected xbmc version: 18.6 Git:18.6-Leia
2020-04-29 13:32:33.163 T:140265818904320 DEBUG: CAddonSettings[plugin.video.joyn]: loading setting definitions
2020-04-29 13:32:33.163 T:140265818904320 DEBUG: CAddonSettings[plugin.video.joyn]: trying to load setting definitions from old format...
2020-04-29 13:32:33.164 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] Removing etags older than: 2020-04-15 13:32:33.163252
2020-04-29 13:32:33.170 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] libjoyn init
2020-04-29 13:32:33.170 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] cleared cache
2020-04-29 13:32:33.173 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] get_config(): create config
2020-04-29 13:32:33.499 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] COUNTRY SETTING: 0
2020-04-29 13:32:33.843 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] IP API Response is: {u'status': u'success', u'country': u'Deutschland', u'countryCode': u'DE'}
2020-04-29 13:32:33.848 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] Using local main.js
2020-04-29 13:32:34.588 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] Could not find a new valid secret from psf vars ... using fallback value
2020-04-29 13:32:34.591 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] PSF client config decryption succeded with fallback value
2020-04-29 13:32:34.597 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] get_graphql_response: Operation: LANDINGPAGE
2020-04-29 13:32:34.598 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] Creating new auth_token_data
2020-04-29 13:32:34.630 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] Got linux machine-id
2020-04-29 13:32:34.666 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] Created new client_id_data: {'client_name': 'web', 'client_id': u'ce0bbe33-d58d-5c68-beea-8ba123ee39ce', 'anon_device_id': u'7f214f3d-83e3-5211-ae59-ead4ea4ab43f'}
2020-04-29 13:32:35.257 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] get_graphql_response: Operation: SINGLEBLOCK
2020-04-29 13:32:35.498 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] check_license: The Masked Singer types [u'AVOD', u'SVOD'] markings []
2020-04-29 13:32:35.499 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] check_license: Mein Leben mit 300 kg: Das Wiedersehen types [u'AVOD', u'SVOD'] markings []
2020-04-29 13:32:35.500 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] check_license: Man With a Plan types [u'SVOD', u'AVOD'] markings []
2020-04-29 13:32:35.501 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] set_folder: set content_type: tags
2020-04-29 13:32:35.506 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] wait_for_infolabel Container.FolderPath: msecs waited: 5 values do match True final value plugin://plugin.video.joyn/
2020-04-29 13:32:35.506 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] Viewmode :categories_view:IconWall:0:skin.pellucid
2020-04-29 13:32:39.065 T:140265818904320 INFO: CPythonInvoker(27, /storage/.kodi/addons/http://plugin.video.joyn/default.py): script successfully runUnd hier mit Login:
Spoiler anzeigen
tail -F storage/.kodi/temp/[definition=9,2]kodi.[definition='1','0']log[/definition][/definition] | grep joyn
2020-04-29 13:40:51.997 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] Successfully logged in an retrieved auth token
2020-04-29 13:40:51.999 T:140265818904320 DEBUG: [plugin.video.joyn - 2.3.1.3] get_graphql_response: Operation: ACCOUNT
2020-04-29 13:40:58.514 T:140265818904320 INFO: CPythonInvoker(27, /storage/.kodi/addons/http://plugin.video.joyn/default.py): script successfully run
2020-04-29 13:40:58.514 T:140265818904320 DEBUG: onExecutionDone(27, /storage/.kodi/addons/http://plugin.video.joyn/default.py)
2020-04-29 13:40:58.586 T:140265818904320 WARNING: CPythonInvoker(27, /storage/.kodi/addons/http://plugin.video.joyn/default.py): the python script "/storage/.kodi/addons/http://plugin.video.joyn/default.py" has left several classes in memory that we couldn't clean up. The classes include: N9XBMCAddon9xbmcaddon5AddonE
2020-04-29 13:41:00.298 T:140268751072960 DEBUG: CAddonSettings[plugin.video.joyn]: loading setting definitions
2020-04-29 13:41:00.298 T:140268751072960 DEBUG: CAddonSettings[plugin.video.joyn]: trying to load setting definitions from old format...
2020-04-29 13:41:00.300 T:140268751072960 DEBUG: CAddonSettings[plugin.video.joyn]: loading setting values
2020-04-29 13:41:02.614 T:140268751072960 DEBUG: CGUIMediaWindow::GetDirectory (plugin://plugin.video.joyn/)
2020-04-29 13:41:02.614 T:140268751072960 DEBUG: ParentPath = [plugin://plugin.video.joyn/]
2020-04-29 13:41:02.619 T:140265852475136 DEBUG: CAddonDatabase::SetLastUsed[plugin.video.joyn] took 5 ms
2020-04-29 13:41:02.619 T:140265860867840 DEBUG: StartScript - calling plugin Joyn('plugin://http://plugin.video.joyn/','36','','resume:false')
2020-04-29 13:41:02.619 T:140265844082432 DEBUG: CPythonInvoker(62, /storage/.kodi/addons/http://plugin.video.joyn/default.py): start processing
2020-04-29 13:41:02.625 T:140265844082432 DEBUG: CPythonInvoker(62, /storage/.kodi/addons/http://plugin.video.joyn/default.py): the source file to load is "/storage/.kodi/addons/http://plugin.video.joyn/default.py"
2020-04-29 13:41:02.626 T:140265844082432 DEBUG: CPythonInvoker(62, /storage/.kodi/addons/http://plugin.video.joyn/default.py): setting the Python path to /storage/.kodi/addons/plugin.video.joyn:/storage/.kodi/addons/script.module.inputstreamhelper/lib:/storage/.kodi/addons/script.module.pydes/lib:/storage/.kodi/addons/script.module.simplejson/lib:/usr/lib/python27.zip:/usr/lib/python2.7:/usr/lib/python2.7/plat-linux2:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload:/usr/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages/gtk-2.0
2020-04-29 13:41:02.626 T:140265844082432 DEBUG: CPythonInvoker(62, /storage/.kodi/addons/http://plugin.video.joyn/default.py): entering source directory /storage/.kodi/addons/plugin.video.joyn
2020-04-29 13:41:02.626 T:140265844082432 DEBUG: CPythonInvoker(62, /storage/.kodi/addons/http://plugin.video.joyn/default.py): instantiating addon using automatically obtained id of "plugin.video.joyn" dependent on version 2.26.0 of the xbmc.python api
2020-04-29 13:41:02.657 T:140265844082432 DEBUG: CAddonSettings[plugin.video.joyn]: loading setting definitions
2020-04-29 13:41:02.657 T:140265844082432 DEBUG: CAddonSettings[plugin.video.joyn]: trying to load setting definitions from old format...
2020-04-29 13:41:02.657 T:140265844082432 DEBUG: CAddonSettings[plugin.video.joyn]: loading setting values
2020-04-29 13:41:02.658 T:140265844082432 DEBUG: [plugin.video.joyn - 2.3.1.3] Detected xbmc.python version 2.26.0
2020-04-29 13:41:02.658 T:140265844082432 DEBUG: [plugin.video.joyn - 2.3.1.3] Detected xbmc version: 18.6 Git:18.6-Leia
2020-04-29 13:41:02.761 T:140265844082432 DEBUG: CAddonSettings[plugin.video.joyn]: loading setting definitions
2020-04-29 13:41:02.761 T:140265844082432 DEBUG: CAddonSettings[plugin.video.joyn]: trying to load setting definitions from old format...
2020-04-29 13:41:02.761 T:140265844082432 DEBUG: CAddonSettings[plugin.video.joyn]: loading setting values
2020-04-29 13:41:02.762 T:140265844082432 DEBUG: [plugin.video.joyn - 2.3.1.3] Removing etags older than: 2020-04-15 13:41:02.760355
2020-04-29 13:41:02.764 T:140265844082432 DEBUG: [plugin.video.joyn - 2.3.1.3] libjoyn init
2020-04-29 13:41:02.770 T:140265844082432 DEBUG: [plugin.video.joyn - 2.3.1.3] get_graphql_response: Operation: LANDINGPAGE
2020-04-29 13:41:03.002 T:140265844082432 DEBUG: [plugin.video.joyn - 2.3.1.3] get_graphql_response: Operation: SINGLEBLOCK
2020-04-29 13:41:03.216 T:140265844082432 DEBUG: [plugin.video.joyn - 2.3.1.3] get_graphql_response: Operation: SINGLEBLOCK
2020-04-29 13:41:03.612 T:140265844082432 DEBUG: [plugin.video.joyn - 2.3.1.3] check_license: The Masked Singer types [u'AVOD', u'SVOD'] markings []
2020-04-29 13:41:03.613 T:140265844082432 DEBUG: [plugin.video.joyn - 2.3.1.3] check_license: Mein Leben mit 300 kg: Das Wiedersehen types [u'AVOD', u'SVOD'] markings []
2020-04-29 13:41:03.614 T:140265844082432 DEBUG: [plugin.video.joyn - 2.3.1.3] check_license: Man With a Plan types [u'SVOD', u'AVOD'] markings []
2020-04-29 13:41:03.617 T:140265844082432 DEBUG: [plugin.video.joyn - 2.3.1.3] set_folder: set content_type: tags
2020-04-29 13:41:03.622 T:140265844082432 DEBUG: [plugin.video.joyn - 2.3.1.3] wait_for_infolabel Container.FolderPath: msecs waited: 5 values do match True final value plugin://plugin.video.joyn/
2020-04-29 13:41:03.622 T:140265844082432 DEBUG: [plugin.video.joyn - 2.3.1.3] Viewmode :categories_view:IconWall:0:skin.pellucid
2020-04-29 13:41:03.622 T:140265844082432 INFO: CPythonInvoker(62, /storage/.kodi/addons/http://plugin.video.joyn/default.py): script successfully run -
Das ist eine sehr lobenswerte Einstellung von Slyguy! Wo genau kommt die Info ausm Kodi Forum her?
Steht hier: klick mich
-
Das heißt also wenn er es nicht implementiert dann wird es auch nicht mir Osmosis möglich sein? Bzw der Osmosis Entwickler kann es dann auch nicht implementieren.
Danke.Osmosis arbeitet mit lokal abgelegten strm Dateien oder? - Dann wird das nüscht
-
Kann man auch Filme uns Serien exportieren um sie in die Bibliothek zu sehen?
Wie zB mit Netflix.
Danke.Laut Slyguy wird es dieses Feature nicht geben, hier ein Auszug aus dem Kodi Forum:
[...]
SlyGuy has told me he doesn't really want to add the library integration stuff.
Unless Kodi has a proper way of doing it.
He assumes it all just hacking away at the kodi databases.
[...] -
Gute Nachrichten!Ich habe das ganze nachgestellt. Ich habe mir die Senderliste auf einer TvHeadend 4.2 Dockerversion eingespielt und hatte auch das Problem.
Ihr müsstet bitte die Senderliste neu downloaden. Dort ist das ganze behoben.Aloha!
Die Sendernamen sind jetzt am Start, aber unter dem Reiter Services ist nun kein einziger Services aufgeführt -
Mhm, hab diene Senderliste eingefügt. Jetzt steht bei jedem Sender "name not Set" ... unter Mutes wird auch nichts mehr angezeigt.
Ne idee?
Selbes auch bei mir, Build: 4.2.8-36 ~ LibreELEC Tvh-addon v9.2.0.121
-
Hola!
Erst mal vielen Dank für die Mühe!In der aktuellen zip fehlt die config Datei für /storage/.kodi/userdata/addon_data/service.tvheadend42/input/dvb/networks/DeineNetwork-ID/
Grüzi