def _get_watchmode(pathwatchmode, content):
    watchmode = None
    if pathwatchmode:
        # skip 'all videos' from path, prefer add-on settings
        if pathwatchmode.lower() in (WATCHMODE_UNWATCHED, WATCHMODE_WATCHED, WATCHMODE_ASKME):
            watchmode = pathwatchmode.lower()
        elif pathwatchmode == L(WATCHMODE_UNWATCHED_TEXT):
            watchmode = WATCHMODE_UNWATCHED
        elif pathwatchmode == L(WATCHMODE_WATCHED_TEXT):
            watchmode = WATCHMODE_WATCHED
        elif pathwatchmode == L(WATCHMODE_ASKME_TEXT):
            watchmode = WATCHMODE_ASKME

    if not watchmode:
        addonsetting = ('watchmodemovies' if content == 'movies' else
            'watchmodetvshows' if content == 'tvshows' else
            'watchmodemusicvideos' if content == 'musicvideos' else
            'watchmodeother' if content == 'other' else None)

        if addonsetting:
            try:
                watchmode = WATCHMODES[int(get_main_addon().getSetting(addonsetting))]
            except ValueError:
                pass

    if watchmode == WATCHMODE_ASKME:
        return _ask_me()
    elif watchmode:
        return watchmode
    else:
        return WATCHMODE_ALLVIDEOS
def play(pathinfo):
    content, info = _parse_path(pathinfo)
    if not content:
        xbmcgui.Dialog().notification(L(34201), pathinfo['full path'])
        return
    singlevideo = pathinfo.get('singlevideo', False)
    try:
        showbusy = get_main_addon().getSetting('hidebusydialog') == 'false'
        get_player(get_generator(content, info, singlevideo), showbusy).run()
    except quickjson.JSONException as ex:
        # json_result['error']['code'] == -32602 is the best we get, invalid params
        if content == 'other' and ex.json_result.get('error', {}).get('code', 0) == -32602 \
                and not any(1 for source in quickjson.get_sources('video') if info['path'].startswith(source['file'])):
            xbmcgui.Dialog().ok(L(ADD_SOURCE_HEADER), L(ADD_SOURCE_MESSAGE).format(info['path']))
        else:
            raise