def play(params): name = params.name youtube_id = params.get('youtube_id') if youtube_id and requests.head( "http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v={0}&format=json" .format(youtube_id)).status_code == 200: video_url = "plugin://plugin.video.youtube/play/?video_id={0}".format( youtube_id) else: results = [] for media in youtube_search(urllib.quote_plus(name)): label = media["label"] label2 = media["plot"] image = "" if media.get('art'): if media['art'].get('thumb'): image = (media['art']['thumb']) listitem = xbmcgui.ListItem(label=label, label2=label2, iconImage=image) listitem.setProperty("path", media["file"]) results.append(listitem) xbmc.executebuiltin("dialog.Close(busydialog)") title = "{0} \"{1}\"".format(_("Select mirror for"), name) dialog = DialogSelect("DialogSelect.xml", "", listing=results, title=title) dialog.doModal() result = dialog.result if not result: return video_url = result.getProperty("path") return Plugin.resolve_url(play_item={'path': video_url})
def play(params): play_item = {'path': params.url} if SUBTITLE: subtitle_file = os.path.join(addon.config_dir, "subtitle.srt") subtitle_downloaded = download_subtitle(params.subtitle, subtitle_file) if subtitle_downloaded: play_item['subtitles'] = [subtitle_file] return Plugin.resolve_url(params.url, play_item=play_item)
def build_anime_list(animes): animes_list = [] for anime in animes: image = "https://punchsub.zlx.com.br/imagens/projetos/animes/%s.jpg" % ( anime[0]) animes_list.append({ 'label': anime[1], 'url': plugin.get_url(action='view', name=anime[1], id=anime[0]), 'art': { 'thumb': image, 'icon': image, 'poster': image, 'fanart': image, }, }) return Plugin.create_listing(animes_list, content="tvshows", view_mode=500)
def season(): result = anilist.get_animes({}) animes = result["data"]["Page"]["media"] animes_list = [] for anime in animes: image = anime["coverImage"]["large"] title = anime["title"]["romaji"] animes_list.append({ 'label': title, 'url': plugin.get_url(action='search', title=title), 'art': { 'thumb': image, 'icon': image, 'poster': image, 'fanart': image, 'banner': anime['bannerImage'] }, 'info': { 'video': { 'plot': anime['description'] } } }) return Plugin.create_listing(animes_list, content="tvshows", view_mode=50)
#!/usr/bin/env python # -*- coding: utf-8 -*- import requests import urllib2 from resources.lib.simpleplugin import Plugin from punch import Punch, LoginError from anilist import Anilist import string import xbmc import re plugin = Plugin() punch = Punch(plugin.get_setting("username"), plugin.get_setting("password")) anilist = Anilist() def build_anime_list(animes): animes_list = [] for anime in animes: image = "https://punchsub.zlx.com.br/imagens/projetos/animes/%s.jpg" % ( anime[0]) animes_list.append({ 'label': anime[1], 'url': plugin.get_url(action='view', name=anime[1], id=anime[0]), 'art': { 'thumb': image, 'icon': image, 'poster': image,
import xbmcgui import xbmcplugin from resources.lib.mediathekviewweb import MediathekViewWeb from resources.lib.simpleplugin import Plugin, Addon from resources.lib.utils import py2_encode, py2_decode # add pytz module to path addon_dir = py2_decode(xbmc.translatePath(xbmcaddon.Addon().getAddonInfo('path'))) module_dir = os.path.join(addon_dir, "resources", "lib", "pytz") sys.path.insert(0, module_dir) import pytz plugin = Plugin() addon = Addon() _ = plugin.initialize_gettext() PER_PAGE = plugin.get_setting("per_page") FUTURE = plugin.get_setting("enable_future") QUALITY = plugin.get_setting("quality") SUBTITLE = plugin.get_setting("enable_subtitle") if SUBTITLE: from resources.lib.subtitles import download_subtitle def list_videos(callback, page, query=None, channel=None): m = MediathekViewWeb(PER_PAGE, FUTURE)
# -*- coding: utf-8 -*- import re import bs4 import json import urllib import urlparse import requests from HTMLParser import HTMLParser from resources.lib.simpleplugin import Plugin, Addon, ListContext import xbmc import xbmcgui ListContext.cache_to_disk = True plugin = Plugin() addon = Addon() _ = plugin.initialize_gettext() BASE_URL = 'http://dokustreams.de/wp-json/wp/v2' PER_PAGE = plugin.get_setting('per_page') class DialogSelect(xbmcgui.WindowXMLDialog): def __init__(self, *args, **kwargs): xbmcgui.WindowXMLDialog.__init__(self) self.listing = kwargs.get("listing") self.title = kwargs.get("title") self.totalitems = 0 self.result = None def autofocus_listitem(self):
# -*- coding: utf-8 -*- from resources.lib.simpleplugin import Plugin import httplib2 import xbmc import xbmcgui import re import HTMLParser import urllib import socket import traceback import types P = Plugin() PLUGIN_ID = P.addon.getAddonInfo('id') MEDIA_URL = 'special://home/addons/{0}/resources/media/'.format(PLUGIN_ID) ADDON_FOLDER = xbmc.translatePath('special://profile/addon_data/' + PLUGIN_ID) USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 YaBrowser/18.6.1.770 Yowser/2.5 Safari/537.36' STR_NO_DATA = 'n/d' STR_LIST_DELIMITER = '[/B] / [B]' VIEW_MODES = { 'skin.estuary': { 'files': { 'type': 'files', 'mode': 55, },