Repository navigation
Skin Integration
This page is for skin authors. Floppy items carry ListItem properties a skin's info dialog can use, so its buttons work for Floppy items as well as library ones. A skin can also tell Floppy what it's playing, so plays started from the skin are tracked and resumed.
| Property | On | Use |
|---|---|---|
floppy.play_path |
Movies, episodes | Play / Resume button: RunPlugin($INFO[ListItem.Property(floppy.play_path)]). Add &noresume=1 for "play from beginning". |
floppy.seasons_path |
Shows | Episodes button: ActivateWindow(Videos,"$INFO[ListItem.Property(floppy.seasons_path)]",return)
|
floppy.next_play_path |
Shows with a next episode | Play next episode button: RunPlugin($INFO[ListItem.Property(floppy.next_play_path)])
|
floppy.next_label |
Shows with a next episode | The next episode's code, e.g. S01E04
|
floppy.status |
Tracked movies and shows | Floppy status: 0 Planning (on the watchlist), 1 In progress, 2 Paused, 3 Completed, 4 Dropped. Empty when Floppy doesn't track the item. |
floppy.remove_watchlist_path |
Tracked movies and shows | Remove from watchlist: RunPlugin($INFO[ListItem.Property(floppy.remove_watchlist_path)]). It asks first, and only removes Planning entries. |
floppy.episodes_left |
Tracked shows | Released episodes still to watch |
floppy.air_datetime |
Calendar items | Air or release date and time |
tmdb_id, tmdb_type
|
Items with a TMDb id | TMDb id and type (movie or tv; episodes give their show's) |
tvshow.tmdb_id |
Episodes | The show's TMDb id |
tvshow.tvdb_id |
Episodes | The show's TVDb id, when known |
tvshow.imdb_id |
Episodes | The show's IMDb id, when Floppy knows it from show-level data |
- Add a condition such as
!String.IsEmpty(ListItem.Property(floppy.play_path))to the skin's own button actions so they don't also fire for Floppy items. - Watchlist buttons: show "Add" when
String.IsEmpty(ListItem.Property(floppy.status))and "Remove" whenString.IsEqual(ListItem.Property(floppy.status),0). - Season items also set Kodi's standard
TotalEpisodes,WatchedEpisodesandUnWatchedEpisodesproperties from Floppy. - Movies and shows set unique ids
tmdb,imdbandtvdb. The default isimdbwhen known, soListItem.IMDBNumberis the IMDb id. Episodes keep the show's ids out of their unique ids and use thetvshow.*properties instead.
floppy.play_path goes through Floppy's own play route, which tells the service what's about to play. A skin that plays through its own paths can do the same by setting these Home window properties just before PlayMedia:
| Property | Value |
|---|---|
floppy.play.kind |
movie or episode (required) |
floppy.play.tmdb, floppy.play.imdb, floppy.play.tvdb
|
At least one. Episodes use the show's ids and match on tmdb or tvdb; movies match on tmdb or imdb. |
floppy.play.season, floppy.play.episode
|
Required for episodes |
floppy.play.title |
Optional: the show title for episodes, used to find the show by name when there's no TMDb id |
floppy.play.resume |
Optional: leave it unset to look up Floppy's saved position, a number of seconds to use that position, or 0 to start from the beginning |
For example, for an episode:
SetProperty(floppy.play.kind,episode,home)
SetProperty(floppy.play.tmdb,$INFO[ListItem.Property(tvshow.tmdb_id)],home)
SetProperty(floppy.play.tvdb,$INFO[ListItem.Property(tvshow.tvdb_id)],home)
SetProperty(floppy.play.season,$INFO[ListItem.Season],home)
SetProperty(floppy.play.episode,$INFO[ListItem.Episode],home)
SetProperty(floppy.play.title,$INFO[ListItem.TVShowTitle],home)
ClearProperty(floppy.play.imdb,home)
ClearProperty(floppy.play.resume,home)
PlayMedia(...)
Set or clear every property each time, so nothing is left over from an earlier item. The service uses them when the next video starts and then clears them. If no video starts within 3 minutes, they're dropped.
While the Home window property ultra.bg.trailer is set, Floppy ignores playback: nothing is tracked, saved or resumed, and a pending floppy.play.* hand-off is kept for the real video. Set it before a background trailer starts and clear it once the trailer has fully stopped.
Kodi itself reloads widgets that have no sort order whenever playback starts or stops, so widgets still reload around trailers unless the skin gives them a sort order.
Getting started
Using Floppy
For skin authors
Help