In case anyone else wants separate rules for library and plugins here's how I did it.
Run script command:
xml:
<onclick>Runscript(script.skinvariables,action=buildviews,contentid=$VAR[ContentID],pluginname=$INFO[Container.PluginName])</onclick>
ContentID variable:
xml:
<variable name="ContentID">
<value condition="!String.IsEmpty(Container.PluginName) + String.IsEmpty(Container.Content)">plugins_none</value>
<value condition="!String.IsEmpty(Container.PluginName)">$INFO[Container.Content,plugins_]</value>
<value condition="!String.IsEmpty(Container.Content)">$INFO[Container.Content]</value>
<value condition="String.IsEmpty(Container.Content)">none</value>
</variable>
skinviewtypes.json:
json:
{
"prefix": "Exp_View",
"viewtypes": {
"50": "31161",
"51": "31130",
"52": "31111",
"53": "31160",
"54": "31112",
"55": "31159",
"56": "31203"
},
"rules": {
"images": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(images)",
"viewtypes": ["50", "53", "55"],
"library": "50"
},
"videos": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(videos)",
"viewtypes": ["50", "51", "52", "53", "55", "56"],
"library": "50"
},
"movies": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(movies)",
"viewtypes": ["53"],
"library": "53"
},
"sets": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(sets)",
"viewtypes": ["53"],
"library": "53"
},
"videoversions": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(videoversions)",
"viewtypes": ["50"],
"library": "50"
},
"tvshows": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(tvshows)",
"viewtypes": ["51", "53"],
"library": "53"
},
"seasons": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(seasons)",
"viewtypes": ["51", "53"],
"library": "53"
},
"episodes": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(episodes)",
"viewtypes": ["52"],
"library": "52"
},
"genres": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(genres)",
"viewtypes": ["50"],
"library": "50"
},
"years": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(years)",
"viewtypes": ["50"],
"library": "50"
},
"studios": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(studios)",
"viewtypes": ["50"],
"library": "50"
},
"directors": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(directors)",
"viewtypes": ["50"],
"library": "50"
},
"countries": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(countries)",
"viewtypes": ["50"],
"library": "50"
},
"tags": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(tags)",
"viewtypes": ["50"],
"library": "50"
},
"roles": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(roles)",
"viewtypes": ["50"],
"library": "50"
},
"actors": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(actors)",
"viewtypes": ["50"],
"library": "50"
},
"playlists": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(playlists)",
"viewtypes": ["50"],
"library": "50"
},
"games": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(games)",
"viewtypes": ["50", "53", "55"],
"library": "50"
},
"musicvideos": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(musicvideos)",
"viewtypes": ["50", "53", "55"],
"library": "50"
},
"artists": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(artists)",
"viewtypes": ["50"],
"library": "50"
},
"albums": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(albums)",
"viewtypes": ["50"],
"library": "50"
},
"songs": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(songs)",
"viewtypes": ["54", "50"],
"library": "54"
},
"files": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(files)",
"viewtypes": ["50", "51", "52", "53", "55", "56"],
"library": "50"
},
"sources": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(sources)",
"viewtypes": ["50"],
"library": "50"
},
"addons": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content(addons)",
"viewtypes": ["50"],
"library": "50"
},
"none": {
"rule": "String.IsEmpty(Container.PluginName) + Container.Content()",
"viewtypes": ["50"],
"library": "50"
},
"plugins_images": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(images)",
"viewtypes": ["50", "53", "55"],
"library": "50"
},
"plugins_videos": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(videos)",
"viewtypes": ["50", "51", "52", "53", "55", "56"],
"library": "50"
},
"plugins_movies": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(movies)",
"viewtypes": ["50", "51", "52", "53", "55", "56"],
"library": "53"
},
"plugins_sets": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(sets)",
"viewtypes": ["53"],
"library": "53"
},
"plugins_videoversions": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(videoversions)",
"viewtypes": ["50"],
"library": "50"
},
"plugins_tvshows": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(tvshows)",
"viewtypes": ["50", "51", "52", "53", "55", "56"],
"library": "53"
},
"plugins_seasons": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(seasons)",
"viewtypes": ["51", "53"],
"library": "53"
},
"plugins_episodes": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(episodes)",
"viewtypes": ["52"],
"library": "52"
},
"plugins_genres": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(genres)",
"viewtypes": ["50"],
"library": "50"
},
"plugins_years": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(years)",
"viewtypes": ["50"],
"library": "50"
},
"plugins_studios": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(studios)",
"viewtypes": ["50"],
"library": "50"
},
"plugins_directors": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(directors)",
"viewtypes": ["50"],
"library": "50"
},
"plugins_countries": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(countries)",
"viewtypes": ["50"],
"library": "50"
},
"plugins_tags": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(tags)",
"viewtypes": ["50"],
"library": "50"
},
"plugins_roles": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(roles)",
"viewtypes": ["50"],
"library": "50"
},
"plugins_actors": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(actors)",
"viewtypes": ["50"],
"library": "50"
},
"plugins_playlists": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(playlists)",
"viewtypes": ["50"],
"library": "50"
},
"plugins_games": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(games)",
"viewtypes": ["50", "53", "55"],
"library": "50"
},
"plugins_musicvideos": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(musicvideos)",
"viewtypes": ["50", "53", "55"],
"library": "50"
},
"plugins_artists": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(artists)",
"viewtypes": ["50"],
"library": "50"
},
"plugins_albums": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(albums)",
"viewtypes": ["50"],
"library": "50"
},
"plugins_songs": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(songs)",
"viewtypes": ["54", "50"],
"library": "54"
},
"plugins_files": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(files)",
"viewtypes": ["50", "51", "52", "53", "55", "56"],
"library": "50"
},
"plugins_sources": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(sources)",
"viewtypes": ["50"],
"library": "50"
},
"plugins_addons": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content(addons)",
"viewtypes": ["50"],
"library": "50"
},
"plugins_none": {
"rule": "!String.IsEmpty(Container.PluginName) + Container.Content()",
"viewtypes": ["50"],
"library": "50"
}
}
}