Beispiel #1
0
def list_text(txt, isFolder=False, menu=[]):
    list_item = xbmcgui.ListItem(txt)
    if menu:
        log('menu', menu)
        list_item.addContextMenuItems(menu)

    url = make_url(page='nothing', text=txt)
    return (url, list_item, isFolder)
def get_posts(url):
    '''
    :rtype : post[]
    '''
    try:
        return read_posts(get(url))
    except Exception as e:
        log('ERROR', e)
        return None
Beispiel #3
0
def cari(query=None):
    if not query:
        query = xbmcgui.Dialog().input('Masukan Pencarian').strip()
        log('User input', query)

    if not len(query):
        log('No query, fallback')
        return
    url = '/search/%s/feed/' % quote_plus(query)

    listing = list_feed(url, 'HASIL PENCARIAN: %s ' % query)

    xbmcplugin.addDirectoryItems(KODI_HANDLE, listing, len(listing))
    xbmcplugin.addSortMethod(KODI_HANDLE, xbmcplugin.SORT_METHOD_NONE)
    xbmcplugin.endOfDirectory(KODI_HANDLE)
    userdata.add_search_history(query)
Beispiel #4
0
def post(path, id):
    log('load post', path, 'id', id)
    posts = browser.get_posts(path)
    if not posts.has_key(id):
        die('Post not found')

    post = posts.get(id)
    (content, episodes) = post.read_content()

    if not len(episodes):
        show_info('Belum ada episode')
        return
    listing = []

    movies_found = 0

    for (episode, qualities) in episodes.items():

        for (quality, links) in qualities.items():
            openload_url = links.get('Openload', None) or links.get(
                'Oload', None)
            if openload_url:
                url = '%s?page=play&path=%s&id=%s&url=%s&server=%s&quality=%s' % (
                    KODI_URL, path, id, openload_url, 'Openload', quality)
                list_item = xbmcgui.ListItem('EPISODE %s - %s' % (episode,
                                                                  quality))
                list_item.setProperty('IsPlayable', 'true')
                listing.append((url, list_item, False))
                movies_found += 1

    xbmcplugin.addDirectoryItems(KODI_HANDLE, listing, len(listing))
    xbmcplugin.addSortMethod(KODI_HANDLE,
                             xbmcplugin.SORT_METHOD_LABEL_IGNORE_THE)

    xbmcplugin.endOfDirectory(KODI_HANDLE)
    if movies_found:
        userdata.add_recent((post.title, path, id))
Beispiel #5
0
def play(path, id, url, server, quality):
    log('Playing %s' % url)
    info = linker.get_openload(url)
    if not info:
        die('Cannot play video')
    log(info)
    video_url = info.get('url', None)
    if not video_url:
        log('Linker FAIL get video url', info)
        die('Cannot get video url')

    # Create a playable item with a path to play.
    play_item = xbmcgui.ListItem(path=video_url)
    # Pass the item to the Kodi player.
    xbmcplugin.setResolvedUrl(KODI_HANDLE, True, listitem=play_item)
Beispiel #6
0
if __name__ == '__main__':

    #set_debug(True)
    if not userdata.get('not_first_run', False):
        missing = check_missing()
        if not missing == None:
            die(missing)
        else:
            userdata.save('not_first_run', 1)

    # Get the plugin url in plugin:// notation.
    KODI_URL = sys.argv[0]
    # Get the plugin handle as an integer number.
    KODI_HANDLE = int(sys.argv[1])
    log('HANDLE', KODI_HANDLE, 'args', sys.argv)

    REQUEST = dict(parse_qsl(sys.argv[2][1:]))
    log('REQ', REQUEST)
    PAGE = REQUEST.get('page', 'home')

    if PAGE == 'nothing':
        exit()

    # Filtering page, prevent malicous call
    if not PAGE in ('home', 'post', 'play', 'cari', 'clear'):
        xbmcgui.Dialog().notification('Drakorindo',
                                      'Page not found: %s' % PAGE,
                                      xbmcgui.NOTIFICATION_ERROR)
        exit(1)
    else:
def get(url, retry=False):
    global DRAKORINDO_CONNECTION

    if not DRAKORINDO_CONNECTION:
        try:
            log('CONNECTING drakorindo.co')
            DRAKORINDO_CONNECTION = http.HTTPConnection('drakorindo.co')
            log('\tConnected')
        except Exception as e:
            log('FAILED %s' % e.message)
            raise e

    try:
        log('GET %s' % url)
        DRAKORINDO_CONNECTION.request("GET", url)
        r = DRAKORINDO_CONNECTION.getresponse()
        log('\tOK: %d %s' % (r.status, r.reason))
        return r.read()

    except http.RemoteDisconnected as e:
        log('\tDISCONNECTED')
        DRAKORINDO_CONNECTION = None
        if retry:
            raise e
        else:
            log('\tRetrying..')
            return get(url, True)