def preview(addon: xbmcaddon.Addon, timerid: int, player: 'xbmc.Player') -> None:

    addon_dir = xbmcvfs.translatePath(addon.getAddonInfo('path'))

    timer = Timer.init_from_settings(timerid)

    if timer._is_playing_media_timer():
        icon_file = os.path.join(
            addon_dir, "resources", "assets", "icon.png")

        xbmcgui.Dialog().notification(addon.getLocalizedString(
            32027), addon.getLocalizedString(32110) % addon.getLocalizedString(32004 + timerid),
            icon=icon_file)

        if is_script(timer.s_path):
            run_addon(timer.s_path)

        elif timer.s_mediatype == PICTURE:
            play_slideshow(timer.s_path, shuffle=timer.b_shuffle)

        else:
            playlist = build_playlist(path=timer.s_path, label=timer.s_label)
            player.play(playlist)

    else:
        xbmcgui.Dialog().notification(addon.getLocalizedString(
            32027), addon.getLocalizedString(32109))
Example #2
0
    def _get_timer_preselection(self, timerid: int, label: str,
                                path: str) -> 'tuple[Timer,bool]':

        timer = Timer.init_from_settings(timerid)
        timer.s_label = label
        timer.i_fade = FADE_OFF

        is_epg = False
        if pvr_utils.get_current_epg_view():
            pvr_channel_path = pvr_utils.get_pvr_channel_path(
                pvr_utils.get_current_epg_view(),
                xbmc.getInfoLabel("ListItem.ChannelNumberLabel"))

            if pvr_channel_path:
                is_epg = True
                timer.s_label = "%s | %s" % (
                    xbmc.getInfoLabel("ListItem.ChannelName"), label)
                timer.s_path = pvr_channel_path
                startDate = datetime_utils.parse_xbmc_shortdate(
                    xbmc.getInfoLabel("ListItem.Date").split(" ")[0])
                timer.days = [startDate.weekday()]
                timer.s_start = xbmc.getInfoLabel("ListItem.StartTime")
                duration = xbmc.getInfoLabel("ListItem.Duration")
                timer.s_duration = "00:%s" % duration[:2] if len(
                    duration) == 5 else duration[:5]

        if not is_epg:

            if TIMER_WEEKLY not in timer.days:
                dt_now, td_now = datetime_utils.get_now()
                timer.days = [dt_now.weekday()]

            if vfs_utils.is_favourites(path):
                timer.s_path = vfs_utils.get_favourites_target(path)
            else:
                timer.s_path = path

            timer.s_duration = timer.get_duration()

        timer.s_end = datetime_utils.format_from_seconds(
            (datetime_utils.parse_time(timer.s_start) +
             datetime_utils.parse_time(timer.s_duration)).seconds)

        if vfs_utils.is_script(timer.s_path):
            timer.s_mediatype = "script"
        else:
            timer.s_mediatype = vfs_utils.get_media_type(timer.s_path)

        return timer, is_epg