def splashscreen(): splashgui = SplashScreenUI("funimation-splash.xml", utils.getAddonInfo('path'), 'default', "720p"); splashgui.doModal(); del splashgui;
def genreshows(landing_page, navSet=None): genreshowsui = GenreShowsUI("funimation-genre-shows.xml", utils.getAddonInfo('path'), 'default', "720p"); genreshowsui.setInitialItem(landing_page, navSet); genreshowsui.doModal(); del genreshowsui;
def helpmenu(): helpmenugui = HelpMenuUI("funimation-help-menu.xml", utils.getAddonInfo('path'), 'default', "720p") helpmenugui.createHelpMenuButtons() helpmenugui.doModal() del helpmenugui
def search(landing_page): searchui = SearchUI("funimation-search.xml", utils.getAddonInfo('path'), 'default', "720p") searchui.setInitialItem(landing_page) searchui.doModal() del searchui
def audioselect(landing_page, navSet=None): audioselectui = AudioSelectUI("funimation-audio-select.xml", utils.getAddonInfo('path'), 'default', "720p"); audioselectui.setInitialItem(landing_page, navSet); audioselectui.doModal(); del audioselectui;
def genreselect(landing_page, navSet=None): genreselectui = GenreSelectUI("funimation-genre-select.xml", utils.getAddonInfo('path'), 'default', "720p") genreselectui.setInitialItem(landing_page, navSet) genreselectui.doModal() del genreselectui
def watchlist(landing_page, navSet=None): watchlistgui = WatchListUI("funimation-watchlist-select.xml", utils.getAddonInfo('path'), 'default', "720p") watchlistgui.runDirectoryChecks() watchlistgui.setInitialItem(landing_page, navSet) watchlistgui.getCurrentSet() watchlistgui.doModal() del watchlistgui
def playIntro(self): try: playercontrol = self.getControl(100); if playercontrol: self.player.run(os.path.join(utils.getAddonInfo('path'), 'resources/skins/default/media/FunimationNowExtended.mp4'), self); except: pass;
def rating(rating): ratingui = RatingViewUI("funimation-rating.xml", utils.getAddonInfo('path'), 'default', "720p") ratingui.setInitialRating(rating) ratingui.doModal() userRating = ratingui.getUserRating() del ratingui return userRating
def loginscreen(): logingui = TrialScreenUI("funimation-login.xml", utils.getAddonInfo('path'), 'default', "720p") logingui.createLoginSplash() logingui.doModal() result = logingui.getResult() del logingui return result
def select(listset, sX, sY): selectui = NAvListUi("funimation-select.xml", utils.getAddonInfo('path'), 'default', "720p"); selectui.setInitialItem(listset, sX, sY); selectui.doModal(); selectedItemPosition = selectui.getSelectedItemPosition(); del selectui; return selectedItemPosition
def main(prev=None): fnui = FunimationNowUI("funimation-main.xml", utils.getAddonInfo('path'), 'default', "720p") fnui.setMenuButtonPlaceHolders() fnui.setPrevWindow(prev) fnui.setLandingPage() fnui.doModal() resultCode = fnui.getResultCode() del fnui return resultCode
def cleanup(skip_settings=False): try: addon_data = xbmc.translatePath(utils.getAddonInfo('profile')).decode('utf-8'); try: utils.resetSettings(); except: pass; try: tokens = xbmc.translatePath(os.path.join(addon_data, 'tokens.db')); os.remove(tokens); except: pass; try: mediaPath = xbmc.translatePath(os.path.join(addon_data, 'media')); shutil.rmtree(mediaPath); except: pass; try: synch = xbmc.translatePath(os.path.join(addon_data, 'synch.db')); os.remove(synch); except: pass; except Exception as inst: logger.error(inst);
def settings(landing_page, parent, child, controlID): RESULT_CODE = REST_CODE try: #xbmc.executebuiltin('Addon.OpenSettings(%s)' % utils.getAddonInfo('id')); utils.addon.openSettings() utils.lock() utils.sleep(2000) utils.unlock() addon_data = xbmc.translatePath( utils.getAddonInfo('profile')).decode('utf-8') tokens = xbmc.translatePath(os.path.join(addon_data, 'tokens.db')) if not os.path.exists(tokens): RESULT_CODE = LOGOUT_CODE except Exception as inst: logger.error(inst) return RESULT_CODE
def contactsupport(self, mailto): import platform import webbrowser try: mailtoURL = mailto.format( appid='FunimationNOW', version=utils.getAddonInfo('version'), device=('%s.%s' % (platform.system(), platform.machine())), os=('%s - Kodi.%s' % (platform.version(), xbmc.getInfoLabel('System.BuildVersion'))), connection='WiFi', carrier='N/A') githubUrl = 'https://github.com/Protocol-X/%s/issues/new' % utils.getAddonInfo( 'id') osWin = xbmc.getCondVisibility('system.platform.windows') osOsx = xbmc.getCondVisibility('system.platform.osx') osLinux = xbmc.getCondVisibility('system.platform.linux') osAndroid = xbmc.getCondVisibility('System.Platform.Android') if osOsx: try: utils.openBrowser(mailtoURL) utils.openBrowser(githubUrl) except: xbmc.executebuiltin("System.Exec(open '%s')" % mailtoURL) xbmc.executebuiltin("System.Exec(open '%s')" % githubUrl) elif osWin: try: utils.openBrowser(mailtoURL) utils.openBrowser(githubUrl) except: xbmc.executebuiltin("System.Exec(cmd.exe /c start '%s')" % mailtoURL) xbmc.executebuiltin("System.Exec(cmd.exe /c start '%s')" % githubUrl) elif osLinux and not osAndroid: try: utils.openBrowser(mailtoURL) utils.openBrowser(githubUrl) except: xbmc.executebuiltin("System.Exec(xdg-open '%s')" % mailtoURL) xbmc.executebuiltin("System.Exec(xdg-open '%s')" % githubUrl) elif osAndroid: xbmc.executebuiltin( "StartAndroidActivity(com.google.android.gmcom.google.android.gm.ComposeActivityGmail,android.content.Intent.ACTION_SENDTO,plain/text,%s)" % mailtoURL) #Until we can figure out the email issues. utils.openBrowser( 'https://github.com/Protocol-X/%s/issues/new' % utils.getAddonInfo('id')) #http://stackoverflow.com/questions/8284706/send-email-via-gmail #http://stackoverflow.com/questions/3470042/intent-uri-to-launch-gmail-app #http://forum.kodi.tv/showthread.php?tid=232485 except: pass
def populateDetails(self, cItem, sItem, sIdx, viewtype, controlID, loadDisplay): try: #if loadDisplay is False: #time.sleep(sIdx*2) detailspath = os.path.join(utils.getAddonInfo('path'), 'resources/skins/default/media/') titleImg = None statsImg = None genreImg = None descImg = None starImg = None qualityImg = None ratingImg = None if viewtype in SHOW_VIEWS: (starRating, quality, ratings, params) = self.setShowDetails(cItem, sItem, sIdx, viewtype, loadDisplay) titleImg = os.path.join(self.details_title, ('%s.png' % params)) statsImg = os.path.join(self.details_stats, ('%s.png' % params)) genreImg = os.path.join(self.details_genre, ('%s.png' % params)) descImg = os.path.join(self.details_desc, ('%s.png' % params)) else: (starRating, quality, ratings, params) = self.setEpisodeDetails(cItem, sItem, sIdx, viewtype, loadDisplay) titleImg = os.path.join(self.details_title, ('%s.png' % params)) statsImg = os.path.join(self.details_stats, ('%s.png' % params)) genreImg = os.path.join(self.details_genre, ('%s.png' % params)) descImg = os.path.join(self.details_desc, ('%s.png' % params)) if ratings is None: tmpTerritory = funimationnow.getTerritory() if tmpTerritory: if tmpTerritory == 'CA': ratings = '18' elif tmpTerritory == 'GB': ratings = 'r18' elif tmpTerritory == 'IE': ratings = 'ma' else: ratings = 'tv-ma' starImg = '%sflagging/rating/%s_c.png' % (detailspath, starRating) qualityImg = '%sflagging/resolution/%s_c.png' % (detailspath, quality) ratingImg = ('%sflagging/mpaa/%s_c_%s.png' % (detailspath, ratings.lower(), funimationnow.getTerritory().lower())) if loadDisplay: ncItem = self.getControl(controlID) nsIdx = ncItem.getSelectedPosition() if self.aList == controlID and self.aPos == nsIdx: self.getControl(SHOWCASE_ART_CONTROL).setImage( self.getAdjustedImage(controlID)) self.setDownloadedDetails(titleImg, statsImg, genreImg, descImg, params, starImg, qualityImg, ratingImg) except Exception as inst: self.logger.error(inst)