Ejemplo n.º 1
0
	def get_cached_file(self, title, season=None, episode=None, year=None):
		from dudehere.routines.vfs import VFSClass
		vfs = VFSClass()
		if season is not None:
			for extension in ['avi', 'mkv', 'mov', 'mp4', 'flv']:
				path = vfs.join(self.save_directory, "TV Shows/%s %sx%s.%s" % (title, season, episode, extension))
				if vfs.exists(path):
					return path
			return False
		else:
			for extension in ['avi', 'mkv', 'mov', 'mp4', 'flv']:
				path = vfs.join(self.save_directory,"Movies/%s (%s).%s" % (title, year, extension))
				if vfs.exists(path):
					return path
			return False
Ejemplo n.º 2
0
	def get_cached_file(self, title, season=None, episode=None, year=None):
		from dudehere.routines.vfs import VFSClass
		vfs = VFSClass()
		if season is not None:
			for extension in ['avi', 'mkv', 'mov', 'mp4', 'flv']:
				path = vfs.join(self.save_directory, "TV Shows/%s %sx%s.%s" % (title, season, episode, extension))
				if vfs.exists(path):
					return path
			return False
		else:
			for extension in ['avi', 'mkv', 'mov', 'mp4', 'flv']:
				path = vfs.join(self.save_directory,"Movies/%s (%s).%s" % (title, year, extension))
				if vfs.exists(path):
					return path
			return False
Ejemplo n.º 3
0
	def onPlayBackStopped(self):
		if get_property('streaming.started'):
			vfs = VFSClass()
			ADDON.log("Now I'm stopped")
			ADDON.log("Abort: %s" % get_property('file_id'))
			set_property("abort_id", get_property('file_id'))
			tail_file = vfs.join(WORK_DIRECTORY, get_property('file_id') + '.tail')
			if vfs.exists(tail_file):
				vfs.rm(tail_file,quiet=True)
			time.sleep(0.25)
			clear_property("abort_id")
			clear_property('playing')
			clear_property('file_id')
			clear_property('streaming.started')
			clear_property("streaming.total_bytes")
			clear_property("streaming.total_blocks")
			clear_property("streaming.file_id")
			clear_property("streaming.abort")
			clear_property("streaming.seek_block")
			clear_property('streaming.tail_requested')
Ejemplo n.º 4
0
import unicodedata
import xbmcgui
import urlresolver
import hashlib
import random
from urlparse import urljoin
from dudehere.routines import *
from dudehere.routines.threadpool import ThreadPool
from addon.common.net import Net, HttpResponse
from BeautifulSoup import BeautifulSoup
from dudehere.routines.vfs import VFSClass
vfs = VFSClass()
DECAY = 2
SCRAPER_DIR = os.path.dirname(os.path.abspath(__file__))
COOKIE_PATH = vfs.join(DATA_PATH,'cookies')
if not vfs.exists(COOKIE_PATH): vfs.mkdir(COOKIE_PATH, recursive=True)
sys.path.append(SCRAPER_DIR)
RD_HOSTS = []
if ADDON.get_setting('database_type')=='1':
	DB_NAME = ADDON.get_setting('database_mysql_name')
	DB_USER = ADDON.get_setting('database_mysql_user')
	DB_PASS = ADDON.get_setting('database_mysql_pass')
	DB_PORT = ADDON.get_setting('database_mysql_port')
	DB_ADDRESS = ADDON.get_setting('database_mysql_host')
	DB_TYPE = 'mysql'
	from dudehere.routines.database import MySQLDatabase as DatabaseAPI

else:
	DB_TYPE = 'sqlite'
	DB_FILE = xbmc.translatePath(ADDON.get_setting('database_sqlite_file'))
	from dudehere.routines.database import SQLiteDatabase as DatabaseAPI
Ejemplo n.º 5
0
		if do_init:
			import xbmcaddon
			root = xbmcaddon.Addon('script.module.dudehere.routines').getAddonInfo('path')
			schema = vfs.join(root, 'resources/database/trakt.schema.sql')
			if vfs.exists(schema):
				full_sql = vfs.read_file(schema)
				sql_stmts = full_sql.split(';')
				for SQL in sql_stmts:
					if SQL is not None and len(SQL.strip()) > 0:
						self.execute(SQL)
						print SQL
				self.commit()
				self.execute('INSERT OR REPLACE INTO version(db_version) VALUES(?)', [self.db_version])
				self.commit()
DB_LOCATION = vfs.join('special://userdata', 'addon_data/script.module.dudehere.routines')
if not vfs.exists(DB_LOCATION):
	vfs.mkdir(DB_LOCATION)
DB_FILE = vfs.join('special://userdata', 'addon_data/script.module.dudehere.routines/trakt.db')
DB = MyDatabaseAPI(DB_FILE, init_flag='database_sqlite_init.trakt', version_flag='database_sqlite_version.trakt', version=4, connect=True)

backdrop_sizes = ["w300","w780","w1280","original"]
logo_sizes = ["w45","w92","w154","w185","w300","w500","original"]
poster_sizes = ["w92","w154","w185","w342","w500","w780","original"]
profile_sizes = ["w45","w185","h632","original"]
still_sizes = ["w92","w185","w300","original"
			]
class TMDB_API():
	api_key = ADDON.get_setting('tmdb_key')
	def __init__(self):
		if self.api_key == 'dude':
			temp = vfs.read_file("special://home/addons/metadata.themoviedb.org/tmdb.xml")
Ejemplo n.º 6
0
			self.execute('INSERT INTO version(db_version) VALUES(?)', [self.db_version])
			self.commit()

	def do_init(self):
		do_init = True
		try:
			test = self.query("SELECT 1 FROM version WHERE db_version >= ?", [self.db_version], silent=True)
			if test:
				do_init = False
		except:
			do_init = True
		return do_init

		
DB_LOCATION = vfs.join('special://userdata', 'addon_data/script.module.dudehere.routines')
if not vfs.exists(DB_LOCATION):
	vfs.mkdir(DB_LOCATION)
DB_FILE = vfs.join('special://userdata', 'addon_data/script.module.dudehere.routines/trakt.db')
DB = MyDatabaseAPI(DB_FILE, version=7, connect=True)


class TraktError(Exception):
	def __init__(self, value):
		self.value = value
	def __str__(self):
		try:
			s = self.value
		except Exception,e:
			print "-----",type(e),e
		return s
	
Ejemplo n.º 7
0
RETRY_ATTEMPTS = int(ADDON.get_setting('retry_attempts'))

WINDOW_PREFIX = 'transmogrifier'
WEB_ROOT = vfs.join(ROOT_PATH, 'resources/www/html')
CONTROL_PORT = int(ADDON.get_setting('control_port'))
VALID_TOKENS = []

NOTIFICATION = ADDON.get_setting('notification')
if NOTIFICATION == 'None':
	NOTIFICATION = False
else:
	NOTIFICATION = NOTIFICATION.replace(" ", "_").lower()

ADDON.log("Work Directory: %s" % WORK_DIRECTORY)
ADDON.log("Cache Directory: %s" % CACHE_DIRECTORY)
if not vfs.exists(DATA_PATH): vfs.mkdir(DATA_PATH)
if not vfs.exists(CACHE_DIRECTORY): vfs.mkdir(CACHE_DIRECTORY)
if not vfs.exists(WORK_DIRECTORY): vfs.mkdir(WORK_DIRECTORY)
if not vfs.exists(MOVIE_DIRECTORY): vfs.mkdir(MOVIE_DIRECTORY)
if not vfs.exists(TVSHOW_DIRECTORY): vfs.mkdir(TVSHOW_DIRECTORY)

def set_property(k, v):
	k = "%s.%s" % (WINDOW_PREFIX, k)
	xbmcgui.Window(10000).setProperty(k, str(v))
	
def get_property(k):
	k = "%s.%s" % (WINDOW_PREFIX, k)
	p = xbmcgui.Window(10000).getProperty(k)
	if p == 'false': return False
	if p == 'true': return True
	return p
import unicodedata
import xbmcgui
import urlresolver
import hashlib
from dudehere.routines import *
from dudehere.routines.threadpool import ThreadPool
from addon.common.net import Net
from BeautifulSoup import BeautifulSoup
from dudehere.routines.vfs import VFSClass
from __builtin__ import None

vfs = VFSClass()
DECAY = 2
SCRAPER_DIR = os.path.dirname(os.path.abspath(__file__))
COOKIE_PATH = vfs.join(DATA_PATH, "cookies")
if not vfs.exists(COOKIE_PATH):
    vfs.mkdir(COOKIE_PATH, recursive=True)
sys.path.append(SCRAPER_DIR)

from dudehere.routines.database import SQLiteDatabase as DatabaseAPI


class MyDatabaseAPI(DatabaseAPI):
    def _initialize(self):
        SQL = """
			CREATE TABLE IF NOT EXISTS "search_cache" (
			"cache_id" INTEGER PRIMARY KEY AUTOINCREMENT, 
			"hash" TEXT NOT NULL,
			"service" TEXT NOT NULL,
			"host" TEXT NOT NULL,
			"display" TEXT NOT NULL,