import xbmcaddon
import xbmc
import json
+import uuid
+from UniversalAnalytics import Tracker
try:
import cPickle as pickle
except:
Netflix password
"""
dlg = xbmcgui.Dialog()
- return dlg.input(self.get_local_string(string_id=30004), type=xbmcgui.INPUT_ALPHANUM)
+ return dlg.input(self.get_local_string(string_id=30004), type=xbmcgui.INPUT_ALPHANUM, option=xbmcgui.ALPHANUM_HIDE_INPUT)
def show_email_dialog (self):
"""Asks the user for its Netflix account email
dialog.notification(self.get_local_string(string_id=30028), self.get_local_string(string_id=30029), xbmcgui.NOTIFICATION_ERROR, 5000)
return True
+ def show_no_search_results_notification (self):
+ """Shows notification that no search results could be found
+
+ Returns
+ -------
+ bool
+ Dialog shown
+ """
+ dialog = xbmcgui.Dialog()
+ dialog.notification(self.get_local_string(string_id=30011), self.get_local_string(string_id=30013))
+ return True
+
+ def show_no_seasons_notification (self):
+ """Shows notification that no seasons be found
+
+ Returns
+ -------
+ bool
+ Dialog shown
+ """
+ dialog = xbmcgui.Dialog()
+ dialog.notification(self.get_local_string(string_id=30010), self.get_local_string(string_id=30012))
+ return True
+
def set_setting (self, key, value):
"""Public interface for the addons setSetting method
'password': self.addon.getSetting('password')
}
+ def get_dolby_setting(self):
+ """
+ Returns if the dolby sound is enabled
+ :return: True|False
+ """
+ return self.addon.getSetting('enable_dolby_sound') == 'true'
+
def get_custom_library_settings (self):
"""Returns the settings in regards to the custom library folder(s)
bool
List could be build
"""
- li = xbmcgui.ListItem(label=self.get_local_string(30012))
- xbmcplugin.addDirectoryItem(handle=self.plugin_handle, url='', listitem=li, isFolder=False)
+ self.show_no_seasons_notification()
xbmcplugin.endOfDirectory(self.plugin_handle)
return True
bool
List could be build
"""
- li = xbmcgui.ListItem(label=self.get_local_string(30013))
- xbmcplugin.addDirectoryItem(handle=self.plugin_handle, url=build_url({'action': action}), listitem=li, isFolder=False)
- xbmcplugin.endOfDirectory(self.plugin_handle)
- return True
+ self.show_no_search_results_notification()
+ return xbmcplugin.endOfDirectory(self.plugin_handle)
def build_user_sub_listing (self, video_list_ids, type, action, build_url):
"""Builds the video lists screen for user subfolders (genres & recommendations)
for index in seasons_sorted:
for season_id in season_list:
season = season_list[season_id]
- if int(season['id']) == index:
+ if int(season['idx']) == index:
li = xbmcgui.ListItem(label=season['text'])
# add some art to the item
li = self._generate_art_info(entry=season, li=li)
self.log(msg='Inputstream addon not found')
return False
+ # track play event
+ self.track_event('playVideo')
+
# inputstream addon properties
msl_service_url = 'http://localhost:' + str(self.addon.getSetting('msl_service_port'))
play_item = xbmcgui.ListItem(path=msl_service_url + '/manifest?id=' + video_id)
li.addContextMenuItems(items)
return li
- def log (self, msg, level=xbmc.LOGNOTICE):
+ def log (self, msg, level=xbmc.LOGDEBUG):
"""Adds a log entry to the Kodi log
Parameters
level : :obj:`int`
Kodi log level
"""
- if self.verb_log:
- if level == xbmc.LOGDEBUG and self.verb_log:
- level = xbmc.LOGNOTICE
- if isinstance(msg, unicode):
- msg = msg.encode('utf-8')
- xbmc.log('[%s] %s' % (self.plugin, msg.__str__()), level)
+ if isinstance(msg, unicode):
+ msg = msg.encode('utf-8')
+ xbmc.log('[%s] %s' % (self.plugin, msg.__str__()), level)
def get_local_string (self, string_id):
"""Returns the localized version of a string
instance of the Library class
"""
self.library = library
+
+ def track_event(self, event):
+ """
+ Send a tracking event if tracking is enabled
+ :param event: the string idetifier of the event
+ :return: None
+ """
+ # Check if tracking is enabled
+ enable_tracking = (self.addon.getSetting('enable_tracking') == 'true')
+ if enable_tracking:
+ #Get or Create Tracking id
+ tracking_id = self.addon.getSetting('tracking_id')
+ if tracking_id is '':
+ tracking_id = str(uuid.uuid4())
+ self.addon.setSetting('tracking_id', tracking_id)
+ # Send the tracking event
+ tracker = Tracker.create('UA-46081640-5', client_id=tracking_id)
+ tracker.send('event', event)