def art(filename): adn = Addon('plugin.video.1channel', sys.argv) THEME_LIST = ['mikey1234', 'Glossy_Black'] THEME = THEME_LIST[int(adn.get_setting('theme'))] THEME_PATH = os.path.join(adn.get_path(), 'art', 'themes', THEME) img = os.path.join(THEME_PATH, filename) return img
def art(filename): adn = Addon("plugin.video.1channel", sys.argv) THEME_LIST = ["mikey1234", "Glossy_Black"] THEME = THEME_LIST[int(adn.get_setting("theme"))] THEME_PATH = os.path.join(adn.get_path(), "art", "themes", THEME) img = os.path.join(THEME_PATH, filename) return img
def art(file): adn = Addon('plugin.video.1channel', sys.argv) THEME_LIST = ['mikey1234','Glossy_Black'] THEME = THEME_LIST[int(adn.get_setting('theme'))] THEME_PATH = os.path.join(adn.get_path(), 'art', 'themes', THEME) img = os.path.join(THEME_PATH, file) return img
""" gozlanurlresolver XBMC Addon Copyright (C) 2011 t0mm0 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. """ import os from t0mm0.common.addon import Addon import xbmc import xbmcaddon import xbmcgui import xbmcplugin addon = Addon('plugin.video.gozlan.me') addon_path = addon.get_path() plugins_path = os.path.join(addon_path, 'lib', 'gozlanurlresolver', 'plugins') profile_path = addon.get_profile() settings_file = os.path.join(addon_path, 'resources', 'settings.xml')
along with this program. If not, see <http://www.gnu.org/licenses/>. ''' import os from t0mm0.common.addon import Addon import xbmc import xbmcvfs import xbmcgui import config plugin_id = config.plugin_id skin_id = config.skin_id addon = Addon(plugin_id) addon_path = addon.get_path() default_path = 'special://profile/addon_data/'+plugin_id+'/' db_path = os.path.join(xbmc.translatePath("special://database"), 'myvideolibrary') use_remote_db = addon.get_setting('use_remote_db') db_address = addon.get_setting('db_address') db_port = addon.get_setting('db_port') if db_port: db_address = '%s:%s' %(db_address,db_port) db_user = addon.get_setting('db_user') db_pass = addon.get_setting('db_pass') db_name = addon.get_setting('db_name') def make_dir(mypath, dirname):
import sys import os import inspect import time import random import urllib import xbmcplugin import xbmcgui from t0mm0.common.addon import Addon import rdiocommon ADDON_ID = 'plugin.audio.rdio' addon = Addon(ADDON_ID, argv=sys.argv) sys.path.append(os.path.join(addon.get_path(), 'resources', 'lib')) from rdioxbmc import RdioApi, RdioAuthenticationException class XbmcRdioOperation: _TYPE_ALBUM = 'a' _TYPE_ARTIST = 'r' _TYPE_PLAYLIST = 'p' _TYPE_USER = '******' _TYPE_TRACK = 't' _TYPE_ALBUM_IN_COLLECTION = 'al' _TYPE_ARTIST_IN_COLLECTION = 'rl' _PAGE_SIZE_ALBUMS = 100 _PAGE_SIZE_HEAVY_ROTATION = 14
import os import traceback import inspect import time import urllib import sqlite3 import xbmcplugin import xbmcgui from t0mm0.common.addon import Addon import rdiocommon from rdioradio import RdioRadio ADDON_ID = 'plugin.audio.rdio' addon = Addon(ADDON_ID, argv=sys.argv) sys.path.append(os.path.join(addon.get_path(), 'resources', 'lib')) from rdioxbmc import RdioApi, RdioAuthenticationException class XbmcRdioOperation: _TYPE_ALBUM = 'a' _TYPE_ARTIST = 'r' _TYPE_PLAYLIST = 'p' _TYPE_USER = '******' _TYPE_TRACK = 't' _TYPE_ALBUM_IN_COLLECTION = 'al' _TYPE_ARTIST_IN_COLLECTION = 'rl' _PAGE_SIZE_ALBUMS = 100 _PAGE_SIZE_HEAVY_ROTATION = 14
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. ''' import os import re import string import sys from t0mm0.common.addon import Addon from t0mm0.common.net import Net import urlresolver addon = Addon('plugin.video.t0mm0.test', sys.argv) net = Net() logo = os.path.join(addon.get_path(), 'art','logo.jpg') base_url = 'http://tubeplus.me' mode = addon.queries['mode'] play = addon.queries.get('play', None) if play: url = addon.queries.get('url', '') host = addon.queries.get('host', '') media_id = addon.queries.get('media_id', '') #stream_url = urlresolver.resolve(play) stream_url = urlresolver.HostedMediaFile(url=url, host=host, media_id=media_id).resolve() addon.resolve_url(stream_url) elif mode == 'resolver_settings':
from sqlite3 import dbapi2 as sqlite print "Loading sqlite3 as DB engine" except: from pysqlite2 import dbapi2 as sqlite print "Loading pysqlite2 as DB engine" addon = Addon('plugin.video.1channel', sys.argv) DB = os.path.join(xbmc.translatePath("special://database"), 'onechannelcache.db') META_ON = addon.get_setting('use-meta') == 'true' FANART_ON = addon.get_setting('enable-fanart') == 'true' USE_POSTERS = addon.get_setting('use-posters') == 'true' POSTERS_FALLBACK = addon.get_setting('posters-fallback') == 'true' THEME_LIST = ['mikey1234','Glossy_Black'] THEME = THEME_LIST[int(addon.get_setting('theme'))] THEME_PATH = os.path.join(addon.get_path(), 'art', 'themes', THEME) AUTO_WATCH = addon.get_setting('auto-watch') == 'true' AZ_DIRECTORIES = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y', 'Z'] BASE_URL = 'http://www.1channel.ch' USER_AGENT = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' GENRES = ['Action', 'Adventure', 'Animation', 'Biography', 'Comedy', 'Crime', 'Documentary', 'Drama', 'Family', 'Fantasy', 'Game-Show', 'History', 'Horror', 'Japanese', 'Korean', 'Music', 'Musical', 'Mystery', 'Reality-TV', 'Romance', 'Sci-Fi', 'Short', 'Sport', 'Talk-Show', 'Thriller', 'War', 'Western', 'Zombies'] prepare_zip = False metaget=metahandlers.MetaData(preparezip=prepare_zip) if not os.path.isdir(addon.get_profile()):
try: from sqlite3 import dbapi2 as sqlite print "Loading sqlite3 as DB engine" except: from pysqlite2 import dbapi2 as sqlite print "Loading pysqlite2 as DB engine" addon_id = 'plugin.video.dfmalaystream' plugin = xbmcaddon.Addon(id=addon_id) #DB = os.path.join(xbmc.translatePath("special://database"), 'dfv.db') BASE_URL = 'http://malaystream.zapto.org' net = Net() addon = Addon('plugin.video.dfmalaystream', sys.argv) ###### PATHS ########### AddonPath = addon.get_path() IconPath = AddonPath + "/icons/" FanartPath = AddonPath + "/icons/" ##### Queries ########## mode = addon.queries['mode'] url = addon.queries.get('url', None) content = addon.queries.get('content', None) query = addon.queries.get('query', None) startPage = addon.queries.get('startPage', None) numOfPages = addon.queries.get('numOfPages', None) listitem = addon.queries.get('listitem', None) urlList = addon.queries.get('urlList', None) section = addon.queries.get('section', None) ################################################################################# Titles #################################################################################
try: import json except ImportError: import simplejson as json try: import StorageServer except: import storageserverdummy as StorageServer BASE_URL = "http://www.tubetamil.com/" MOVIE_URL = "http://tamilbase.com/category/s3-movies/c159-latest-movei/" net = Net() addonId = 'plugin.video.oliyumoliyum' addon = Addon( addonId, sys.argv ) addonPath = xbmc.translatePath( addon.get_path() ) resPath = os.path.join( addonPath, 'resources' ) tvxmlFile = os.path.join( resPath, 'livetv.xml' ) radioxmlFile = os.path.join( resPath, 'liveradio.xml' ) iconPath = os.path.join( resPath, 'images' ) cache = StorageServer.StorageServer( addonId ) cache.dbg = True def getImgPath( icon ): icon = icon + '.png' imgPath = os.path.join( iconPath, icon ) if os.path.exists( imgPath ): return imgPath else: return ''
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. ''' import os import re import string import sys from t0mm0.common.addon import Addon from t0mm0.common.net import Net import urlresolver addon = Addon('plugin.video.t0mm0.test', sys.argv) net = Net() logo = os.path.join(addon.get_path(), 'art', 'logo.jpg') base_url = 'http://tubeplus.me' mode = addon.queries['mode'] play = addon.queries.get('play', None) if play: url = addon.queries.get('url', '') host = addon.queries.get('host', '') media_id = addon.queries.get('media_id', '') #stream_url = urlresolver.resolve(play) stream_url = urlresolver.HostedMediaFile(url=url, host=host, media_id=media_id).resolve() addon.resolve_url(stream_url)
class CraftsyPlugin(): addon = None net = None logo = None profile_path = None cookie_file = None base_url = None free_url = 'http://www.craftsy.com.edgesuite.net/' pay_url = 'http://cd1.craftsy.com/' def __init__(self): self.addon = Addon('plugin.video.craftsy', sys.argv) self.net = Net() self.logo = os.path.join(self.addon.get_path(), 'art','logo.jpg') self.profile_path = self.addon.get_profile() self.cookie_file = os.path.join(self.profile_path, 'craftsy.cookies') try: os.makedirs(os.path.dirname(self.cookie_file)) except OSError: pass self.net.set_cookies(self.cookie_file) self.base_url = 'http://www.craftsy.com' def __get_image(self, url): fname = os.path.join(self.profile_path, md5.new(url).digest()) print fname if os.path.isfile(fname): return fname return url def __check_link(self, url): if (re.match('^/', url)): return 'http:' + url return url def __fetch_regexp_idx(self, r, idx, default = None): if (r == None): return default if (len(r.groups()) < idx + 1): return default return r.groups()[idx] def check_login(self): source = self.net.http_GET(self.base_url + '/my/home?NAVIGATION_PAGE_CONTEXT_ATTR=NONE').content r = re.search('<title>([^<]+)</title>', source) title = r.groups()[0] if title == 'Welcome Back to Craftsy!': return False return True def __get_url(self, url): return self.net.http_GET(url).content.encode('utf8').replace("\n", "").replace("\r", "") def add_classes(self): source = self.__get_url(self.base_url + '/my/home?NAVIGATION_PAGE_CONTEXT_ATTR=NONE') source = re.sub('<div class="classCard mostRecent".*?</div>.*?</div>.*?</div>.*?</div>', '', source) source = re.sub('<div class="continueArea".*?</div>.*?</div>', '', source) # parts = re.split('<div class="classBot myClassBot">', source) r = re.findall('<a href="(/lecture[^\"]+)"(.*?)</a>[ \s\t]*<div class="classBot myClassBot">.*?<a href="([^"]+)"', source) for i in r: url = i[2] if (re.match('^/', url)): url = self.base_url + url t = re.search('<h4>([^<]+)</h4>', i[1]) title = 'N/A' title = self.__fetch_regexp_idx(t, 0, 'N/A') img = self.base_url + '/images/craftsy/noImageTitleCard.png' t = re.search('<img src="([^"]+)" alt="[^"]+" onerror', i[1]) _u = self.__fetch_regexp_idx(t, 0) if (_u != None): img = self.__check_link(_u) # print self.__get_image(img) self.addon.add_directory({'mode': 'classes', 'url': url}, {'title': title}, fanart=img, img=img) def __try_resolve(self, pattern, video): r = re.search(pattern, video) return self.__fetch_regexp_idx(r, 0) def resolve_url(self, lesson_url): pattern = '&([0-9]+)&(pay|free)$' l = re.search(pattern, lesson_url) lesson_id = self.__fetch_regexp_idx(l, 0) lesson_type = self.__fetch_regexp_idx(l, 1, 'pay') lesson_url = re.sub(pattern, '', lesson_url) q = self.addon.get_setting('quality') t = self.addon.get_setting('type') source = self.__get_url(lesson_url) uid = re.search('/([0-9]+)\\.html(\\?t=[0-9]*){0,1}$', lesson_url) url_id = self.__fetch_regexp_idx(uid, 0) if (url_id == None): return None r = re.search('arbitraryId = ([0-9]+),', source) arbitraryId = self.__fetch_regexp_idx(r, 0) if (arbitraryId != None): url_id = arbitraryId suffix = lesson_id + '/' + url_id + '/' + url_id + '-' + q + '.' + t if lesson_type == 'free': print "THE URL TO PLAY IS " + self.free_url + suffix return self.free_url + suffix else: return self.pay_url + suffix # r = re.search('(<video.*?</video>)', source) # if (len(r.groups()) == 0): # return None # else: # video = r.groups()[0] # video_url = self.__try_resolve('<source src="([^"]+-' + q + '\\.' + t + ')"', video) # if (video_url == None): # video_url = self.__try_resolve('<source src="([^"]+-' + q + '\\.[^\\.]+)"', video) # if (video_url == None): # video_url = self.__try_resolve('<source src="([^"]+)"', video) # return video_url def add_lessons(self, class_url): source = self.__get_url(class_url) # self.net.http_GET(class_url).content l = re.search('\,([0-9]+)$', class_url) lesson_id = self.__fetch_regexp_idx(l, 0) if (lesson_id == None): self.addon.show_error_dialog(['Could not fetch the lesson ID']); return None r = re.findall('(<tr class="classLesson.*?</tr>)', source) first = True lesson_type = 'pay' for i in r: text = i el = re.search('<td class="lessonName">.*?<a href="([^"]+)">(.*?)</a>', text) href = self.__fetch_regexp_idx(el, 0) if href != None: href = self.__check_link(href) title = self.__fetch_regexp_idx(el, 1, 'N/A') if (first): if (title.lower() == 'welcome to your free mini-class!'): lesson_type = 'free' im = re.search('<td class="lessonImage">.*?<img src="([^"]+)"', text) img = self.__check_link(self.__fetch_regexp_idx(im, 0, os.path.join(self.addon.get_path(), 'art','no-img.jpg'))) self.addon.add_video_item({'url': href + '&' + lesson_id + '&' + lesson_type}, {'title': title}, img = img, fanart = img) first = False def do_login(self): try: if self.check_login(): return True data=(('email', self.addon.get_setting('username')), ('password', self.addon.get_setting('password')), ('forwardUrl', '/')) source = self.net.http_POST(self.base_url + '/doLogin.json?isCraftsyAjax=true', data).content response = JSONDecoder().decode(source) self.net.save_cookies(self.cookie_file) self.net.set_cookies(self.cookie_file) return response.get("success") except Exception as e: print e return False
'Fantasy', 'Film Noir', 'Game Show', 'History', 'Horror', 'Music', 'Mystical', 'News', 'Reality TV', 'Romance', 'Sci-Fi', 'Short', 'Sport', 'Talk Show', 'Thriller', 'War', 'Western' ] addon = Addon('plugin.video.solarmovie', sys.argv) cm = ContextMenu(addon) net = Net() net.set_user_agent('Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; yie9)') base_url = 'http://www.solarmovie.eu' mode = addon.queries['mode'] play = addon.queries.get('play', None) solarpath = addon.get_path() smallimage = os.path.join(xbmc.translatePath(solarpath), \ 'art','logo_in_gold_black.jpg') numpages = numpagesindex[addon.get_setting('numpages')] maxlinks = int(addon.get_setting('maxlinks')) hideadult = addon.get_setting('hideadult') enableproxy = addon.get_setting('proxy_enable') proxyserver = addon.get_setting('proxy_server') proxyport = addon.get_setting('proxy_port') proxyuser = addon.get_setting('proxy_user') proxypass = addon.get_setting('proxy_pass') if enableproxy == 'true': proxy = 'http://'
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. ''' import re import string import sys from t0mm0.common.addon import Addon from t0mm0.common.net import Net import urlresolver import os,xbmc addon = Addon('plugin.video.t0mm0.test', sys.argv) net = Net() logo = os.path.join(xbmc.translatePath(addon.get_path()), 'art','logo.jpg') base_url = 'http://tubeplus.me' mode = addon.queries['mode'] play = addon.queries.get('play', None) if play: stream_url = urlresolver.resolve(play) addon.resolve_url(stream_url) elif mode == 'resolver_settings': urlresolver.display_settings() elif mode == 'test': addon.add_video_item('http://www.megaupload.com/?d=TQPQJM5H',
try: from sqlite3 import dbapi2 as sqlite print "Loading sqlite3 as DB engine" except: from pysqlite2 import dbapi2 as sqlite print "Loading pysqlite2 as DB engine" addon_id = 'plugin.video.dfmalaystream' plugin = xbmcaddon.Addon(id=addon_id) #DB = os.path.join(xbmc.translatePath("special://database"), 'dfv.db') BASE_URL = 'http://selangit.org/master/sg1' net = Net() addon = Addon('plugin.video.dfmalaystream', sys.argv) ###### PATHS ########### AddonPath = addon.get_path() IconPath = AddonPath + "/icons/" FanartPath = AddonPath + "/icons/" ##### Queries ########## mode = addon.queries['mode'] url = addon.queries.get('url', None) content = addon.queries.get('content', None) query = addon.queries.get('query', None) startPage = addon.queries.get('startPage', None) numOfPages = addon.queries.get('numOfPages', None) listitem = addon.queries.get('listitem', None) urlList = addon.queries.get('urlList', None) section = addon.queries.get('section', None) ################################################################################# Titles #################################################################################
try: from sqlite3 import dbapi2 as database addon.log('Loading sqlite3 as DB engine') except: from pysqlite2 import dbapi2 as database addon.log('pysqlite2 as DB engine') DB = 'sqlite' db_dir = os.path.join(xbmc.translatePath("special://database"), addon_name + '.db') META_ON = addon.get_setting('use-meta') == 'true' FANART_ON = addon.get_setting('enable-fanart') == 'true' USE_POSTERS = addon.get_setting('use-posters') == 'true' THEME_LIST = ['mikey1234', 'Glossy_Black'] THEME = THEME_LIST[int(addon.get_setting('theme'))] THEME_PATH = os.path.join(addon.get_path(), 'resources', 'art', 'themes', THEME) LOGO = os.path.join(addon.get_path(), 'resources', 'art', 'logo.png') HOST = "www.bharatchannels.com" BASE_URL = 'http://' + HOST USER_AGENT = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' AZ_DIRECTORIES = [ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' ] def init_routines(): addon.log('Building ' + addon_name + ' Database in ' + DB) if DB == 'mysql': print DB_NAME
programPath, "storageserverdummy.py") import storageserverdummy as StorageServer YOGI_URL = "http://tamilyogi.cc" BASE_URL = "http://www.tubetamil.com/" MOVIE_URL = "http://tamilbase.com/category/s3-movies/c159-latest-movei/" MOVIE_RAJ_URL = "http://www.rajtamil.com/category/movies/" MOVIE_GUN_MOVI = "http://tamilgun.com/categories/movies/" EINTHUSAN = "http://www.einthusan.com/" net = Net() addonId = 'plugin.video.bhoomi' addon_settings = xbmcaddon.Addon(id=addonId) addon = Addon(addonId, sys.argv) addonPath = xbmc.translatePath(addon.get_path()) resPath = os.path.join(addonPath, 'resources') iconPath = os.path.join(resPath, 'images') addon_handle = int(sys.argv[1]) base_url = sys.argv[0] debug = True cache = StorageServer.StorageServer(addonId) cache.dbg = True addonLocation = xbmc.translatePath( os.path.join('special://home', 'addons', addonId)) import string digs = string.digits + string.letters
import json import urllib import xbmc import urlparse import xbmcgui import xbmcplugin from t0mm0.common.addon import Addon from t0mm0.common.net import Net from metahandler import metahandlers from metahandler import metacontainers from utils import * addon = Addon('plugin.video.waldo', sys.argv) INDEXES_PATH = os.path.join(addon.get_path(),'indexes') PROVIDERS_PATH = os.path.join(addon.get_path(),'providers') def listIndexes(): import indexes for index in indexes.index_list: title = index.display_name args = {'waldo_mode':'ListIndexBrowsingOptions'} args['waldo_mod'] = get_index_name(index) args['waldo_path'] = os.path.dirname(index.__file__) addon.add_directory(args, {'title': title}) addon.end_of_directory() def ListIndexBrowsingOptions(index, ind_path): index = import_module(index, fromlist=[INDEXES_PATH, ind_path]) options = index.get_browsing_options()