Example Receipe Configuration for JSON Roku Feed
This example shows a recipe configuration for a feed that conforms to the required MRSS elements in a Roku feed.
Feed (xmlfeed2_CategoriesRecipe.json)
https://amzndevresources.com/fire-app-builder/feeds/feed2.xml
Category recipe:
{
"cooker": "DynamicParser",
"format": "xml",
"model": "com.amazon.android.model.content.ContentContainer",
"translator": "ContentContainerTranslator",
"modelType": "array",
"query": "//*[name()='media:category']/text()",
"queryResultType": "[]$",
"matchList": [
"/StringKey@mTitle"
],
"keyDataType": "/StringKey@keyDataPath"
}
Contents recipe (xmlfeed2_ContentsRecipe.json):
{
"cooker": "DynamicParser",
"format": "xml",
"model": "com.amazon.android.model.content.Content",
"translator": "ContentTranslator",
"modelType": "array",
"query": "//item[*[name()='media:category']='$$par0$$']",
"matchList": [
"media:title/#text@mTitle",
"guid/#text@mId",
"media:description/#text@mDescription",
"media:content/#attributes/url@mUrl",
"media:thumbnail/#attributes/url@mCardImageUrl",
"media:thumbnail/#attributes/url@mBackgroundImageUrl"
]
}
BasicFileBasedUrlGeneratorConfig.json:
{
"url_file": "urlFile_xmlfeed2.json"
}
urlFile_xmlfeed2.json
{
"urls": [
"https://amzndevresources.com/fire-app-builder/feeds/feed2.xml"
]
}
Navigator.java
...
public static final String NAVIGATOR_FILE = "Navigator_xmlfeed2.json";
...
Navigator_xmlfeed2.json
{
"config": {
"showRelatedContent": true,
"useCategoryAsDefaultRelatedContent": true,
"searchAlgo": "basic",
"enableCEA608": false,
"enableRecentRow": true,
"maxNumberOfRecentItems": 5
},
"branding": {
"globalTheme": "AppTheme",
"lightFont" : "Roboto Light",
"boldFont" : "Roboto Bold",
"regularFont" : "Roboto Regular"
},
"globalRecipes": [
{
"categories": {
"dataLoader": "recipes/xmlfeed2_DataLoaderRecipe1.json",
"dynamicParser": "recipes/xmlfeed2_CategoriesRecipe.json"
},
"contents": {
"dataLoader": "recipes/xmlfeed2_DataLoaderRecipe1.json",
"dynamicParser": "recipes/xmlfeed2_ContentsRecipe.json"
}
}
],
"graph": {
"com.amazon.android.tv.tenfoot.ui.activities.SplashActivity": {
"verifyScreenAccess": false,
"verifyNetworkConnection": true,
"onAction": "CONTENT_SPLASH_SCREEN"
},
"com.amazon.android.tv.tenfoot.ui.activities.ContentBrowseActivity": {
"verifyScreenAccess": false,
"verifyNetworkConnection": true,
"onAction": "CONTENT_HOME_SCREEN"
},
"com.amazon.android.tv.tenfoot.ui.activities.VerticalContentGridActivity": {
"verifyScreenAccess": false,
"verifyNetworkConnection": true,
"onAction": "CONTENT_SUBMENU_SCREEN"
},
"com.amazon.android.tv.tenfoot.ui.activities.ContentDetailsActivity": {
"verifyScreenAccess": false,
"verifyNetworkConnection": true,
"onAction": "CONTENT_DETAILS_SCREEN"
},
"com.amazon.android.tv.tenfoot.ui.activities.ContentSearchActivity": {
"verifyScreenAccess": false,
"verifyNetworkConnection": true,
"onAction": "CONTENT_SEARCH_SCREEN"
},
"com.amazon.android.uamp.ui.PlaybackActivity": {
"verifyScreenAccess": false,
"verifyNetworkConnection": true,
"onAction": "CONTENT_RENDERER_SCREEN"
}
}
}
xmlfeed2_DataLoaderRecipe2.json
{
"task": "load_data",
"url_generator": {
"url_index": "0"
}
}
Last updated: Aug 03, 2018