Ejemplo n.º 1
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.º 2
0
			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")
			match = re.search('api_key=([^&]+)', temp)
Ejemplo n.º 3
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
Ejemplo n.º 4
0
			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
	
class TraktTempError(Exception):
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,
			"quality" INTEGER DEFAULT 3,