summaryrefslogtreecommitdiff
path: root/plugin.video.nfl.gamepass/resources
diff options
context:
space:
mode:
authorAlex Waite <Alexqw85@gmail.com>2017-01-09 15:31:14 +0100
committerAlex Waite <Alexqw85@gmail.com>2017-01-10 11:04:55 +0100
commit2e232f12364a1f0a253e0a1f522d5b53f7eda2ec (patch)
tree47c88eafda614ff530d1fedaa4542abf665ba5a8 /plugin.video.nfl.gamepass/resources
parentf5e966f91c77dde6516858a6e2f03899b7578f77 (diff)
[plugin.video.nfl.gamepass] 0.10.1
Diffstat (limited to 'plugin.video.nfl.gamepass/resources')
-rw-r--r--plugin.video.nfl.gamepass/resources/__init__.py1
-rw-r--r--plugin.video.nfl.gamepass/resources/art/fanart.jpgbin0 -> 98548 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/art/icon.pngbin0 -> 7941 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/language/Dutch/strings.po166
-rw-r--r--plugin.video.nfl.gamepass/resources/language/English/strings.po174
-rw-r--r--plugin.video.nfl.gamepass/resources/language/German/strings.po166
-rw-r--r--plugin.video.nfl.gamepass/resources/language/Japanese/strings.po167
-rw-r--r--plugin.video.nfl.gamepass/resources/language/Russian/strings.po174
-rw-r--r--plugin.video.nfl.gamepass/resources/language/Ukrainian/strings.po174
-rw-r--r--plugin.video.nfl.gamepass/resources/lib/__init__.py1
-rw-r--r--plugin.video.nfl.gamepass/resources/lib/pigskin.py521
-rw-r--r--plugin.video.nfl.gamepass/resources/settings.xml21
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/1080i/script-gamepass-coach.xml171
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/1080i/script-gamepass.xml725
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/720p/script-gamepass-coach.xml171
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/720p/script-gamepass.xml725
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/colors/defaults.xml147
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/game_bg.pngbin0 -> 1084 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/game_focus.pngbin0 -> 1128 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_dom_focus.pngbin0 -> 16368 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_dom_normal.pngbin0 -> 26135 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_dom_selected.pngbin0 -> 19826 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_int_focus.pngbin0 -> 16761 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_int_normal.pngbin0 -> 27002 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_int_selected.pngbin0 -> 20691 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/menubar.pngbin0 -> 161 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/network_bg.pngbin0 -> 17768 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/network_focus.pngbin0 -> 11525 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/network_focus2.pngbin0 -> 14391 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/progress.pngbin0 -> 243 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/progressbg.pngbin0 -> 329 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/settings.pngbin0 -> 6648 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/settings_focus.pngbin0 -> 7340 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/shadowbox.pngbin0 -> 490 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenubar.pngbin0 -> 1561 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenubar_focus.pngbin0 -> 695 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenubar_focus2.pngbin0 -> 618 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenuwide_focus.pngbin0 -> 970 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenuwide_focus2.pngbin0 -> 846 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/texturesliderbar.pngbin0 -> 125 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/texturesliderbar2.pngbin0 -> 124 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/week_bg.pngbin0 -> 601 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/week_focus.pngbin0 -> 624 bytes
-rw-r--r--plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/week_focus2.pngbin0 -> 588 bytes
44 files changed, 3504 insertions, 0 deletions
diff --git a/plugin.video.nfl.gamepass/resources/__init__.py b/plugin.video.nfl.gamepass/resources/__init__.py
new file mode 100644
index 0000000..da553a5
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/__init__.py
@@ -0,0 +1 @@
+# dummy file to init the directory \ No newline at end of file
diff --git a/plugin.video.nfl.gamepass/resources/art/fanart.jpg b/plugin.video.nfl.gamepass/resources/art/fanart.jpg
new file mode 100644
index 0000000..3d8a9c1
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/art/fanart.jpg
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/art/icon.png b/plugin.video.nfl.gamepass/resources/art/icon.png
new file mode 100644
index 0000000..4b5e76f
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/art/icon.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/language/Dutch/strings.po b/plugin.video.nfl.gamepass/resources/language/Dutch/strings.po
new file mode 100644
index 0000000..9f61d78
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/language/Dutch/strings.po
@@ -0,0 +1,166 @@
+# Kodi NFL Game Pass language file
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC-GamePass\n"
+"Report-Msgid-Bugs-To: https://github.com/aqw/xbmc-gamepass\n"
+"POT-Creation-Date: 2013-11-18 16:15+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Vulpecula <kasjing@live.nl>\n"
+"Language-Team: Dutch\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+msgctxt "#30001"
+msgid "Username/E-Mail"
+msgstr "E-mail adres"
+
+msgctxt "#30002"
+msgid "Password"
+msgstr "Wachtwoord"
+
+msgctxt "#30003"
+msgid "Preferred Stream Quality"
+msgstr "Gewenste stream kwaliteit"
+
+msgctxt "#30004"
+msgid "Always Use Highest Bitrate"
+msgstr "Gebruik altijd hoogste Bitrate"
+
+msgctxt "#30005"
+msgid "1280x720 Bitrate 4.5 Mbps"
+msgstr "1280x720 Bitrate 4.5 Mbps"
+
+msgctxt "#30006"
+msgid "1280x720 Bitrate 3.0 Mbps"
+msgstr "1280x720 Bitrate 3.0 Mbps"
+
+msgctxt "#30007"
+msgid "960x540 Bitrate 2.4 Mbps"
+msgstr "960x540 Bitrate 2.4 Mbps"
+
+msgctxt "#30008"
+msgid "960x540 Bitrate 1.6 Mbps"
+msgstr "960x540 Bitrate 1.6 Mbps"
+
+msgctxt "#30009"
+msgid "640x360 Bitrate 1.2 Mbps"
+msgstr "640x360 Bitrate 1.2 Mbps"
+
+msgctxt "#30010"
+msgid "640x360 Bitrate 800 Kbps"
+msgstr "640x360 Bitrate 800 Kbps"
+
+msgctxt "#30011"
+msgid "400x224 Bitrate 400 Kbps"
+msgstr "400x224 Bitrate 400 Kbps"
+
+msgctxt "#30012"
+msgid "Ask"
+msgstr "Vraag"
+
+msgctxt "#30013"
+msgid "Preferred Game Version"
+msgstr "Gewenste wedstrijd versie"
+
+msgctxt "#30014"
+msgid "Full"
+msgstr "Volledig"
+
+msgctxt "#30015"
+msgid "Condensed"
+msgstr "Samenvatting"
+
+msgctxt "#30016"
+msgid "Choose a game version"
+msgstr "Kies een wedstrijd versie"
+
+msgctxt "#30020"
+msgid "Date/time in local time"
+msgstr "Datum/tijd in lokale tijd"
+
+msgctxt "#30021"
+msgid "Error"
+msgstr "Fout"
+
+msgctxt "#30022"
+msgid "Due to broadcast restrictions, NFL Game Pass Domestic is currently unavailable. Please try again later."
+msgstr "Vanwege uitzend beperkingen, NFL Game Pass Domestic is momenteel niet beschikbaar. Probeer het later opnieuw."
+
+msgctxt "#30023"
+msgid "Logging into NFL Game Pass failed. Make sure that your account information is correct and your subscription is valid."
+msgstr "Inloggen in NFL Game Pass mislukt. Zorg ervoor dat uw account informatie correct zijn en uw abonnement geldig is."
+
+msgctxt "#30024"
+msgid "Unexpected error ='(. Please enable debuging for both the addon and Kodi, and submit a bug report."
+msgstr ""
+
+msgctxt "#30025"
+msgid "Hide game length"
+msgstr "Verberg wedstrijd lengte"
+
+msgctxt "#30026"
+msgid "No"
+msgstr "Nee"
+
+msgctxt "#30027"
+msgid "Yes, with 12-hour clock (AM/PM)"
+msgstr "Ja, met 12-uurs klok (AM/PM)"
+
+msgctxt "#30028"
+msgid "Yes, with 24-hour clock"
+msgstr "Ja, met 24-uurs klok"
+
+msgctxt "#30029"
+msgid "General"
+msgstr "Algemeen"
+
+msgctxt "#30030"
+msgid "Display/Video"
+msgstr "Weergave/Video"
+
+msgctxt "#30032"
+msgid "Coaches Film"
+msgstr "Coaches Film"
+
+msgctxt "#30033"
+msgid "Proxy Settings"
+msgstr ""
+
+msgctxt "#30034"
+msgid "Use an HTTP proxy to access Game Pass"
+msgstr ""
+
+msgctxt "#30035"
+msgid "Protocol"
+msgstr ""
+
+msgctxt "#30036"
+msgid "Server"
+msgstr ""
+
+msgctxt "#30037"
+msgid "Port"
+msgstr ""
+
+msgctxt "#30038"
+msgid "Username"
+msgstr ""
+
+msgctxt "#30039"
+msgid "Password"
+msgstr ""
+
+msgctxt "#30042"
+msgid "Enable 'Basic' Authentication"
+msgstr ""
+
+msgctxt "#30043"
+msgid "There was a problem playing that stream"
+msgstr ""
+
+msgctxt "#30044"
+msgid "Some shows are known to not work. Please file a bug if the show is available and works in the official app."
+msgstr ""
diff --git a/plugin.video.nfl.gamepass/resources/language/English/strings.po b/plugin.video.nfl.gamepass/resources/language/English/strings.po
new file mode 100644
index 0000000..2303fe4
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/language/English/strings.po
@@ -0,0 +1,174 @@
+# Kodi NFL Game Pass language file
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC-GamePass\n"
+"Report-Msgid-Bugs-To: https://github.com/aqw/xbmc-gamepass\n"
+"POT-Creation-Date: 2013-11-18 16:15+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: English\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: en\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+msgctxt "#30001"
+msgid "Username/E-Mail"
+msgstr ""
+
+msgctxt "#30002"
+msgid "Password"
+msgstr ""
+
+msgctxt "#30003"
+msgid "Preferred Stream Quality"
+msgstr ""
+
+msgctxt "#30004"
+msgid "Always Use Highest Bitrate"
+msgstr ""
+
+msgctxt "#30005"
+msgid "1280x720 Bitrate 4.5 Mbps"
+msgstr ""
+
+msgctxt "#30006"
+msgid "1280x720 Bitrate 3.0 Mbps"
+msgstr ""
+
+msgctxt "#30007"
+msgid "960x540 Bitrate 2.4 Mbps"
+msgstr ""
+
+msgctxt "#30008"
+msgid "960x540 Bitrate 1.6 Mbps"
+msgstr ""
+
+msgctxt "#30009"
+msgid "640x360 Bitrate 1.2 Mbps"
+msgstr ""
+
+msgctxt "#30010"
+msgid "640x360 Bitrate 800 Kbps"
+msgstr ""
+
+msgctxt "#30011"
+msgid "400x224 Bitrate 400 Kbps"
+msgstr ""
+
+msgctxt "#30012"
+msgid "Ask"
+msgstr ""
+
+msgctxt "#30013"
+msgid "Preferred Game Version"
+msgstr ""
+
+msgctxt "#30014"
+msgid "Full"
+msgstr ""
+
+msgctxt "#30015"
+msgid "Condensed"
+msgstr ""
+
+msgctxt "#30016"
+msgid "Choose a game version"
+msgstr ""
+
+msgctxt "#30020"
+msgid "Localize Game Date/Time"
+msgstr ""
+
+msgctxt "#30021"
+msgid "Error"
+msgstr ""
+
+msgctxt "#30022"
+msgid "Due to broadcast restrictions, NFL Game Pass Domestic is currently unavailable. Please try again later."
+msgstr ""
+
+msgctxt "#30023"
+msgid "Logging into NFL Game Pass failed. Make sure that your account information is correct and your subscription is valid."
+msgstr ""
+
+msgctxt "#30024"
+msgid "Unexpected error ='(. Please enable debuging for both the addon and Kodi, and submit a bug report."
+msgstr ""
+
+msgctxt "#30025"
+msgid "Hide game length"
+msgstr ""
+
+msgctxt "#30026"
+msgid "No"
+msgstr ""
+
+msgctxt "#30027"
+msgid "Yes, with 12-hour clock (AM/PM)"
+msgstr ""
+
+msgctxt "#30028"
+msgid "Yes, with 24-hour clock"
+msgstr ""
+
+msgctxt "#30029"
+msgid "General"
+msgstr ""
+
+msgctxt "#30030"
+msgid "Display/Video"
+msgstr ""
+
+msgctxt "#30032"
+msgid "Coaches Film"
+msgstr ""
+
+msgctxt "#30033"
+msgid "Proxy Settings"
+msgstr ""
+
+msgctxt "#30034"
+msgid "Use an HTTP proxy to access Game Pass"
+msgstr ""
+
+msgctxt "#30035"
+msgid "Protocol"
+msgstr ""
+
+msgctxt "#30036"
+msgid "Server"
+msgstr ""
+
+msgctxt "#30037"
+msgid "Port"
+msgstr ""
+
+msgctxt "#30038"
+msgid "Username"
+msgstr ""
+
+msgctxt "#30039"
+msgid "Password"
+msgstr ""
+
+msgctxt "#30042"
+msgid "Enable 'Basic' Authentication"
+msgstr ""
+
+msgctxt "#30043"
+msgid "There was a problem playing that stream"
+msgstr ""
+
+msgctxt "#30044"
+msgid "Some shows are known to not work. Please file a bug if the show is available and works in the official app."
+msgstr ""
+
+msgctxt "#30045"
+msgid "No valid stream URL was found."
+msgstr ""
+
+msgctxt "#30046"
+msgid "There is currently no data available for this week."
+msgstr ""
diff --git a/plugin.video.nfl.gamepass/resources/language/German/strings.po b/plugin.video.nfl.gamepass/resources/language/German/strings.po
new file mode 100644
index 0000000..19df51e
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/language/German/strings.po
@@ -0,0 +1,166 @@
+# Kodi NFL Game Pass language file
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC-GamePass\n"
+"Report-Msgid-Bugs-To: https://github.com/aqw/xbmc-gamepass\n"
+"POT-Creation-Date: 2013-11-18 16:15+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: German\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+msgctxt "#30001"
+msgid "Username/E-Mail"
+msgstr "Benutzername/E-Mail"
+
+msgctxt "#30002"
+msgid "Password"
+msgstr "Passwort"
+
+msgctxt "#30003"
+msgid "Preferred Stream Quality"
+msgstr "Bevorzugte Stream Qualität"
+
+msgctxt "#30004"
+msgid "Always Use Highest Bitrate"
+msgstr "Immer höchste Bitrate nutzen"
+
+msgctxt "#30005"
+msgid "1280x720 Bitrate 4.5 Mbps"
+msgstr ""
+
+msgctxt "#30006"
+msgid "1280x720 Bitrate 3.0 Mbps"
+msgstr ""
+
+msgctxt "#30007"
+msgid "960x540 Bitrate 2.4 Mbps"
+msgstr ""
+
+msgctxt "#30008"
+msgid "960x540 Bitrate 1.6 Mbps"
+msgstr ""
+
+msgctxt "#30009"
+msgid "640x360 Bitrate 1.2 Mbps"
+msgstr ""
+
+msgctxt "#30010"
+msgid "640x360 Bitrate 800 Kbps"
+msgstr ""
+
+msgctxt "#30011"
+msgid "400x224 Bitrate 400 Kbps"
+msgstr ""
+
+msgctxt "#30012"
+msgid "Ask"
+msgstr "Vorher fragen"
+
+msgctxt "#30013"
+msgid "Preferred Game Version"
+msgstr "Bevorzugte Spiel Version"
+
+msgctxt "#30014"
+msgid "Full"
+msgstr "Vollständig"
+
+msgctxt "#30015"
+msgid "Condensed"
+msgstr "Zusammengefasst"
+
+msgctxt "#30016"
+msgid "Choose a game version"
+msgstr "Wähle eine Spiel Version"
+
+msgctxt "#30020"
+msgid "Date/time in local time"
+msgstr "Uhrzeit in lokaler Zeitzone"
+
+msgctxt "#30021"
+msgid "Error"
+msgstr ""
+
+msgctxt "#30022"
+msgid "Due to broadcast restrictions, NFL Game Pass Domestic is currently unavailable. Please try again later."
+msgstr ""
+
+msgctxt "#30023"
+msgid "Logging into NFL Game Pass failed. Make sure that your account information is correct and your subscription is valid."
+msgstr ""
+
+msgctxt "#30024"
+msgid "Unexpected error ='(. Please enable debuging for both the addon and Kodi, and submit a bug report."
+msgstr ""
+
+msgctxt "#30025"
+msgid "Hide game length"
+msgstr ""
+
+msgctxt "#30026"
+msgid "No"
+msgstr ""
+
+msgctxt "#30027"
+msgid "Yes, with 12-hour clock (AM/PM)"
+msgstr ""
+
+msgctxt "#30028"
+msgid "Yes, with 24-hour clock"
+msgstr ""
+
+msgctxt "#30029"
+msgid "General"
+msgstr ""
+
+msgctxt "#30030"
+msgid "Display/Video"
+msgstr ""
+
+msgctxt "#30032"
+msgid "Coaches Film"
+msgstr ""
+
+msgctxt "#30033"
+msgid "Proxy Settings"
+msgstr ""
+
+msgctxt "#30034"
+msgid "Use an HTTP proxy to access Game Pass"
+msgstr ""
+
+msgctxt "#30035"
+msgid "Protocol"
+msgstr ""
+
+msgctxt "#30036"
+msgid "Server"
+msgstr ""
+
+msgctxt "#30037"
+msgid "Port"
+msgstr ""
+
+msgctxt "#30038"
+msgid "Username"
+msgstr ""
+
+msgctxt "#30039"
+msgid "Password"
+msgstr ""
+
+msgctxt "#30042"
+msgid "Enable 'Basic' Authentication"
+msgstr ""
+
+msgctxt "#30043"
+msgid "There was a problem playing that stream"
+msgstr ""
+
+msgctxt "#30044"
+msgid "Some shows are known to not work. Please file a bug if the show is available and works in the official app."
+msgstr ""
diff --git a/plugin.video.nfl.gamepass/resources/language/Japanese/strings.po b/plugin.video.nfl.gamepass/resources/language/Japanese/strings.po
new file mode 100644
index 0000000..fb818fb
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/language/Japanese/strings.po
@@ -0,0 +1,167 @@
+# Kodi NFL Game Pass language file
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC-GamePass\n"
+"Report-Msgid-Bugs-To: https://github.com/aqw/xbmc-gamepass\n"
+"POT-Creation-Date: 2013-11-18 16:15+0000\n"
+"PO-Revision-Date: 2016-08-13 18:01+0900\n"
+"Language-Team: Japan <maiorinodavid@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ja\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Last-Translator: \n"
+"X-Generator: Poedit 1.8.8\n"
+
+msgctxt "#30001"
+msgid "Username/E-Mail"
+msgstr "ユーザー名/メールアドレス"
+
+msgctxt "#30002"
+msgid "Password"
+msgstr "パスワード"
+
+msgctxt "#30003"
+msgid "Preferred Stream Quality"
+msgstr "優先ストリーム品質"
+
+msgctxt "#30004"
+msgid "Always Use Highest Bitrate"
+msgstr "最大使用ビットレート"
+
+msgctxt "#30005"
+msgid "1280x720 Bitrate 4.5 Mbps"
+msgstr "1280x720 ビットレート 4.5 Mbps"
+
+msgctxt "#30006"
+msgid "1280x720 Bitrate 3.0 Mbps"
+msgstr "1280x720 ビットレート 3.0 Mbps"
+
+msgctxt "#30007"
+msgid "960x540 Bitrate 2.4 Mbps"
+msgstr "960x540 ビットレート 2.4 Mbps"
+
+msgctxt "#30008"
+msgid "960x540 Bitrate 1.6 Mbps"
+msgstr "960x540 ビットレート 1.6 Mbps"
+
+msgctxt "#30009"
+msgid "640x360 Bitrate 1.2 Mbps"
+msgstr "640x360 ビットレート 1.2 Mbps"
+
+msgctxt "#30010"
+msgid "640x360 Bitrate 800 Kbps"
+msgstr "640x360 ビットレート 800 Kbps"
+
+msgctxt "#30011"
+msgid "400x224 Bitrate 400 Kbps"
+msgstr "400x224 ビットレート 400 Kbps"
+
+msgctxt "#30012"
+msgid "Ask"
+msgstr "尋ねる"
+
+msgctxt "#30013"
+msgid "Preferred Game Version"
+msgstr "優先再生バージョン選択"
+
+msgctxt "#30014"
+msgid "Full"
+msgstr "フル"
+
+msgctxt "#30015"
+msgid "Condensed"
+msgstr "ハイライト"
+
+msgctxt "#30016"
+msgid "Choose a game version"
+msgstr "再生バージョン選択"
+
+msgctxt "#30020"
+msgid "Localize Game Date/Time"
+msgstr "現地時間"
+
+msgctxt "#30021"
+msgid "Error"
+msgstr "エラー"
+
+msgctxt "#30022"
+msgid "Due to broadcast restrictions, NFL Game Pass Domestic is currently unavailable. Please try again later."
+msgstr "放送制限により、NFL Game Pass ローカルは現在利用できません。時間を置いてから、再び試してください。"
+
+msgctxt "#30023"
+msgid "Logging into NFL Game Pass failed. Make sure that your account information is correct and your subscription is valid."
+msgstr "NFL Game Passにログインできませんでした。アカウントの確認、または契約が有効か確認ください。"
+
+msgctxt "#30024"
+msgid "Unexpected error ='(. Please enable debuging for both the addon and Kodi, and submit a bug report."
+msgstr "予測不可エラー発生 ( T o T ) このアプリとKodiのデバッグを有効にして、バグをレポートしてください。"
+
+msgctxt "#30025"
+msgid "Hide game length"
+msgstr "再生時間を非表示"
+
+msgctxt "#30026"
+msgid "No"
+msgstr "いいえ"
+
+msgctxt "#30027"
+msgid "Yes, with 12-hour clock (AM/PM)"
+msgstr "はい、12時間制 (AM/PM)"
+
+msgctxt "#30028"
+msgid "Yes, with 24-hour clock"
+msgstr "はい、24時間制"
+
+msgctxt "#30029"
+msgid "General"
+msgstr "一般"
+
+msgctxt "#30030"
+msgid "Display/Video"
+msgstr "デイスプレイ・ビデオ"
+
+msgctxt "#30032"
+msgid "Coaches Film"
+msgstr "監督フィルム集"
+
+msgctxt "#30033"
+msgid "Proxy Settings"
+msgstr "プロキシ設定"
+
+msgctxt "#30034"
+msgid "Use an HTTP proxy to access Game Pass"
+msgstr "Game Passをアクセスのため、HTTPプロキシ使用"
+
+msgctxt "#30035"
+msgid "Protocol"
+msgstr "プロトコル"
+
+msgctxt "#30036"
+msgid "Server"
+msgstr "サーバー"
+
+msgctxt "#30037"
+msgid "Port"
+msgstr "ポート"
+
+msgctxt "#30038"
+msgid "Username"
+msgstr "ユーザー名"
+
+msgctxt "#30039"
+msgid "Password"
+msgstr "パスワード"
+
+msgctxt "#30042"
+msgid "Enable 'Basic' Authentication"
+msgstr "基本認証を許可"
+
+msgctxt "#30043"
+msgid "There was a problem playing that stream"
+msgstr "再生に問題が発生しました"
+
+msgctxt "#30044"
+msgid "Some shows are known to not work. Please file a bug if the show is available and works in the official app."
+msgstr "再生できない試合があります。公式アプリで再生できる場合、バグをレポートしてください。"
diff --git a/plugin.video.nfl.gamepass/resources/language/Russian/strings.po b/plugin.video.nfl.gamepass/resources/language/Russian/strings.po
new file mode 100644
index 0000000..c5c9bfc
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/language/Russian/strings.po
@@ -0,0 +1,174 @@
+# Kodi NFL Game Pass language file
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC-GamePass\n"
+"Report-Msgid-Bugs-To: https://github.com/aqw/xbmc-gamepass\n"
+"POT-Creation-Date: 2013-11-18 16:15+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Igor Davydenko <iam@igordavydenko.com>\n"
+"Language-Team: Russian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ru\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+msgctxt "#30001"
+msgid "Username/E-Mail"
+msgstr "Имя пользователя/E-Mail"
+
+msgctxt "#30002"
+msgid "Password"
+msgstr "Пароль"
+
+msgctxt "#30003"
+msgid "Preferred Stream Quality"
+msgstr "Предпочтительное качество"
+
+msgctxt "#30004"
+msgid "Always Use Highest Bitrate"
+msgstr "Наивысший битрейт"
+
+msgctxt "#30005"
+msgid "1280x720 Bitrate 4.5 Mbps"
+msgstr "1280x720, битрейт 4.5 Мб/с"
+
+msgctxt "#30006"
+msgid "1280x720 Bitrate 3.0 Mbps"
+msgstr "1280х720, битрейт 3.0 Мб/с"
+
+msgctxt "#30007"
+msgid "960x540 Bitrate 2.4 Mbps"
+msgstr "960х540, битрейт 2.4 Мб/с"
+
+msgctxt "#30008"
+msgid "960x540 Bitrate 1.6 Mbps"
+msgstr "960х540, битрейт 1.6 Мб/с"
+
+msgctxt "#30009"
+msgid "640x360 Bitrate 1.2 Mbps"
+msgstr "640х360, битрейт 1.2 Мб/с"
+
+msgctxt "#30010"
+msgid "640x360 Bitrate 800 Kbps"
+msgstr "640х360, битрейт 800 кб/с"
+
+msgctxt "#30011"
+msgid "400x224 Bitrate 400 Kbps"
+msgstr "400х224, битрейт 400 кб/с"
+
+msgctxt "#30012"
+msgid "Ask"
+msgstr "Всегда спрашивать"
+
+msgctxt "#30013"
+msgid "Preferred Game Version"
+msgstr "Предпочтительная версия игры"
+
+msgctxt "#30014"
+msgid "Full"
+msgstr "Полная"
+
+msgctxt "#30015"
+msgid "Condensed"
+msgstr "Сокращенная"
+
+msgctxt "#30016"
+msgid "Choose a game version"
+msgstr "Выбирать вручную"
+
+msgctxt "#30020"
+msgid "Localize Game Date/Time"
+msgstr "Локализировать время игр"
+
+msgctxt "#30021"
+msgid "Error"
+msgstr "Ошибка"
+
+msgctxt "#30022"
+msgid "Due to broadcast restrictions, NFL Game Pass Domestic is currently unavailable. Please try again later."
+msgstr "NFL Game Pass Domestic сейчас недоступен из-за ограничений вещания. Пожалуйста попробуйте еще раз позже."
+
+msgctxt "#30023"
+msgid "Logging into NFL Game Pass failed. Make sure that your account information is correct and your subscription is valid."
+msgstr "Не удалось зайти на NFL Game Pass. Убедитесь, что информация про аккаунт верна и ваша подписка действительна."
+
+msgctxt "#30024"
+msgid "Unexpected error ='(. Please enable debuging for both the addon and Kodi, and submit a bug report."
+msgstr "Неожиданная ошибка ='(. Пожалуйста включите дебаг для аддона и Kodi и отправьте баг репорт."
+
+msgctxt "#30025"
+msgid "Hide game length"
+msgstr "Скрыть продолжительность игры"
+
+msgctxt "#30026"
+msgid "No"
+msgstr "Нет"
+
+msgctxt "#30027"
+msgid "Yes, with 12-hour clock (AM/PM)"
+msgstr "Да, 12ч (AM/PM)"
+
+msgctxt "#30028"
+msgid "Yes, with 24-hour clock"
+msgstr "Да, 24ч"
+
+msgctxt "#30029"
+msgid "General"
+msgstr "Общие"
+
+msgctxt "#30030"
+msgid "Display/Video"
+msgstr "Воспроизведение/Видео"
+
+msgctxt "#30031"
+msgid "Advanced"
+msgstr "Продвинутые"
+
+msgctxt "#30032"
+msgid "Coaches Film"
+msgstr "Тренерская версия"
+
+msgctxt "#30033"
+msgid "Proxy Settings"
+msgstr "Настройки прокси"
+
+msgctxt "#30034"
+msgid "Use an HTTP proxy to access Game Pass"
+msgstr "Использовать HTTP прокси для доступа к Game Pass"
+
+msgctxt "#30035"
+msgid "Protocol"
+msgstr "Протокол"
+
+msgctxt "#30036"
+msgid "Server"
+msgstr "Сервер"
+
+msgctxt "#30037"
+msgid "Port"
+msgstr "Порт"
+
+msgctxt "#30038"
+msgid "Username"
+msgstr "Имя пользователя"
+
+msgctxt "#30039"
+msgid "Password"
+msgstr "Пароль"
+
+msgctxt "#30042"
+msgid "Enable 'Basic' Authentication"
+msgstr "Включить 'Basic' аутентификацию"
+
+msgctxt "#30043"
+msgid "There was a problem playing that stream"
+msgstr "Проблема при воспроизведении выбранного потока"
+
+msgctxt "#30044"
+msgid "Some shows are known to not work. Please file a bug if the show is available and works in the official app."
+msgstr "Некоторые шоу могут не работать. Пожалуйста сообщите нам если шоу доступно и работает в официальном приложении."
+
+msgctxt "#30045"
+msgid "No valid stream URL was found."
+msgstr "Не возможно найти URL для потока."
diff --git a/plugin.video.nfl.gamepass/resources/language/Ukrainian/strings.po b/plugin.video.nfl.gamepass/resources/language/Ukrainian/strings.po
new file mode 100644
index 0000000..383af0b
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/language/Ukrainian/strings.po
@@ -0,0 +1,174 @@
+# Kodi NFL Game Pass language file
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC-GamePass\n"
+"Report-Msgid-Bugs-To: https://github.com/aqw/xbmc-gamepass\n"
+"POT-Creation-Date: 2013-11-18 16:15+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Igor Davydenko <iam@igordavydenko.com>\n"
+"Language-Team: Ukrainian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: uk\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+msgctxt "#30001"
+msgid "Username/E-Mail"
+msgstr "Ім'я користувача/E-Mail"
+
+msgctxt "#30002"
+msgid "Password"
+msgstr "Пароль"
+
+msgctxt "#30003"
+msgid "Preferred Stream Quality"
+msgstr "Переважна якість"
+
+msgctxt "#30004"
+msgid "Always Use Highest Bitrate"
+msgstr "Найвищий бітрейт"
+
+msgctxt "#30005"
+msgid "1280x720 Bitrate 4.5 Mbps"
+msgstr "1280х720, бітрейт 4.5 Мб/с"
+
+msgctxt "#30006"
+msgid "1280x720 Bitrate 3.0 Mbps"
+msgstr "1280х720, бітрейт 3.0 Мб/с"
+
+msgctxt "#30007"
+msgid "960x540 Bitrate 2.4 Mbps"
+msgstr "960х540, бітрейт 2.4 Мб/с"
+
+msgctxt "#30008"
+msgid "960x540 Bitrate 1.6 Mbps"
+msgstr "960х540, бітрейт 1.6 Мб/с"
+
+msgctxt "#30009"
+msgid "640x360 Bitrate 1.2 Mbps"
+msgstr "640х360, бітрейт 1.2 Мб/с"
+
+msgctxt "#30010"
+msgid "640x360 Bitrate 800 Kbps"
+msgstr "640х360, бітрейт 800 кб/с"
+
+msgctxt "#30011"
+msgid "400x224 Bitrate 400 Kbps"
+msgstr "400х224, бітрейт 400 кб/с"
+
+msgctxt "#30012"
+msgid "Ask"
+msgstr "Завжди питати"
+
+msgctxt "#30013"
+msgid "Preferred Game Version"
+msgstr "Переважна версія гри"
+
+msgctxt "#30014"
+msgid "Full"
+msgstr "Повна"
+
+msgctxt "#30015"
+msgid "Condensed"
+msgstr "Скорочена"
+
+msgctxt "#30016"
+msgid "Choose a game version"
+msgstr "Вибирати версію гри"
+
+msgctxt "#30020"
+msgid "Localize Game Date/Time"
+msgstr "Локалізувати час гри"
+
+msgctxt "#30021"
+msgid "Error"
+msgstr "Помилка"
+
+msgctxt "#30022"
+msgid "Due to broadcast restrictions, NFL Game Pass Domestic is currently unavailable. Please try again later."
+msgstr "NFL Game Pass Domestic зараз недоступний через обмеження мовлення. Будь ласка спробуйте ще раз пізніше."
+
+msgctxt "#30023"
+msgid "Logging into NFL Game Pass failed. Make sure that your account information is correct and your subscription is valid."
+msgstr "Неможливо увійти до NFL Game Pass. Переконайтесь що інформація про аккаунт корректа і ваша підписка дійсна."
+
+msgctxt "#30024"
+msgid "Unexpected error ='(. Please enable debuging for both the addon and Kodi, and submit a bug report."
+msgstr "Неочікувана помилка ='(. Будь ласка ввімкніть дебаг для аддону та Kodi і відправте баг репорт."
+
+msgctxt "#30025"
+msgid "Hide game length"
+msgstr "Сховати тривалість гри"
+
+msgctxt "#30026"
+msgid "No"
+msgstr "Ні"
+
+msgctxt "#30027"
+msgid "Yes, with 12-hour clock (AM/PM)"
+msgstr "Так, 12г (AM/PM)"
+
+msgctxt "#30028"
+msgid "Yes, with 24-hour clock"
+msgstr "Так, 24г"
+
+msgctxt "#30029"
+msgid "General"
+msgstr "Загальні"
+
+msgctxt "#30030"
+msgid "Display/Video"
+msgstr "Відображення/Відео"
+
+msgctxt "#30031"
+msgid "Advanced"
+msgstr "Просунуті"
+
+msgctxt "#30032"
+msgid "Coaches Film"
+msgstr "Тренерська версія"
+
+msgctxt "#30033"
+msgid "Proxy Settings"
+msgstr "Налаштування проксі"
+
+msgctxt "#30034"
+msgid "Use an HTTP proxy to access Game Pass"
+msgstr "Використовувати HTTP проксі для доступу до Game Pass"
+
+msgctxt "#30035"
+msgid "Protocol"
+msgstr "Протокол"
+
+msgctxt "#30036"
+msgid "Server"
+msgstr "Сервер"
+
+msgctxt "#30037"
+msgid "Port"
+msgstr "Порт"
+
+msgctxt "#30038"
+msgid "Username"
+msgstr "Ім'я користувача"
+
+msgctxt "#30039"
+msgid "Password"
+msgstr "Пароль"
+
+msgctxt "#30042"
+msgid "Enable 'Basic' Authentication"
+msgstr "Увімкнути 'Basic' аутентифікацію"
+
+msgctxt "#30043"
+msgid "There was a problem playing that stream"
+msgstr "Неможливо відобразити вибраний потік"
+
+msgctxt "#30044"
+msgid "Some shows are known to not work. Please file a bug if the show is available and works in the official app."
+msgstr "Деякі шоу можуть не працювати. Будь ласка сповістіть нас, якщо шоу доступне і працює в офіційній аплікації."
+
+msgctxt "#30045"
+msgid "No valid stream URL was found."
+msgstr "Неможливо знайти URL для потоку."
diff --git a/plugin.video.nfl.gamepass/resources/lib/__init__.py b/plugin.video.nfl.gamepass/resources/lib/__init__.py
new file mode 100644
index 0000000..da553a5
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/lib/__init__.py
@@ -0,0 +1 @@
+# dummy file to init the directory \ No newline at end of file
diff --git a/plugin.video.nfl.gamepass/resources/lib/pigskin.py b/plugin.video.nfl.gamepass/resources/lib/pigskin.py
new file mode 100644
index 0000000..0911774
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/lib/pigskin.py
@@ -0,0 +1,521 @@
+"""
+A Kodi-agnostic library for NFL Game Pass
+"""
+import codecs
+import cookielib
+import hashlib
+import random
+import m3u8
+import re
+import sys
+import urllib
+from traceback import format_exc
+from uuid import getnode as get_mac
+from urlparse import urlsplit
+
+import requests
+import xmltodict
+
+
+class pigskin(object):
+ def __init__(self, proxy_config, cookie_file, debug=False):
+ self.debug = debug
+ self.subscription = ''
+ self.base_url = 'https://gamepass.nfl.com/nflgp'
+ self.servlets_url = 'http://gamepass.nfl.com/nflgp/servlets'
+ self.simpleconsole_url = self.servlets_url + '/simpleconsole'
+ self.boxscore_url = ''
+ self.image_url = ''
+ self.locEDLBaseUrl = ''
+ self.non_seasonal_shows = {}
+ self.seasonal_shows = {}
+ self.nflnSeasons = []
+
+ self.http_session = requests.Session()
+ if proxy_config is not None:
+ proxy_url = self.build_proxy_url(proxy_config)
+ if proxy_url != '':
+ self.http_session.proxies = {
+ 'http': proxy_url,
+ 'https': proxy_url,
+ }
+ self.cookie_jar = cookielib.LWPCookieJar(cookie_file)
+ try:
+ self.cookie_jar.load(ignore_discard=True, ignore_expires=True)
+ except IOError:
+ pass
+ self.http_session.cookies = self.cookie_jar
+
+ # get needed URLs from simpleconsole
+ # no auth needed, so we can get this info without invoking a login
+ url = self.simpleconsole_url
+ post_data = {'isFlex': 'true'}
+ sc_data = self.make_request(url=url, method='post', payload=post_data)
+ try:
+ url_dict = xmltodict.parse(sc_data)
+ self.boxscore_url = url_dict['result']['pbpFeedPrefix']
+ self.image_url = url_dict['result']['config']['locProgramImage']
+ self.locEDLBaseUrl = url_dict['result']['config']['locEDL'].replace('/edl/nflgp/', '')
+
+ self.log('boxscore url: %s' % self.boxscore_url)
+ self.log('image url: %s' % self.image_url)
+ self.log('locEDLBaseUrl: %s' % self.locEDLBaseUrl)
+ except xmltodict.expat.ExpatError:
+ self.log('Failed to parse contents of the "simpleconsole".')
+ self.log('pigskin __init__-ing failed. Time to debug!')
+ return None
+
+ # get subscription type
+ if '<isGPDomestic>' in sc_data:
+ self.subscription = 'domestic'
+ self.log('NFL Game Pass Domestic detected.')
+ else:
+ self.subscription = 'international'
+ self.log('NFL Game Pass International detected.')
+
+ self.log('Debugging enabled.')
+ self.log('Python Version: %s' % sys.version)
+
+ class LoginFailure(Exception):
+ def __init__(self, value):
+ self.value = value
+
+ def __str__(self):
+ return repr(self.value)
+
+ def log(self, string):
+ if self.debug:
+ try:
+ print '[pigskin]: %s' % string
+ except UnicodeEncodeError:
+ # we can't anticipate everything in unicode they might throw at
+ # us, but we can handle a simple BOM
+ bom = unicode(codecs.BOM_UTF8, 'utf8')
+ print '[pigskin]: %s' % string.replace(bom, '')
+ except:
+ pass
+
+ def build_proxy_url(self, config):
+ proxy_url = ''
+
+ if 'scheme' in config:
+ scheme = config['scheme'].lower().strip()
+ if scheme != 'http' and scheme != 'https':
+ return ''
+ proxy_url += scheme + '://'
+
+ if 'auth' in config and config['auth'] is not None:
+ try:
+ username = config['auth']['username']
+ password = config['auth']['password']
+ if username == '' or password == '':
+ return ''
+ proxy_url += '%s:%s@' % (urllib.quote(username), urllib.quote(password))
+ except KeyError:
+ return ''
+
+ if 'host' not in config or config['host'].strip() == '':
+ return ''
+ proxy_url += config['host'].strip()
+
+ if 'port' in config:
+ try:
+ port = int(config['port'])
+ if port <= 0 or port > 65535:
+ return ''
+ proxy_url += ':' + str(port)
+ except ValueError:
+ return ''
+
+ return proxy_url
+
+ def check_for_coachestape(self, game_id, season):
+ """Return whether coaches tape is available for a given game."""
+ url = self.boxscore_url + '/' + season + '/' + game_id + '.xml'
+ boxscore = self.make_request(url=url, method='get')
+
+ try:
+ boxscore_dict = xmltodict.parse(boxscore, encoding='cp1252')
+ except xmltodict.expat.ExpatError:
+ try:
+ boxscore_dict = xmltodict.parse(boxscore)
+ except xmltodict.expat.ExpatError:
+ return False
+
+ try:
+ if boxscore_dict['dataset']['@coach'] == 'true':
+ return True
+ else:
+ return False
+ except KeyError:
+ return False
+
+ def check_for_subscription(self):
+ """Return whether a subscription and user name are detected. Determines
+ whether a login was successful."""
+ url = self.simpleconsole_url
+ post_data = {'isFlex': 'true'}
+ sc_data = self.make_request(url=url, method='post', payload=post_data)
+
+ if '</userName>' not in sc_data:
+ self.log('No user name detected in Game Pass response.')
+ return False
+ elif '</subscription>' not in sc_data:
+ self.log('No subscription detected in Game Pass response.')
+ return False
+ else:
+ self.log('Subscription and user name detected in Game Pass response.')
+ return True
+
+ def gen_plid(self):
+ """Return a "unique" MD5 hash. Getting the video path requires a plid,
+ which looks like MD5 and always changes. Reusing a plid does not work,
+ so our guess is that it's a id for each instance of the player.
+ """
+ rand = random.getrandbits(10)
+ mac_address = str(get_mac())
+ md5 = hashlib.md5(str(rand) + mac_address)
+ return md5.hexdigest()
+
+ def get_coaches_playIDs(self, game_id, season):
+ """Return a dict of play IDs with associated play descriptions."""
+ playIDs = {}
+ url = self.boxscore_url + '/' + season + '/' + game_id + '.xml'
+ boxscore = self.make_request(url=url, method='get')
+
+ try:
+ boxscore_dict = xmltodict.parse(boxscore, encoding='cp1252')
+ except xmltodict.expat.ExpatError:
+ try:
+ boxscore_dict = xmltodict.parse(boxscore)
+ except xmltodict.expat.ExpatError:
+ return False
+
+ for row in boxscore_dict['dataset']['table']['row']:
+ playIDs[row['@PlayID']] = row['@PlayDescription']
+
+ return playIDs
+
+ def get_coaches_url(self, game_id, game_date, event_id):
+ """Return the URL for a coaches-film play."""
+ self.get_current_season_and_week() # set cookies
+ url = self.servlets_url + '/publishpoint'
+
+ post_data = {'id': game_id, 'type': 'game', 'nt': '1', 'gt': 'coach',
+ 'event': event_id, 'bitrate': '1600', 'gdate': game_date}
+ headers = {'User-Agent': 'iPad'}
+ coach_data = self.make_request(url=url, method='post', payload=post_data, headers=headers)
+ coach_dict = xmltodict.parse(coach_data)['result']
+
+ return coach_dict['path']
+
+ def get_current_season_and_week(self):
+ """Return the current season and week_code (e.g. 210) in a dict."""
+ url = self.simpleconsole_url
+ post_data = {'isFlex': 'true'}
+ sc_data = self.make_request(url=url, method='post', payload=post_data)
+
+ sc_dict = xmltodict.parse(sc_data)['result']
+ current_s_w = {sc_dict['currentSeason']: sc_dict['currentWeek']}
+ return current_s_w
+
+ def parse_shows(self, sc_dict):
+ """Parse return from /simpleconsole request to build shows list dynamically"""
+ try:
+ # All (nearly) NFL Network Shows
+ show_dict = {}
+ for show in sc_dict['nflnShows']['show']:
+ name = show['name']
+ season_dict = {}
+
+ for season in show['seasons']['season']:
+ if isinstance(season, dict):
+ season_id = season['@catId']
+ season_name = season['#text']
+ else:
+ season_id = show['seasons']['season']['@catId']
+ season_name = show['seasons']['season']['#text']
+
+ # Trim season name to just the year if year is present
+ # Common season names: '2014', 'Season 2014', and 'Archives'
+ try:
+ season_name = re.findall(r"\d{4}(?!\d)", season_name)[0]
+ except IndexError:
+ pass
+
+ season_dict[season_name] = season_id
+
+ if season_name not in self.nflnSeasons:
+ self.nflnSeasons.append(season_name)
+
+ show_dict[name] = season_dict
+
+ # RedZone is "special" and is returned separately in the XML
+ rz_dict = {}
+ for season in sc_dict['redZoneCats']['cat']:
+ rz_dict[season['@season']] = season['@id']
+
+ if season['@season'] not in self.nflnSeasons:
+ self.nflnSeasons.append(season['@season'])
+
+ show_dict['RedZone Archives'] = rz_dict
+
+ self.seasonal_shows.update(show_dict)
+ except KeyError:
+ self.log('Parsing shows failed')
+ raise
+
+ def get_publishpoint_streams(self, video_id, stream_type=None, game_type=None):
+ """Return the URL for a stream."""
+ streams = {}
+ self.get_current_season_and_week() # set cookies
+ url = self.servlets_url + '/publishpoint'
+
+ if video_id == 'nfl_network':
+ post_data = {'id': '1', 'type': 'channel', 'nt': '1'}
+ elif video_id == 'redzone':
+ post_data = {'id': '2', 'type': 'channel', 'nt': '1'}
+ elif stream_type == 'game':
+ post_data = {'id': video_id, 'type': stream_type, 'nt': '1', 'gt': game_type}
+ else:
+ post_data = {'id': video_id, 'type': stream_type, 'nt': '1'}
+
+ headers = {'User-Agent': 'iPad'}
+ m3u8_data = self.make_request(url=url, method='post', payload=post_data, headers=headers)
+ m3u8_dict = xmltodict.parse(m3u8_data)['result']
+ self.log('NFL Dict %s' % m3u8_dict)
+
+ m3u8_url = m3u8_dict['path'].replace('_ipad', '')
+ m3u8_param = m3u8_url.split('?', 1)[-1]
+ # I /hate/ lying with User-Agent.
+ # Huge points for making this work without lying.
+ m3u8_header = {'Cookie': 'nlqptid=' + m3u8_param,
+ 'User-Agent': 'Safari/537.36 Mozilla/5.0 AppleWebKit/537.36 Chrome/31.0.1650.57',
+ 'Accept-encoding': 'identity, gzip, deflate',
+ 'Connection': 'keep-alive'}
+
+ try:
+ m3u8_manifest = self.make_request(url=m3u8_url, method='get')
+ except:
+ m3u8_manifest = False
+
+ if m3u8_manifest:
+ m3u8_obj = m3u8.loads(m3u8_manifest)
+ if m3u8_obj.is_variant: # if this m3u8 contains links to other m3u8s
+ for playlist in m3u8_obj.playlists:
+ bitrate = int(playlist.stream_info.bandwidth) / 1000
+ streams[str(bitrate)] = m3u8_url[:m3u8_url.rfind('/') + 1] + playlist.uri + '?' + m3u8_url.split('?')[1] + '|' + urllib.urlencode(m3u8_header)
+ else:
+ streams['sole available'] = m3u8_url
+
+ return streams
+
+ def get_shows(self, season):
+ """Return a list of all shows for a season."""
+ seasons_shows = self.non_seasonal_shows.keys()
+ for show_name, show_codes in self.seasonal_shows.items():
+ if season in show_codes:
+ seasons_shows.append(show_name)
+
+ return sorted(seasons_shows)
+
+ def get_shows_episodes(self, show_name, season=None):
+ """Return a list of episodes for a show. Return empty list if none are
+ found or if an error occurs.
+ """
+ url = self.servlets_url + '/browse'
+ try:
+ cid = self.seasonal_shows[show_name][season]
+ except KeyError:
+ try:
+ cid = self.non_seasonal_shows[show_name]
+ except KeyError:
+ return []
+
+ if show_name == 'NFL RedZone Archives':
+ ps = 17
+ else:
+ ps = 50
+
+ post_data = {
+ 'isFlex': 'true',
+ 'cid': cid,
+ 'pm': 0,
+ 'ps': ps,
+ 'pn': 1
+ }
+
+ archive_data = self.make_request(url=url, method='post', payload=post_data)
+ archive_dict = xmltodict.parse(archive_data)['result']
+
+ try:
+ items = archive_dict['programs']['program']
+ # if only one episode is returned, we explicitly put it into a list
+ if isinstance(items, dict):
+ items = [items]
+ return items
+ except TypeError:
+ return []
+
+ def get_seasons_and_weeks(self):
+ """Return a multidimensional array of all seasons and weeks."""
+ seasons_and_weeks = {}
+
+ try:
+ url = self.locEDLBaseUrl + '/mobile/weeks_v2.xml'
+ s_w_data = self.make_request(url=url, method='get')
+ s_w_data_dict = xmltodict.parse(s_w_data)
+ except:
+ self.log('Acquiring season and week data failed.')
+ raise
+
+ try:
+ for season in s_w_data_dict['seasons']['season']:
+ year = season['@season']
+ season_dict = {}
+
+ for week in season['week']:
+ if week['@section'] == "pre": # preseason
+ week_code = '1' + week['@value'].zfill(2)
+ season_dict[week_code] = week
+ else: # regular season and post season
+ week_code = '2' + week['@value'].zfill(2)
+ season_dict[week_code] = week
+
+ seasons_and_weeks[year] = season_dict
+ except KeyError:
+ self.log('Parsing season and week data failed.')
+ raise
+
+ return seasons_and_weeks
+
+ def get_weeks_games(self, season, week_code):
+ """Return a list of games for a week."""
+ url = self.servlets_url + '/games'
+ post_data = {
+ 'isFlex': 'true',
+ 'season': season,
+ 'week': week_code
+ }
+
+ game_data = self.make_request(url=url, method='post', payload=post_data)
+ game_data_dict = xmltodict.parse(game_data)['result']
+ if game_data_dict['games']:
+ games = game_data_dict['games']['game']
+ # if only one game is returned, we explicitly put it into a list
+ if isinstance(games, dict):
+ games = [games]
+
+ return games
+ else:
+ return None
+
+ def login(self, username=None, password=None):
+ """Complete login process for Game Pass. Errors (auth issues, blackout,
+ etc) are raised as LoginFailure.
+ """
+ if self.check_for_subscription():
+ self.log('Already logged into Game Pass %s' % self.subscription)
+ else:
+ if username and password:
+ self.log('Not (yet) logged into %s' % self.subscription)
+ self.login_to_account(username, password)
+ if not self.check_for_subscription():
+ raise self.LoginFailure('%s login failed' % self.subscription)
+ elif self.subscription == 'domestic' and self.service_blackout():
+ raise self.LoginFailure('Game Pass Domestic Blackout')
+ else:
+ self.log('No username and password supplied.')
+ raise self.LoginFailure('No username and password supplied.')
+
+ def login_to_account(self, username, password):
+ """Blindly authenticate to Game Pass. Use check_for_subscription() to
+ determine success.
+ """
+ url = self.base_url + '/secure/nfllogin'
+ post_data = {
+ 'username': username,
+ 'password': password
+ }
+ self.make_request(url=url, method='post', payload=post_data)
+
+ def make_request(self, url, method, payload=None, headers=None):
+ """Make an http request. Return the response."""
+ self.log('Request URL: %s' % url)
+ self.log('Headers: %s' % headers)
+
+ try:
+ if method == 'get':
+ req = self.http_session.get(url, params=payload, headers=headers, allow_redirects=False)
+ else: # post
+ req = self.http_session.post(url, data=payload, headers=headers, allow_redirects=False)
+ req.raise_for_status()
+ self.log('Response code: %s' % req.status_code)
+ self.log('Response: %s' % req.content)
+ self.cookie_jar.save(ignore_discard=True, ignore_expires=False)
+ return req.content
+ except requests.exceptions.HTTPError as error:
+ self.log('An HTTP error occurred: %s' % error)
+ raise
+ except requests.exceptions.ProxyError:
+ self.log('Error connecting to proxy server')
+ raise
+ except requests.exceptions.ConnectionError as error:
+ self.log('Connection Error: - %s' % error.message)
+ raise
+ except requests.exceptions.RequestException as error:
+ self.log('Error: - %s' % error.value)
+ raise
+
+ def parse_manifest(self, manifest):
+ """Return a dict of the supplied XML manifest. Builds and adds
+ "full_url" for convenience.
+ """
+ streams = {}
+ manifest_dict = xmltodict.parse(manifest)
+
+ for stream in manifest_dict['channel']['streamDatas']['streamData']:
+ try:
+ url_path = stream['@url']
+ bitrate = url_path[(url_path.rindex('_') + 1):url_path.rindex('.')]
+ try:
+ stream['full_url'] = 'http://%s%s.m3u8' % (stream['httpservers']['httpserver']['@name'], url_path)
+ except TypeError: # if multiple servers are returned, use the first in the list
+ stream['full_url'] = 'http://%s%s.m3u8' % (stream['httpservers']['httpserver'][0]['@name'], url_path)
+
+ streams[bitrate] = stream
+ except KeyError:
+ self.log(format_exc())
+
+ return streams
+
+ def redzone_on_air(self):
+ """Return whether RedZone Live is currently broadcasting."""
+ url = self.simpleconsole_url
+ post_data = {'isFlex': 'true'}
+ sc_data = self.make_request(url=url, method='post', payload=post_data)
+
+ sc_dict = xmltodict.parse(sc_data)['result']
+
+ # Dynamically parse NFL-Network shows
+ self.parse_shows(sc_dict)
+
+ # Check if RedZone is Live
+ if sc_dict['rzPhase'] in ('pre', 'in'):
+ self.log('RedZone is on air.')
+ return True
+ else:
+ self.log('RedZone is not on air.')
+ return False
+
+ def service_blackout(self):
+ """Return whether Game Pass is blacked out."""
+ url = self.base_url + '/secure/schedule'
+ blackout_message = ('Due to broadcast restrictions, NFL Game Pass is currently unavailable.'
+ ' Please check back later.')
+ service_data = self.make_request(url=url, method='get')
+
+ if blackout_message in service_data:
+ return True
+ else:
+ return False
diff --git a/plugin.video.nfl.gamepass/resources/settings.xml b/plugin.video.nfl.gamepass/resources/settings.xml
new file mode 100644
index 0000000..ee5512f
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/settings.xml
@@ -0,0 +1,21 @@
+<settings>
+ <category label="30029">
+ <setting id="email" type="text" label="30001" default=""/>
+ <setting id="password" type="text" label="30002" default="" option="hidden" visible="!eq(-1,)" enable="!eq(-1,)"/>
+ </category>
+ <category label="30030">
+ <setting id="preferred_bitrate" type="select" label="30003" lvalues="30004|30005|30006|30007|30008|30009|30010|30011|30012" default="8"/>
+ <setting id="preferred_game_version" type="select" label="30013" lvalues="30014|30015|30012" default="0"/>
+ <setting id="local_tz" type="enum" label="30020" lvalues="30026|30027|30028" default="0"/>
+ <setting id="hide_game_length" type="bool" label="30025" default="false"/>
+ </category>
+ <category label="30033">
+ <setting id="proxy_enabled" type="bool" label="30034" default="false"/>
+ <setting id="proxy_scheme" type="labelenum" label="30035" values="http|https" default="http" enable="eq(-1,true)"/>
+ <setting id="proxy_host" type="text" label="30036" default="" enable="eq(-2,true)"/>
+ <setting id="proxy_port" type="number" label="30037" default="" enable="eq(-3,true)"/>
+ <setting id="proxy_auth" type="bool" label="30042" default="false" enable="eq(-4,true)"/>
+ <setting id="proxy_username" type="text" label="30038" default="" enable="eq(-1,true)"/>
+ <setting id="proxy_password" type="text" label="30039" default="" option="hidden" enable="eq(-2,true)"/>
+ </category>
+</settings>
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/1080i/script-gamepass-coach.xml b/plugin.video.nfl.gamepass/resources/skins/Default/1080i/script-gamepass-coach.xml
new file mode 100644
index 0000000..5834edd
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/1080i/script-gamepass-coach.xml
@@ -0,0 +1,171 @@
+<window type="window" id="9507">
+ <allowoverlay>yes</allowoverlay>
+ <defaultcontrol always="true">110</defaultcontrol>
+ <controls>
+ <control type="image">
+ <description>Normal Default Background Image</description>
+ <width>1920</width>
+ <height>1080</height>
+ <aspectratio>scale</aspectratio>
+ <texture>../../../../fanart.jpg</texture>
+ </control>
+ <control type="label" id="99">
+ <description>Title text</description>
+ <left>15</left>
+ <height>60</height>
+ <top>10</top>
+ <width>1320</width>
+ <align>center</align>
+ <aligny>center</aligny>
+ <info></info>
+ <font>font30</font>
+ <textcolor>FFEEEEEE</textcolor>
+ <shadowcolor>ff000000</shadowcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <visible>![Player.HasMedia + Control.IsVisible(101)]</visible>
+ </control>
+
+ <control type="image">
+ <description>Video shadow</description>
+ <left>17</left>
+ <top>175</top>
+ <width>1290</width>
+ <height>730</height>
+ <aspectratio>stretch</aspectratio>
+ <texture border="8">GamePass/shadowbox.png</texture>
+ <visible>Control.IsVisible(100) + Player.HasMedia</visible>
+ </control>
+ <control type="videowindow" id="100">
+ <description>1280x720 Video</description>
+ <left>22</left>
+ <top>0</top>
+ <width>1280</width>
+ </control>
+
+ <control type="group">
+ <visible>Control.IsVisible(100) + Player.HasMedia</visible>
+
+ <control type="progress">
+ <left>18</left>
+ <top>920</top>
+ <width>1288</width>
+ <height>20</height>
+ <texturebg border="8" colordiffuse="66CCCCCC">GamePass/progressbg.png</texturebg>
+ <lefttexture>-</lefttexture>
+ <midtexture border="8" colordiffuse="CCFFFFFF">GamePass/progress.png</midtexture>
+ <righttexture>-</righttexture>
+ <overlaytexture>-</overlaytexture>
+ <info>Player.Progress</info>
+ </control>
+
+ <control type="label">
+ <description>Remaining time</description>
+ <top>940</top>
+ <left>988</left>
+ <height>30</height>
+ <width>300</width>
+ <align>right</align>
+ <aligny>center</aligny>
+ <label>$INFO[Player.Time] / $INFO[Player.Duration]</label>
+ <font>font12</font>
+ <textcolor>FFEEEEEE</textcolor>
+ </control>
+ </control>
+
+ <control type="list" id="110">
+ <description>Play list container</description>
+ <left>1329</left>
+ <top>0</top>
+ <width>580</width>
+ <height>1080</height>
+ <viewtype label="list">list</viewtype>
+ <orientation>vertical</orientation>
+ <autoscroll>false</autoscroll>
+ <pagecontrol>60</pagecontrol>
+ <onleft>90</onleft>
+ <onright>60</onright>
+ <visible>![Player.HasMedia + Control.IsVisible(101)]</visible>
+ <itemlayout width="580" height="60">
+ <control type="image">
+ <width>580</width>
+ <height>60</height>
+ <texture>GamePass/week_bg.png</texture>
+ </control>
+ <control type="label">
+ <description>Clip description, not focused</description>
+ <left>5</left>
+ <width>570</width>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font12</font>
+ <textcolor>FF111111</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ </itemlayout>
+ <focusedlayout width="580" height="60">
+ <control type="image">
+ <width>580</width>
+ <height>60</height>
+ <texture>GamePass/week_focus.png</texture>
+ <visible>Control.HasFocus(110)</visible>
+ </control>
+ <control type="image">
+ <width>580</width>
+ <height>60</height>
+ <texture>GamePass/week_focus2.png</texture>
+ <visible>!Control.HasFocus(110)</visible>
+ </control>
+ <control type="label">
+ <description>Clip description, focused</description>
+ <left>5</left>
+ <width>570</width>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font12</font>
+ <textcolor>FFFFFFFF</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ <visible>Control.HasFocus(110)</visible>
+ </control>
+ <control type="label">
+ <description>Clip description, not focused</description>
+ <left>5</left>
+ <width>570</width>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font12</font>
+ <textcolor>FF111111</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ <visible>!Control.HasFocus(110)</visible>
+ </control>
+ </focusedlayout>
+ </control>
+ <control type="scrollbar" id="60">
+ <left>1910</left>
+ <top>0</top>
+ <width>10</width>
+ <height>720</height>
+ <onup>60</onup>
+ <ondown>60</ondown>
+ <onleft>110</onleft>
+ <onright>110</onright>
+ <texturesliderbackground>-</texturesliderbackground>
+ <texturesliderbar border="1" flipx="true">GamePass/texturesliderbar.png</texturesliderbar>
+ <texturesliderbarfocus border="1" flipx="true">GamePass/texturesliderbar2.png</texturesliderbarfocus>
+ <showonepage>false</showonepage>
+ <orientation>vertical</orientation>
+ <visible>![Player.HasMedia + Control.IsVisible(101)]</visible>
+ </control>
+ </controls>
+</window>
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/1080i/script-gamepass.xml b/plugin.video.nfl.gamepass/resources/skins/Default/1080i/script-gamepass.xml
new file mode 100644
index 0000000..8394c84
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/1080i/script-gamepass.xml
@@ -0,0 +1,725 @@
+<window type="window" id="9506">
+ <allowoverlay>yes</allowoverlay>
+ <defaultcontrol always="true">100</defaultcontrol>
+ <controls>
+ <control type="image">
+ <description>Normal Default Background Image</description>
+ <width>1920</width>
+ <height>1080</height>
+ <aspectratio>scale</aspectratio>
+ <texture>../../../../fanart.jpg</texture>
+ </control>
+ <control type="image">
+ <description>Menubar background</description>
+ <width>1920</width>
+ <height>84</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/menubar.png</texture>
+ </control>
+ <control type="image">
+ <description>SubMenubar background</description>
+ <top>84</top>
+ <width>1920</width>
+ <height>54</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/submenubar.png</texture>
+ </control>
+ <control type="group" id="100">
+ <description>Top row button group</description>
+ <left>210</left>
+ <width>1000</width>
+ <height>45</height>
+ <defaultcontrol>110</defaultcontrol>
+ <control type="button" id="110">
+ <description>International Gamepass button</description>
+ <visible>String.IsEmpty(Window.Property(domestic))</visible>
+ <left>0</left>
+ <width>562</width>
+ <height>84</height>
+ <ondown>210</ondown>
+ <onleft>90</onleft>
+ <onright>130</onright>
+ <texturefocus>GamePass/gp_int_focus.png</texturefocus>
+ <texturenofocus>GamePass/gp_int_normal.png</texturenofocus>
+ </control>
+ <control type="button" id="110">
+ <description>Domestic Gamepass button</description>
+ <visible>!String.IsEmpty(Window.Property(domestic))</visible>
+ <left>0</left>
+ <width>562</width>
+ <height>84</height>
+ <ondown>210</ondown>
+ <onleft>90</onleft>
+ <onright>130</onright>
+ <texturefocus>GamePass/gp_dom_focus.png</texturefocus>
+ <texturenofocus>GamePass/gp_dom_normal.png</texturenofocus>
+ </control>
+ <control type="button" id="130">
+ <description>Network button</description>
+ <left>900</left>
+ <width>562</width>
+ <height>84</height>
+ <ondown>240</ondown>
+ <onleft>110</onleft>
+ <onright>90</onright>
+ <texturefocus>GamePass/network_focus.png</texturefocus>
+ <texturenofocus>GamePass/network_bg.png</texturenofocus>
+ </control>
+ </control>
+
+ <control type="image">
+ <description>International Gamepass active overlay</description>
+ <visible>String.IsEmpty(Window.Property(domestic))</visible>
+ <left>210</left>
+ <width>562</width>
+ <height>84</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/gp_int_selected.png</texture>
+ <visible>!Control.HasFocus(110) + SubString(Window.Property(GP_clicked),true) + Control.IsVisible(110)</visible>
+ </control>
+ <control type="image">
+ <description>Domestic Gamepass active overlay</description>
+ <visible>!String.IsEmpty(Window.Property(domestic))</visible>
+ <left>210</left>
+ <width>562</width>
+ <height>84</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/gp_dom_selected.png</texture>
+ <visible>!Control.HasFocus(110) + SubString(Window.Property(GP_clicked),true) + Control.IsVisible(110)</visible>
+ </control>
+ <control type="image">
+ <description>NFL Network active overlay</description>
+ <left>1110</left>
+ <width>562</width>
+ <height>84</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/network_focus2.png</texture>
+ <visible>!Control.HasFocus(130) + SubString(Window.Property(NW_clicked),true)</visible>
+ </control>
+
+ <control type="button" id="90">
+ <description>Addon Settings button</description>
+ <left>1810</left>
+ <width>84</width>
+ <height>84</height>
+ <ondown>210</ondown>
+ <onleft>130</onleft>
+ <onright>110</onright>
+ <texturefocus>GamePass/settings_focus.png</texturefocus>
+ <texturenofocus>GamePass/settings.png</texturenofocus>
+ <onclick>XBMC.Addon.OpenSettings(plugin.video.nfl.gamepass)</onclick>
+ </control>
+
+ <control type="list" id="210">
+ <description>Season list container</description>
+ <left>10</left>
+ <top>84</top>
+ <width>1200</width>
+ <height>54</height>
+ <onup>100</onup>
+ <ondown>220</ondown>
+ <onright>240</onright>
+ <viewtype label="list">list</viewtype>
+ <orientation>horizontal</orientation>
+ <itemlayout width="150" height="54">
+ <control type="image">
+ <width>150</width>
+ <height>54</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/submenubar_focus2.png</texture>
+ <visible>ListItem.Property(clicked)</visible>
+ </control>
+ <control type="label">
+ <description>Season text</description>
+ <left>5</left>
+ <top>4</top>
+ <width>140</width>
+ <height>45</height>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FF333333</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ </itemlayout>
+ <focusedlayout width="150" height="54">
+ <control type="image">
+ <width>150</width>
+ <height>54</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/submenubar_focus2.png</texture>
+ <visible>ListItem.Property(clicked)</visible>
+ </control>
+ <control type="image">
+ <width>150</width>
+ <height>54</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/submenubar_focus.png</texture>
+ <visible>Control.HasFocus(210)</visible>
+ </control>
+ <control type="label">
+ <description>Season text</description>
+ <left>5</left>
+ <top>4</top>
+ <width>140</width>
+ <height>45</height>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FF222222</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ <visible>!Control.HasFocus(210)</visible>
+ </control>
+ <control type="label">
+ <description>Season text</description>
+ <left>5</left>
+ <top>4</top>
+ <width>140</width>
+ <height>45</height>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FFFFFFFF</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ <visible>Control.HasFocus(210)</visible>
+ </control>
+ </focusedlayout>
+ </control>
+
+ <control type="list" id="240">
+ <description>Live list container</description>
+ <left>1300</left>
+ <top>84</top>
+ <width>675</width>
+ <height>54</height>
+ <onup>100</onup>
+ <ondown>220</ondown>
+ <onleft>210</onleft>
+ <viewtype label="list">list</viewtype>
+ <orientation>horizontal</orientation>
+ <autoscroll>false</autoscroll>
+ <itemlayout width="300" height="54">
+ <control type="image">
+ <width>300</width>
+ <height>54</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/submenuwide_focus2.png</texture>
+ <visible>ListItem.Property(clicked)</visible>
+ </control>
+ <control type="label">
+ <description>Live item text</description>
+ <left>5</left>
+ <top>5</top>
+ <width>290</width>
+ <height>45</height>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FF333333</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ </itemlayout>
+ <focusedlayout width="300" height="54">
+ <control type="image">
+ <width>300</width>
+ <height>54</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/submenuwide_focus2.png</texture>
+ <visible>ListItem.Property(clicked)</visible>
+ </control>
+ <control type="image">
+ <width>300</width>
+ <height>54</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/submenuwide_focus.png</texture>
+ <visible>Control.HasFocus(240)</visible>
+ </control>
+ <control type="label">
+ <description>Live item text</description>
+ <left>5</left>
+ <top>5</top>
+ <width>290</width>
+ <height>45</height>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FF222222</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ <visible>!Control.HasFocus(240)</visible>
+ </control>
+ <control type="label">
+ <description>Live item text</description>
+ <left>5</left>
+ <top>5</top>
+ <width>290</width>
+ <height>45</height>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FFFFFFFF</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ <visible>Control.HasFocus(240)</visible>
+ </control>
+ </focusedlayout>
+ </control>
+
+ <control type="list" id="220">
+ <description>Week/Show list container</description>
+ <left>20</left>
+ <top>160</top>
+ <width>320</width>
+ <height>840</height>
+ <onup>210</onup>
+ <onleft>60</onleft>
+ <onright>230</onright>
+ <viewtype label="list">list</viewtype>
+ <orientation>vertical</orientation>
+ <autoscroll>false</autoscroll>
+ <pagecontrol>60</pagecontrol>
+ <itemlayout width="320" height="60">
+ <control type="image">
+ <width>320</width>
+ <height>60</height>
+ <texture>GamePass/week_bg.png</texture>
+ <visible>!ListItem.Property(clicked) + !ListItem.Property(future)</visible>
+ </control>
+ <control type="image">
+ <width>320</width>
+ <height>60</height>
+ <texture>GamePass/week_bg.png</texture>
+ <colordiffuse>99CCCCCC</colordiffuse>
+ <visible>!ListItem.Property(clicked) + ListItem.Property(future)</visible>
+ </control>
+ <control type="image">
+ <width>320</width>
+ <height>60</height>
+ <texture>GamePass/week_focus2.png</texture>
+ <visible>ListItem.Property(clicked) + !ListItem.Property(future)</visible>
+ </control>
+ <control type="image">
+ <width>320</width>
+ <height>60</height>
+ <texture>GamePass/week_focus2.png</texture>
+ <colordiffuse>AAAAAAAA</colordiffuse>
+ <visible>ListItem.Property(clicked) + ListItem.Property(future)</visible>
+ </control>
+ <control type="label">
+ <description>Week/Show Text</description>
+ <left>5</left>
+ <top>0</top>
+ <width>310</width>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FF111111</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ </itemlayout>
+ <focusedlayout width="320" height="60">
+ <control type="image">
+ <width>320</width>
+ <height>60</height>
+ <texture>GamePass/week_bg.png</texture>
+ <visible>!Control.HasFocus(220) + !ListItem.Property(clicked) + !ListItem.Property(future)</visible>
+ </control>
+ <control type="image">
+ <width>320</width>
+ <height>60</height>
+ <texture>GamePass/week_bg.png</texture>
+ <colordiffuse>99CCCCCC</colordiffuse>
+ <visible>!Control.HasFocus(220) + !ListItem.Property(clicked) + ListItem.Property(future)</visible>
+ </control>
+ <control type="image">
+ <width>320</width>
+ <height>60</height>
+ <texture>GamePass/week_focus2.png</texture>
+ <visible>!Control.HasFocus(220) + ListItem.Property(clicked) + !ListItem.Property(future)</visible>
+ </control>
+ <control type="image">
+ <width>320</width>
+ <height>60</height>
+ <texture>GamePass/week_focus2.png</texture>
+ <colordiffuse>AAAAAAAA</colordiffuse>
+ <visible>!Control.HasFocus(220) + ListItem.Property(clicked) + ListItem.Property(future)</visible>
+ </control>
+ <control type="image">
+ <width>320</width>
+ <height>60</height>
+ <texture>GamePass/week_focus.png</texture>
+ <visible>Control.HasFocus(220) + !ListItem.Property(future)</visible>
+ </control>
+ <control type="image">
+ <width>320</width>
+ <height>60</height>
+ <texture>GamePass/week_focus.png</texture>
+ <colordiffuse>BBFFFFFF</colordiffuse>
+ <visible>Control.HasFocus(220) + ListItem.Property(future)</visible>
+ </control>
+ <control type="label">
+ <description>Week/Show text</description>
+ <left>5</left>
+ <width>310</width>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FFFFFFFF</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ <visible>Control.HasFocus(220)</visible>
+ </control>
+ <control type="label">
+ <description>Week/Show text</description>
+ <left>5</left>
+ <width>310</width>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FF111111</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ <visible>!Control.HasFocus(220)</visible>
+ </control>
+ </focusedlayout>
+ </control>
+ <control type="panel" id="230">
+ <description>Game/Episode panel container</description>
+ <left>350</left>
+ <top>160</top>
+ <width>1560</width>
+ <height>840</height>
+ <onup>210</onup>
+ <onleft>220</onleft>
+ <onright>61</onright>
+ <viewtype label="list">wide</viewtype>
+ <orientation>vertical</orientation>
+ <autoscroll>false</autoscroll>
+ <pagecontrol>61</pagecontrol>
+ <itemlayout width="780" height="105">
+ <control type="image">
+ <left>10</left>
+ <width>760</width>
+ <height>105</height>
+ <texture>GamePass/game_bg.png</texture>
+ <visible>ListItem.Property(isPlayable)</visible>
+ </control>
+ <control type="image">
+ <left>10</left>
+ <width>760</width>
+ <height>105</height>
+ <texture>GamePass/game_bg.png</texture>
+ <colordiffuse>AAFFFFFF</colordiffuse>
+ <visible>!ListItem.Property(isPlayable)</visible>
+ </control>
+ <control type="image">
+ <left>30</left>
+ <top>25</top>
+ <width>82</width>
+ <height>55</height>
+ <info>ListItem.Property(away_thumb)</info>
+ <visible>ListItem.Property(isPlayable)</visible>
+ </control>
+ <control type="image">
+ <left>30</left>
+ <top>25</top>
+ <width>82</width>
+ <height>55</height>
+ <info>ListItem.Property(away_thumb)</info>
+ <colordiffuse>66FFFFFF</colordiffuse>
+ <visible>!ListItem.Property(isPlayable)</visible>
+ </control>
+ <control type="label">
+ <description>Game competitors text</description>
+ <left>115</left>
+ <top>2</top>
+ <width>550</width>
+ <visible>ListItem.Property(is_game)</visible>
+ <align>center</align>
+ <aligny>top</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FF333333</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix></scrollsuffix>
+ </control>
+ <control type="label">
+ <description>Game description text</description>
+ <left>115</left>
+ <top>36</top>
+ <width>550</width>
+ <visible>ListItem.Property(is_game)</visible>
+ <align>center</align>
+ <aligny>top</aligny>
+ <scroll>true</scroll>
+ <info>ListItem.Property(game_info)</info>
+ <font>font12</font>
+ <textcolor>FF333333</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>25</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ <control type="label">
+ <description>Upcoming Game</description>
+ <left>115</left>
+ <top>64</top>
+ <width>550</width>
+ <visible>!ListItem.Property(isPlayable) + ListItem.Property(is_game)</visible>
+ <align>center</align>
+ <aligny>top</aligny>
+ <scroll>true</scroll>
+ <label>» Upcoming Game «</label>
+ <font>font12</font>
+ <textcolor>FF000000</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>25</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ <control type="label">
+ <description>Show Name</description>
+ <left>130</left>
+ <top>15</top>
+ <width>670</width>
+ <visible>ListItem.Property(is_show)</visible>
+ <align>left</align>
+ <aligny>top</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FF333333</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix></scrollsuffix>
+ </control>
+ <control type="label">
+ <description>Show description text</description>
+ <left>130</left>
+ <top>50</top>
+ <width>670</width>
+ <visible>ListItem.Property(is_show)</visible>
+ <align>left</align>
+ <aligny>top</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Property(game_info)</info>
+ <font>font12</font>
+ <textcolor>FF333333</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>0</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ <control type="image">
+ <left>670</left>
+ <top>25</top>
+ <width>82</width>
+ <height>55</height>
+ <info>ListItem.Property(home_thumb)</info>
+ <visible>ListItem.Property(isPlayable) + ListItem.Property(is_game)</visible>
+ </control>
+ <control type="image">
+ <left>670</left>
+ <top>25</top>
+ <width>82</width>
+ <height>55</height>
+ <info>ListItem.Property(home_thumb)</info>
+ <colordiffuse>66FFFFFF</colordiffuse>
+ <visible>!ListItem.Property(isPlayable) + ListItem.Property(is_game)</visible>
+ </control>
+ </itemlayout>
+ <focusedlayout width="780" height="105">
+ <control type="image">
+ <left>10</left>
+ <width>760</width>
+ <height>105</height>
+ <texture>GamePass/game_focus.png</texture>
+ <visible>ListItem.Property(isPlayable)</visible>
+ </control>
+ <control type="image">
+ <left>10</left>
+ <width>760</width>
+ <height>105</height>
+ <texture>GamePass/game_focus.png</texture>
+ <colordiffuse>CCFFFFFF</colordiffuse>
+ <visible>!ListItem.Property(isPlayable)</visible>
+ </control>
+ <control type="image">
+ <left>30</left>
+ <top>25</top>
+ <width>82</width>
+ <height>55</height>
+ <info>ListItem.Property(away_thumb)</info>
+ <visible>ListItem.Property(isPlayable)</visible>
+ </control>
+ <control type="image">
+ <left>30</left>
+ <top>25</top>
+ <width>82</width>
+ <height>55</height>
+ <info>ListItem.Property(away_thumb)</info>
+ <colordiffuse>99FFFFFF</colordiffuse>
+ <visible>!ListItem.Property(isPlayable)</visible>
+ </control>
+ <control type="label">
+ <description>Game competitors text</description>
+ <left>115</left>
+ <top>2</top>
+ <width>550</width>
+ <visible>ListItem.Property(is_game)</visible>
+ <align>center</align>
+ <aligny>top</aligny>
+ <scroll>true</scroll>
+ <info>ListItem.Label2</info>
+ <font>font13</font>
+ <textcolor>FF222222</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ <control type="label">
+ <description>Game description text</description>
+ <left>115</left>
+ <top>36</top>
+ <width>550</width>
+ <visible>ListItem.Property(is_game)</visible>
+ <align>center</align>
+ <aligny>top</aligny>
+ <scroll>true</scroll>
+ <info>ListItem.Property(game_info)</info>
+ <font>font12</font>
+ <textcolor>FF333333</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>25</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ <control type="label">
+ <description>Upcoming Game</description>
+ <left>115</left>
+ <top>64</top>
+ <width>550</width>
+ <visible>!ListItem.Property(isPlayable) + ListItem.Property(is_game)</visible>
+ <align>center</align>
+ <aligny>top</aligny>
+ <scroll>true</scroll>
+ <label>» Upcoming Game «</label>
+ <font>font12</font>
+ <textcolor>FF000000</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>25</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ <control type="label">
+ <description>Show Name</description>
+ <left>130</left>
+ <top>15</top>
+ <width>670</width>
+ <visible>ListItem.Property(is_show)</visible>
+ <align>left</align>
+ <aligny>top</aligny>
+ <scroll>true</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FF222222</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ <control type="label">
+ <description>Show description text</description>
+ <left>130</left>
+ <top>50</top>
+ <width>670</width>
+ <visible>ListItem.Property(is_show)</visible>
+ <align>left</align>
+ <aligny>top</aligny>
+ <scroll>true</scroll>
+ <info>ListItem.Property(game_info)</info>
+ <font>font12</font>
+ <textcolor>FF333333</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>25</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ <control type="image">
+ <left>670</left>
+ <top>25</top>
+ <width>82</width>
+ <height>55</height>
+ <info>ListItem.Property(home_thumb)</info>
+ <visible>ListItem.Property(isPlayable) + ListItem.Property(is_game)</visible>
+ </control>
+ <control type="image">
+ <left>670</left>
+ <top>25</top>
+ <width>82</width>
+ <height>55</height>
+ <info>ListItem.Property(home_thumb)</info>
+ <colordiffuse>99FFFFFF</colordiffuse>
+ <visible>!ListItem.Property(isPlayable) + ListItem.Property(is_game)</visible>
+ </control>
+ </focusedlayout>
+ </control>
+ <control type="scrollbar" id="60">
+ <left>9</left>
+ <top>160</top>
+ <width>10</width>
+ <height>840</height>
+ <onup>60</onup>
+ <ondown>60</ondown>
+ <onleft>220</onleft>
+ <onright>220</onright>
+ <texturesliderbackground>-</texturesliderbackground>
+ <texturesliderbar border="1">GamePass/texturesliderbar.png</texturesliderbar>
+ <texturesliderbarfocus border="1">GamePass/texturesliderbar2.png</texturesliderbarfocus>
+ <showonepage>false</showonepage>
+ <orientation>vertical</orientation>
+ </control>
+ <control type="scrollbar" id="61">
+ <left>1901</left>
+ <top>160</top>
+ <width>10</width>
+ <height>560</height>
+ <onup>61</onup>
+ <ondown>61</ondown>
+ <onleft>230</onleft>
+ <onright>220</onright>
+ <texturesliderbackground>-</texturesliderbackground>
+ <texturesliderbar border="1" flipx="true">GamePass/texturesliderbar.png</texturesliderbar>
+ <texturesliderbarfocus border="1" flipx="true">GamePass/texturesliderbar2.png</texturesliderbarfocus>
+ <showonepage>false</showonepage>
+ <orientation>vertical</orientation>
+ </control>
+ </controls>
+</window>
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/720p/script-gamepass-coach.xml b/plugin.video.nfl.gamepass/resources/skins/Default/720p/script-gamepass-coach.xml
new file mode 100644
index 0000000..96a9515
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/720p/script-gamepass-coach.xml
@@ -0,0 +1,171 @@
+<window type="window" id="9507">
+ <allowoverlay>yes</allowoverlay>
+ <defaultcontrol always="true">110</defaultcontrol>
+ <controls>
+ <control type="image">
+ <description>Normal Default Background Image</description>
+ <width>1280</width>
+ <height>720</height>
+ <aspectratio>scale</aspectratio>
+ <texture>../../../../fanart.jpg</texture>
+ </control>
+ <control type="label" id="99">
+ <description>Title text</description>
+ <left>92</left>
+ <height>60</height>
+ <top>10</top>
+ <width>800</width>
+ <align>center</align>
+ <aligny>center</aligny>
+ <info></info>
+ <font>font30</font>
+ <textcolor>FFEEEEEE</textcolor>
+ <shadowcolor>ff000000</shadowcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <visible>![Player.HasMedia + Control.IsVisible(101)]</visible>
+ </control>
+
+ <control type="image">
+ <description>Video shadow</description>
+ <left>7</left>
+ <top>85</top>
+ <width>970</width>
+ <height>550</height>
+ <aspectratio>stretch</aspectratio>
+ <texture border="8">GamePass/shadowbox.png</texture>
+ <visible>Control.IsVisible(100) + Player.HasMedia</visible>
+ </control>
+ <control type="videowindow" id="100">
+ <description>960x540 Video</description>
+ <left>12</left>
+ <top>0</top>
+ <width>960</width>
+ </control>
+
+ <control type="group">
+ <visible>Control.IsVisible(100) + Player.HasMedia</visible>
+
+ <control type="progress">
+ <left>8</left>
+ <top>630</top>
+ <width>968</width>
+ <height>20</height>
+ <texturebg border="8" colordiffuse="66CCCCCC">GamePass/progressbg.png</texturebg>
+ <lefttexture>-</lefttexture>
+ <midtexture border="8" colordiffuse="CCFFFFFF">GamePass/progress.png</midtexture>
+ <righttexture>-</righttexture>
+ <overlaytexture>-</overlaytexture>
+ <info>Player.Progress</info>
+ </control>
+
+ <control type="label">
+ <description>Remaining time</description>
+ <top>645</top>
+ <left>760</left>
+ <height>30</height>
+ <width>200</width>
+ <align>right</align>
+ <aligny>center</aligny>
+ <label>$INFO[Player.Time] / $INFO[Player.Duration]</label>
+ <font>font12</font>
+ <textcolor>FFEEEEEE</textcolor>
+ </control>
+ </control>
+
+ <control type="list" id="110">
+ <description>Play list container</description>
+ <left>985</left>
+ <top>0</top>
+ <width>280</width>
+ <height>720</height>
+ <viewtype label="list">list</viewtype>
+ <orientation>vertical</orientation>
+ <autoscroll>false</autoscroll>
+ <pagecontrol>60</pagecontrol>
+ <onleft>90</onleft>
+ <onright>60</onright>
+ <visible>![Player.HasMedia + Control.IsVisible(101)]</visible>
+ <itemlayout width="280" height="40">
+ <control type="image">
+ <width>280</width>
+ <height>40</height>
+ <texture>GamePass/week_bg.png</texture>
+ </control>
+ <control type="label">
+ <description>Clip description, not focused</description>
+ <left>5</left>
+ <width>270</width>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font12</font>
+ <textcolor>FF111111</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ </itemlayout>
+ <focusedlayout width="280" height="40">
+ <control type="image">
+ <width>280</width>
+ <height>40</height>
+ <texture>GamePass/week_focus.png</texture>
+ <visible>Control.HasFocus(110)</visible>
+ </control>
+ <control type="image">
+ <width>280</width>
+ <height>40</height>
+ <texture>GamePass/week_focus2.png</texture>
+ <visible>!Control.HasFocus(110)</visible>
+ </control>
+ <control type="label">
+ <description>Clip description, focused</description>
+ <left>5</left>
+ <width>270</width>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font12</font>
+ <textcolor>FFFFFFFF</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ <visible>Control.HasFocus(110)</visible>
+ </control>
+ <control type="label">
+ <description>Clip description, not focused</description>
+ <left>5</left>
+ <width>270</width>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font12</font>
+ <textcolor>FF111111</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ <visible>!Control.HasFocus(110)</visible>
+ </control>
+ </focusedlayout>
+ </control>
+ <control type="scrollbar" id="60">
+ <left>1270</left>
+ <top>0</top>
+ <width>10</width>
+ <height>720</height>
+ <onup>60</onup>
+ <ondown>60</ondown>
+ <onleft>110</onleft>
+ <onright>110</onright>
+ <texturesliderbackground>-</texturesliderbackground>
+ <texturesliderbar border="1" flipx="true">GamePass/texturesliderbar.png</texturesliderbar>
+ <texturesliderbarfocus border="1" flipx="true">GamePass/texturesliderbar2.png</texturesliderbarfocus>
+ <showonepage>false</showonepage>
+ <orientation>vertical</orientation>
+ <visible>![Player.HasMedia + Control.IsVisible(101)]</visible>
+ </control>
+ </controls>
+</window>
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/720p/script-gamepass.xml b/plugin.video.nfl.gamepass/resources/skins/Default/720p/script-gamepass.xml
new file mode 100644
index 0000000..04e5609
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/720p/script-gamepass.xml
@@ -0,0 +1,725 @@
+<window type="window" id="9506">
+ <allowoverlay>yes</allowoverlay>
+ <defaultcontrol always="true">100</defaultcontrol>
+ <controls>
+ <control type="image">
+ <description>Normal Default Background Image</description>
+ <width>1280</width>
+ <height>720</height>
+ <aspectratio>scale</aspectratio>
+ <texture>../../../../fanart.jpg</texture>
+ </control>
+ <control type="image">
+ <description>Menubar background</description>
+ <width>1280</width>
+ <height>56</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/menubar.png</texture>
+ </control>
+ <control type="image">
+ <description>SubMenubar background</description>
+ <top>56</top>
+ <width>1280</width>
+ <height>36</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/submenubar.png</texture>
+ </control>
+ <control type="group" id="100">
+ <description>Top row button group</description>
+ <left>140</left>
+ <width>1000</width>
+ <height>30</height>
+ <defaultcontrol>110</defaultcontrol>
+ <control type="button" id="110">
+ <description>International Gamepass button</description>
+ <visible>String.IsEmpty(Window.Property(domestic))</visible>
+ <left>0</left>
+ <width>375</width>
+ <height>56</height>
+ <ondown>210</ondown>
+ <onleft>90</onleft>
+ <onright>130</onright>
+ <texturefocus>GamePass/gp_int_focus.png</texturefocus>
+ <texturenofocus>GamePass/gp_int_normal.png</texturenofocus>
+ </control>
+ <control type="button" id="110">
+ <description>Domestic Gamepass button</description>
+ <visible>!String.IsEmpty(Window.Property(domestic))</visible>
+ <left>0</left>
+ <width>375</width>
+ <height>56</height>
+ <ondown>210</ondown>
+ <onleft>90</onleft>
+ <onright>130</onright>
+ <texturefocus>GamePass/gp_dom_focus.png</texturefocus>
+ <texturenofocus>GamePass/gp_dom_normal.png</texturenofocus>
+ </control>
+ <control type="button" id="130">
+ <description>Network button</description>
+ <left>600</left>
+ <width>375</width>
+ <height>56</height>
+ <ondown>240</ondown>
+ <onleft>110</onleft>
+ <onright>90</onright>
+ <texturefocus>GamePass/network_focus.png</texturefocus>
+ <texturenofocus>GamePass/network_bg.png</texturenofocus>
+ </control>
+ </control>
+
+ <control type="image">
+ <description>International Gamepass active overlay</description>
+ <visible>String.IsEmpty(Window.Property(domestic))</visible>
+ <left>140</left>
+ <width>375</width>
+ <height>56</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/gp_int_selected.png</texture>
+ <visible>!Control.HasFocus(110) + SubString(Window.Property(GP_clicked),true) + Control.IsVisible(110)</visible>
+ </control>
+ <control type="image">
+ <description>Domestic Gamepass active overlay</description>
+ <visible>!String.IsEmpty(Window.Property(domestic))</visible>
+ <left>140</left>
+ <width>375</width>
+ <height>56</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/gp_dom_selected.png</texture>
+ <visible>!Control.HasFocus(110) + SubString(Window.Property(GP_clicked),true) + Control.IsVisible(110)</visible>
+ </control>
+ <control type="image">
+ <description>NFL Network active overlay</description>
+ <left>740</left>
+ <width>375</width>
+ <height>56</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/network_focus2.png</texture>
+ <visible>!Control.HasFocus(130) + SubString(Window.Property(NW_clicked),true)</visible>
+ </control>
+
+ <control type="button" id="90">
+ <description>Addon Settings button</description>
+ <left>1210</left>
+ <width>56</width>
+ <height>56</height>
+ <ondown>210</ondown>
+ <onleft>130</onleft>
+ <onright>110</onright>
+ <texturefocus>GamePass/settings_focus.png</texturefocus>
+ <texturenofocus>GamePass/settings.png</texturenofocus>
+ <onclick>XBMC.Addon.OpenSettings(plugin.video.nfl.gamepass)</onclick>
+ </control>
+
+ <control type="list" id="210">
+ <description>Season list container</description>
+ <left>10</left>
+ <top>56</top>
+ <width>700</width>
+ <height>50</height>
+ <onup>100</onup>
+ <ondown>220</ondown>
+ <onright>240</onright>
+ <viewtype label="list">list</viewtype>
+ <orientation>horizontal</orientation>
+ <itemlayout width="100" height="36">
+ <control type="image">
+ <width>100</width>
+ <height>36</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/submenubar_focus2.png</texture>
+ <visible>ListItem.Property(clicked)</visible>
+ </control>
+ <control type="label">
+ <description>Season text</description>
+ <left>5</left>
+ <top>3</top>
+ <width>90</width>
+ <height>30</height>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FF333333</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ </itemlayout>
+ <focusedlayout width="100" height="36">
+ <control type="image">
+ <width>100</width>
+ <height>36</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/submenubar_focus2.png</texture>
+ <visible>ListItem.Property(clicked)</visible>
+ </control>
+ <control type="image">
+ <width>100</width>
+ <height>36</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/submenubar_focus.png</texture>
+ <visible>Control.HasFocus(210)</visible>
+ </control>
+ <control type="label">
+ <description>Season text</description>
+ <left>5</left>
+ <top>3</top>
+ <width>90</width>
+ <height>30</height>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FF222222</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ <visible>!Control.HasFocus(210)</visible>
+ </control>
+ <control type="label">
+ <description>Season text</description>
+ <left>5</left>
+ <top>3</top>
+ <width>90</width>
+ <height>30</height>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FFFFFFFF</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ <visible>Control.HasFocus(210)</visible>
+ </control>
+ </focusedlayout>
+ </control>
+
+ <control type="list" id="240">
+ <description>Live list container</description>
+ <left>870</left>
+ <top>56</top>
+ <width>450</width>
+ <height>50</height>
+ <onup>100</onup>
+ <ondown>220</ondown>
+ <onleft>210</onleft>
+ <viewtype label="list">list</viewtype>
+ <orientation>horizontal</orientation>
+ <autoscroll>false</autoscroll>
+ <itemlayout width="200" height="36">
+ <control type="image">
+ <width>200</width>
+ <height>36</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/submenuwide_focus2.png</texture>
+ <visible>ListItem.Property(clicked)</visible>
+ </control>
+ <control type="label">
+ <description>Live item text</description>
+ <left>5</left>
+ <top>3</top>
+ <width>190</width>
+ <height>30</height>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FF333333</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ </itemlayout>
+ <focusedlayout width="200" height="36">
+ <control type="image">
+ <width>200</width>
+ <height>36</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/submenuwide_focus2.png</texture>
+ <visible>ListItem.Property(clicked)</visible>
+ </control>
+ <control type="image">
+ <width>200</width>
+ <height>36</height>
+ <aspectratio>stretch</aspectratio>
+ <texture>GamePass/submenuwide_focus.png</texture>
+ <visible>Control.HasFocus(240)</visible>
+ </control>
+ <control type="label">
+ <description>Live item text</description>
+ <left>5</left>
+ <top>3</top>
+ <width>190</width>
+ <height>30</height>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FF222222</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ <visible>!Control.HasFocus(240)</visible>
+ </control>
+ <control type="label">
+ <description>Live item text</description>
+ <left>5</left>
+ <top>3</top>
+ <width>190</width>
+ <height>30</height>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FFFFFFFF</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ <visible>Control.HasFocus(240)</visible>
+ </control>
+ </focusedlayout>
+ </control>
+
+ <control type="list" id="220">
+ <description>Week/Show list container</description>
+ <left>20</left>
+ <top>110</top>
+ <width>290</width>
+ <height>560</height>
+ <onup>210</onup>
+ <onleft>60</onleft>
+ <onright>230</onright>
+ <viewtype label="list">list</viewtype>
+ <orientation>vertical</orientation>
+ <autoscroll>false</autoscroll>
+ <pagecontrol>60</pagecontrol>
+ <itemlayout width="280" height="40">
+ <control type="image">
+ <width>280</width>
+ <height>40</height>
+ <texture>GamePass/week_bg.png</texture>
+ <visible>!ListItem.Property(clicked) + !ListItem.Property(future)</visible>
+ </control>
+ <control type="image">
+ <width>280</width>
+ <height>40</height>
+ <texture>GamePass/week_bg.png</texture>
+ <colordiffuse>99CCCCCC</colordiffuse>
+ <visible>!ListItem.Property(clicked) + ListItem.Property(future)</visible>
+ </control>
+ <control type="image">
+ <width>280</width>
+ <height>40</height>
+ <texture>GamePass/week_focus2.png</texture>
+ <visible>ListItem.Property(clicked) + !ListItem.Property(future)</visible>
+ </control>
+ <control type="image">
+ <width>280</width>
+ <height>40</height>
+ <texture>GamePass/week_focus2.png</texture>
+ <colordiffuse>AAAAAAAA</colordiffuse>
+ <visible>ListItem.Property(clicked) + ListItem.Property(future)</visible>
+ </control>
+ <control type="label">
+ <description>Week/Show Text</description>
+ <left>5</left>
+ <top>0</top>
+ <width>270</width>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FF111111</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ </itemlayout>
+ <focusedlayout width="280" height="40">
+ <control type="image">
+ <width>280</width>
+ <height>40</height>
+ <texture>GamePass/week_bg.png</texture>
+ <visible>!Control.HasFocus(220) + !ListItem.Property(clicked) + !ListItem.Property(future)</visible>
+ </control>
+ <control type="image">
+ <width>280</width>
+ <height>40</height>
+ <texture>GamePass/week_bg.png</texture>
+ <colordiffuse>99CCCCCC</colordiffuse>
+ <visible>!Control.HasFocus(220) + !ListItem.Property(clicked) + ListItem.Property(future)</visible>
+ </control>
+ <control type="image">
+ <width>280</width>
+ <height>40</height>
+ <texture>GamePass/week_focus2.png</texture>
+ <visible>!Control.HasFocus(220) + ListItem.Property(clicked) + !ListItem.Property(future)</visible>
+ </control>
+ <control type="image">
+ <width>280</width>
+ <height>40</height>
+ <texture>GamePass/week_focus2.png</texture>
+ <colordiffuse>AAAAAAAA</colordiffuse>
+ <visible>!Control.HasFocus(220) + ListItem.Property(clicked) + ListItem.Property(future)</visible>
+ </control>
+ <control type="image">
+ <width>280</width>
+ <height>40</height>
+ <texture>GamePass/week_focus.png</texture>
+ <visible>Control.HasFocus(220) + !ListItem.Property(future)</visible>
+ </control>
+ <control type="image">
+ <width>280</width>
+ <height>40</height>
+ <texture>GamePass/week_focus.png</texture>
+ <colordiffuse>BBFFFFFF</colordiffuse>
+ <visible>Control.HasFocus(220) + ListItem.Property(future)</visible>
+ </control>
+ <control type="label">
+ <description>Week/Show text</description>
+ <left>5</left>
+ <width>270</width>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FFFFFFFF</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ <visible>Control.HasFocus(220)</visible>
+ </control>
+ <control type="label">
+ <description>Week/Show text</description>
+ <left>5</left>
+ <width>270</width>
+ <align>center</align>
+ <aligny>center</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FF111111</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ <visible>!Control.HasFocus(220)</visible>
+ </control>
+ </focusedlayout>
+ </control>
+ <control type="panel" id="230">
+ <description>Game/Episode panel container</description>
+ <left>330</left>
+ <top>110</top>
+ <width>920</width>
+ <height>560</height>
+ <onup>210</onup>
+ <onleft>220</onleft>
+ <onright>61</onright>
+ <viewtype label="list">wide</viewtype>
+ <orientation>vertical</orientation>
+ <autoscroll>false</autoscroll>
+ <pagecontrol>61</pagecontrol>
+ <itemlayout width="460" height="80">
+ <control type="image">
+ <left>10</left>
+ <width>440</width>
+ <height>80</height>
+ <texture>GamePass/game_bg.png</texture>
+ <visible>ListItem.Property(isPlayable)</visible>
+ </control>
+ <control type="image">
+ <left>10</left>
+ <width>440</width>
+ <height>80</height>
+ <texture>GamePass/game_bg.png</texture>
+ <colordiffuse>AAFFFFFF</colordiffuse>
+ <visible>!ListItem.Property(isPlayable)</visible>
+ </control>
+ <control type="image">
+ <left>22</left>
+ <top>12</top>
+ <width>82</width>
+ <height>55</height>
+ <info>ListItem.Property(away_thumb)</info>
+ <visible>ListItem.Property(isPlayable)</visible>
+ </control>
+ <control type="image">
+ <left>22</left>
+ <top>12</top>
+ <width>82</width>
+ <height>55</height>
+ <info>ListItem.Property(away_thumb)</info>
+ <colordiffuse>66FFFFFF</colordiffuse>
+ <visible>!ListItem.Property(isPlayable)</visible>
+ </control>
+ <control type="label">
+ <description>Game competitors text</description>
+ <left>110</left>
+ <top>5</top>
+ <width>240</width>
+ <visible>ListItem.Property(is_game)</visible>
+ <align>center</align>
+ <aligny>top</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font13</font>
+ <textcolor>FF333333</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix></scrollsuffix>
+ </control>
+ <control type="label">
+ <description>Game description text</description>
+ <left>110</left>
+ <top>30</top>
+ <width>240</width>
+ <visible>ListItem.Property(is_game)</visible>
+ <align>center</align>
+ <aligny>top</aligny>
+ <scroll>true</scroll>
+ <info>ListItem.Property(game_info)</info>
+ <font>font12</font>
+ <textcolor>FF333333</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>25</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ <control type="label">
+ <description>Upcoming Game</description>
+ <left>110</left>
+ <top>50</top>
+ <width>240</width>
+ <visible>!ListItem.Property(isPlayable) + ListItem.Property(is_game)</visible>
+ <align>center</align>
+ <aligny>top</aligny>
+ <scroll>true</scroll>
+ <label>» Upcoming Game «</label>
+ <font>font12</font>
+ <textcolor>FF000000</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>25</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ <control type="label">
+ <description>Show Name</description>
+ <left>110</left>
+ <top>15</top>
+ <width>320</width>
+ <visible>ListItem.Property(is_show)</visible>
+ <align>left</align>
+ <aligny>top</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Label</info>
+ <font>font12</font>
+ <textcolor>FF333333</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix></scrollsuffix>
+ </control>
+ <control type="label">
+ <description>Show description text</description>
+ <left>110</left>
+ <top>40</top>
+ <width>320</width>
+ <visible>ListItem.Property(is_show)</visible>
+ <align>left</align>
+ <aligny>top</aligny>
+ <scroll>false</scroll>
+ <info>ListItem.Property(game_info)</info>
+ <font>font10</font>
+ <textcolor>FF333333</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>0</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ <control type="image">
+ <left>360</left>
+ <top>13</top>
+ <width>82</width>
+ <height>55</height>
+ <info>ListItem.Property(home_thumb)</info>
+ <visible>ListItem.Property(isPlayable) + ListItem.Property(is_game)</visible>
+ </control>
+ <control type="image">
+ <left>360</left>
+ <top>13</top>
+ <width>82</width>
+ <height>55</height>
+ <info>ListItem.Property(home_thumb)</info>
+ <colordiffuse>66FFFFFF</colordiffuse>
+ <visible>!ListItem.Property(isPlayable) + ListItem.Property(is_game)</visible>
+ </control>
+ </itemlayout>
+ <focusedlayout width="450" height="80">
+ <control type="image">
+ <left>10</left>
+ <width>440</width>
+ <height>80</height>
+ <texture>GamePass/game_focus.png</texture>
+ <visible>ListItem.Property(isPlayable)</visible>
+ </control>
+ <control type="image">
+ <left>10</left>
+ <width>440</width>
+ <height>80</height>
+ <texture>GamePass/game_focus.png</texture>
+ <colordiffuse>CCFFFFFF</colordiffuse>
+ <visible>!ListItem.Property(isPlayable)</visible>
+ </control>
+ <control type="image">
+ <left>22</left>
+ <top>12</top>
+ <width>82</width>
+ <height>55</height>
+ <info>ListItem.Property(away_thumb)</info>
+ <visible>ListItem.Property(isPlayable)</visible>
+ </control>
+ <control type="image">
+ <left>22</left>
+ <top>12</top>
+ <width>82</width>
+ <height>55</height>
+ <info>ListItem.Property(away_thumb)</info>
+ <colordiffuse>99FFFFFF</colordiffuse>
+ <visible>!ListItem.Property(isPlayable)</visible>
+ </control>
+ <control type="label">
+ <description>Game competitors text</description>
+ <left>110</left>
+ <top>5</top>
+ <width>240</width>
+ <visible>ListItem.Property(is_game)</visible>
+ <align>center</align>
+ <aligny>top</aligny>
+ <scroll>true</scroll>
+ <info>ListItem.Label2</info>
+ <font>font13</font>
+ <textcolor>FF222222</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ <control type="label">
+ <description>Game description text</description>
+ <left>110</left>
+ <top>30</top>
+ <width>240</width>
+ <visible>ListItem.Property(is_game)</visible>
+ <align>center</align>
+ <aligny>top</aligny>
+ <scroll>true</scroll>
+ <info>ListItem.Property(game_info)</info>
+ <font>font12</font>
+ <textcolor>FF333333</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>25</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ <control type="label">
+ <description>Upcoming Game</description>
+ <left>110</left>
+ <top>50</top>
+ <width>240</width>
+ <visible>!ListItem.Property(isPlayable) + ListItem.Property(is_game)</visible>
+ <align>center</align>
+ <aligny>top</aligny>
+ <scroll>true</scroll>
+ <label>» Upcoming Game «</label>
+ <font>font12</font>
+ <textcolor>FF000000</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>25</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ <control type="label">
+ <description>Show Name</description>
+ <left>110</left>
+ <top>15</top>
+ <width>320</width>
+ <visible>ListItem.Property(is_show)</visible>
+ <align>left</align>
+ <aligny>top</aligny>
+ <scroll>true</scroll>
+ <info>ListItem.Label</info>
+ <font>font12</font>
+ <textcolor>FF222222</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>50</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ <control type="label">
+ <description>Show description text</description>
+ <left>110</left>
+ <top>40</top>
+ <width>320</width>
+ <visible>ListItem.Property(is_show)</visible>
+ <align>left</align>
+ <aligny>top</aligny>
+ <scroll>true</scroll>
+ <info>ListItem.Property(game_info)</info>
+ <font>font10</font>
+ <textcolor>FF333333</textcolor>
+ <wrapmultiline>false</wrapmultiline>
+ <scrollspeed>25</scrollspeed>
+ <scrollsuffix> - </scrollsuffix>
+ </control>
+ <control type="image">
+ <left>360</left>
+ <top>13</top>
+ <width>82</width>
+ <height>55</height>
+ <info>ListItem.Property(home_thumb)</info>
+ <visible>ListItem.Property(isPlayable) + ListItem.Property(is_game)</visible>
+ </control>
+ <control type="image">
+ <left>360</left>
+ <top>13</top>
+ <width>82</width>
+ <height>55</height>
+ <info>ListItem.Property(home_thumb)</info>
+ <colordiffuse>99FFFFFF</colordiffuse>
+ <visible>!ListItem.Property(isPlayable) + ListItem.Property(is_game)</visible>
+ </control>
+ </focusedlayout>
+ </control>
+ <control type="scrollbar" id="60">
+ <left>9</left>
+ <top>110</top>
+ <width>10</width>
+ <height>560</height>
+ <onup>60</onup>
+ <ondown>60</ondown>
+ <onleft>220</onleft>
+ <onright>220</onright>
+ <texturesliderbackground>-</texturesliderbackground>
+ <texturesliderbar border="1">GamePass/texturesliderbar.png</texturesliderbar>
+ <texturesliderbarfocus border="1">GamePass/texturesliderbar2.png</texturesliderbarfocus>
+ <showonepage>false</showonepage>
+ <orientation>vertical</orientation>
+ </control>
+ <control type="scrollbar" id="61">
+ <left>1241</left>
+ <top>110</top>
+ <width>10</width>
+ <height>560</height>
+ <onup>61</onup>
+ <ondown>61</ondown>
+ <onleft>230</onleft>
+ <onright>220</onright>
+ <texturesliderbackground>-</texturesliderbackground>
+ <texturesliderbar border="1" flipx="true">GamePass/texturesliderbar.png</texturesliderbar>
+ <texturesliderbarfocus border="1" flipx="true">GamePass/texturesliderbar2.png</texturesliderbarfocus>
+ <showonepage>false</showonepage>
+ <orientation>vertical</orientation>
+ </control>
+ </controls>
+</window>
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/colors/defaults.xml b/plugin.video.nfl.gamepass/resources/skins/Default/colors/defaults.xml
new file mode 100644
index 0000000..2246407
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/colors/defaults.xml
@@ -0,0 +1,147 @@
+<colors>
+
+<!-----These colors are not defined by this document---------->
+<!------This is a copy of the colors defined in Kodi core---->
+
+ <color name="aliceblue">fff0f8ff</color>
+ <color name="antiquewhite">fffaebd7</color>
+ <color name="aqua">ff00ffff</color>
+ <color name="aquamarine">ff7fffd4</color>
+ <color name="azure">fff0ffff</color>
+ <color name="beige">fff5f5dc</color>
+ <color name="bisque">ffffe4c4</color>
+ <color name="black">ff000000</color>
+ <color name="blanchedalmond">ffffebcd</color>
+ <color name="blue">ff0000ff</color>
+ <color name="blueviolet">ff8a2be2</color>
+ <color name="brown">ffa52a2a</color>
+ <color name="burlywood">ffdeb887</color>
+ <color name="cadetblue">ff5f9ea0</color>
+ <color name="chartreuse">ff7fff00</color>
+ <color name="chocolate">ffd2691e</color>
+ <color name="coral">ffff7f50</color>
+ <color name="cornflowerblue">ff6495ed</color>
+ <color name="cornsilk">fffff8dc</color>
+ <color name="crimson">ffdc143c</color>
+ <color name="cyan">ff00ffff</color>
+ <color name="darkblue">ff00008b</color>
+ <color name="darkcyan">ff008b8b</color>
+ <color name="darkgoldenrod">ffb8860b</color>
+ <color name="darkgray">ffa9a9a9</color>
+ <color name="darkgreen">ff006400</color>
+ <color name="darkkhaki">ffbdb76b</color>
+ <color name="darkmagenta">ff8b008b</color>
+ <color name="darkolivegreen">ff556b2f</color>
+ <color name="darkorange">ffff8c00</color>
+ <color name="darkorchid">ff9932cc</color>
+ <color name="darkred">ff8b0000</color>
+ <color name="darksalmon">ffe9967a</color>
+ <color name="darkseagreen">ff8fbc8f</color>
+ <color name="darkslateblue">ff483d8b</color>
+ <color name="darkslategray">ff2f4f4f</color>
+ <color name="darkturquoise">ff00ced1</color>
+ <color name="darkviolet">ff9400d3</color>
+ <color name="deeppink">ffff1493</color>
+ <color name="deepskyblue">ff00bfff</color>
+ <color name="dimgray">ff696969</color>
+ <color name="dodgerblue">ff1e90ff</color>
+ <color name="firebrick">ffb22222</color>
+ <color name="floralwhite">fffffaf0</color>
+ <color name="forestgreen">ff228b22</color>
+ <color name="fuchsia">ffff00ff</color>
+ <color name="gainsboro">ffdcdcdc</color>
+ <color name="ghostwhite">fff8f8ff</color>
+ <color name="gold">ffffd700</color>
+ <color name="goldenrod">ffdaa520</color>
+ <color name="gray">ff808080</color>
+ <color name="green">ff008000</color>
+ <color name="greenyellow">ffadff2f</color>
+ <color name="honeydew">fff0fff0</color>
+ <color name="hotpink">ffff69b4</color>
+ <color name="indianred ">ffcd5c5c</color>
+ <color name="indigo ">ff4b0082</color>
+ <color name="ivory">fffffff0</color>
+ <color name="khaki">fff0e68c</color>
+ <color name="lavender">ffe6e6fa</color>
+ <color name="lavenderblush">fffff0f5</color>
+ <color name="lawngreen">ff7cfc00</color>
+ <color name="lemonchiffon">fffffacd</color>
+ <color name="lightblue">ffadd8e6</color>
+ <color name="lightcoral">fff08080</color>
+ <color name="lightcyan">ffe0ffff</color>
+ <color name="lightgoldenrodyellow">fffafad2</color>
+ <color name="lightgrey">ffd3d3d3</color>
+ <color name="lightgreen">ff90ee90</color>
+ <color name="lightpink">ffffb6c1</color>
+ <color name="lightsalmon">ffffa07a</color>
+ <color name="lightseagreen">ff20b2aa</color>
+ <color name="lightskyblue">ff87cefa</color>
+ <color name="lightslategray">ff778899</color>
+ <color name="lightsteelblue">ffb0c4de</color>
+ <color name="lightyellow">ffffffe0</color>
+ <color name="lime">ff00ff00</color>
+ <color name="limegreen">ff32cd32</color>
+ <color name="linen">fffaf0e6</color>
+ <color name="magenta">ffff00ff</color>
+ <color name="maroon">ff800000</color>
+ <color name="mediumaquamarine">ff66cdaa</color>
+ <color name="mediumblue">ff0000cd</color>
+ <color name="mediumorchid">ffba55d3</color>
+ <color name="mediumpurple">ff9370d8</color>
+ <color name="mediumseagreen">ff3cb371</color>
+ <color name="mediumslateblue">ff7b68ee</color>
+ <color name="mediumspringgreen">ff00fa9a</color>
+ <color name="mediumturquoise">ff48d1cc</color>
+ <color name="mediumvioletred">ffc71585</color>
+ <color name="midnightblue">ff191970</color>
+ <color name="mintcream">fff5fffa</color>
+ <color name="mistyrose">ffffe4e1</color>
+ <color name="moccasin">ffffe4b5</color>
+ <color name="navajowhite">ffffdead</color>
+ <color name="navy">ff000080</color>
+ <color name="none">00000000</color>
+ <color name="oldlace">fffdf5e6</color>
+ <color name="olive">ff808000</color>
+ <color name="olivedrab">ff6b8e23</color>
+ <color name="orange">ffffa500</color>
+ <color name="orangered">ffff4500</color>
+ <color name="orchid">ffda70d6</color>
+ <color name="palegoldenrod">ffeee8aa</color>
+ <color name="palegreen">ff98fb98</color>
+ <color name="paleturquoise">ffafeeee</color>
+ <color name="palevioletred">ffd87093</color>
+ <color name="papayawhip">ffffefd5</color>
+ <color name="peachpuff">ffffdab9</color>
+ <color name="peru">ffcd853f</color>
+ <color name="pink">ffffc0cb</color>
+ <color name="plum">ffdda0dd</color>
+ <color name="powderblue">ffb0e0e6</color>
+ <color name="purple">ff800080</color>
+ <color name="red">ffff0000</color>
+ <color name="rosybrown">ffbc8f8f</color>
+ <color name="royalblue">ff4169e1</color>
+ <color name="saddlebrown">ff8b4513</color>
+ <color name="salmon">fffa8072</color>
+ <color name="sandybrown">fff4a460</color>
+ <color name="seagreen">ff2e8b57</color>
+ <color name="seashell">fffff5ee</color>
+ <color name="sienna">ffa0522d</color>
+ <color name="silver">ffc0c0c0</color>
+ <color name="skyblue">ff87ceeb</color>
+ <color name="slateblue">ff6a5acd</color>
+ <color name="slategray">ff708090</color>
+ <color name="snow">fffffafa</color>
+ <color name="springgreen">ff00ff7f</color>
+ <color name="steelblue">ff4682b4</color>
+ <color name="tan">ffd2b48c</color>
+ <color name="teal">ff008080</color>
+ <color name="thistle">ffd8bfd8</color>
+ <color name="tomato">ffff6347</color>
+ <color name="turquoise">ff40e0d0</color>
+ <color name="violet">ffee82ee</color>
+ <color name="wheat">fff5deb3</color>
+ <color name="white">ffffffff</color>
+ <color name="whitesmoke">fff5f5f5</color>
+ <color name="yellow">ffffff00</color>
+ <color name="yellowgreen">ff9acd32</color>
+</colors>
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/game_bg.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/game_bg.png
new file mode 100644
index 0000000..9708076
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/game_bg.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/game_focus.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/game_focus.png
new file mode 100644
index 0000000..2661dc8
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/game_focus.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_dom_focus.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_dom_focus.png
new file mode 100644
index 0000000..c419ac5
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_dom_focus.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_dom_normal.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_dom_normal.png
new file mode 100644
index 0000000..d60e924
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_dom_normal.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_dom_selected.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_dom_selected.png
new file mode 100644
index 0000000..7ea98e3
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_dom_selected.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_int_focus.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_int_focus.png
new file mode 100644
index 0000000..5053796
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_int_focus.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_int_normal.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_int_normal.png
new file mode 100644
index 0000000..78e9837
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_int_normal.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_int_selected.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_int_selected.png
new file mode 100644
index 0000000..fec470a
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/gp_int_selected.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/menubar.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/menubar.png
new file mode 100644
index 0000000..e3197f0
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/menubar.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/network_bg.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/network_bg.png
new file mode 100644
index 0000000..4f19414
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/network_bg.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/network_focus.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/network_focus.png
new file mode 100644
index 0000000..cd5b6f5
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/network_focus.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/network_focus2.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/network_focus2.png
new file mode 100644
index 0000000..e2a236e
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/network_focus2.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/progress.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/progress.png
new file mode 100644
index 0000000..e579001
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/progress.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/progressbg.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/progressbg.png
new file mode 100644
index 0000000..3a1cd4d
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/progressbg.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/settings.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/settings.png
new file mode 100644
index 0000000..c5e082e
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/settings.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/settings_focus.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/settings_focus.png
new file mode 100644
index 0000000..86257bf
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/settings_focus.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/shadowbox.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/shadowbox.png
new file mode 100644
index 0000000..1ef4344
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/shadowbox.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenubar.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenubar.png
new file mode 100644
index 0000000..1795b80
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenubar.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenubar_focus.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenubar_focus.png
new file mode 100644
index 0000000..0c8fd0a
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenubar_focus.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenubar_focus2.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenubar_focus2.png
new file mode 100644
index 0000000..6cc98aa
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenubar_focus2.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenuwide_focus.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenuwide_focus.png
new file mode 100644
index 0000000..be44da8
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenuwide_focus.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenuwide_focus2.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenuwide_focus2.png
new file mode 100644
index 0000000..25578d8
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/submenuwide_focus2.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/texturesliderbar.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/texturesliderbar.png
new file mode 100644
index 0000000..af3fab7
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/texturesliderbar.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/texturesliderbar2.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/texturesliderbar2.png
new file mode 100644
index 0000000..8d2eda6
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/texturesliderbar2.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/week_bg.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/week_bg.png
new file mode 100644
index 0000000..34ba191
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/week_bg.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/week_focus.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/week_focus.png
new file mode 100644
index 0000000..dfa2133
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/week_focus.png
Binary files differ
diff --git a/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/week_focus2.png b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/week_focus2.png
new file mode 100644
index 0000000..2a517dd
--- /dev/null
+++ b/plugin.video.nfl.gamepass/resources/skins/Default/media/GamePass/week_focus2.png
Binary files differ