auto add new library sources to kodi database

This commit is contained in:
Marcel van der Veldt 2015-03-13 23:39:35 +01:00
parent 860bdfbbd8
commit 85550ce1ad
2 changed files with 28 additions and 14 deletions

View File

@ -12,6 +12,7 @@ import urllib
from datetime import datetime, timedelta, time
import urllib2
import os
from xml.etree.ElementTree import Element, SubElement, Comment, tostring
from xml.etree import ElementTree
from xml.dom import minidom
@ -198,11 +199,11 @@ class LibrarySync():
root = Element("movie")
SubElement(root, "id").text = item["Id"]
SubElement(root, "tag").text = item["Id"]
SubElement(root, "tag").text = "all mediabrowser movies" # TODO --> use tags to assign user view
SubElement(root, "thumb").text = downloadUtils.getArtwork(item, "poster")
SubElement(root, "fanart").text = timeInfo.get('Backdrop')
SubElement(root, "fanart").text = downloadUtils.getArtwork(item, "Backdrop")
SubElement(root, "title").text = item["Name"].encode('utf-8').decode('utf-8')
SubElement(root, "originaltitle").text = item["Id"]
SubElement(root, "originaltitle").text = item["Name"].encode('utf-8').decode('utf-8')
SubElement(root, "year").text = str(item.get("ProductionYear"))
SubElement(root, "runtime").text = str(timeInfo.get('Duration'))
@ -210,14 +211,14 @@ class LibrarySync():
fileinfo = SubElement(root, "fileinfo")
streamdetails = SubElement(fileinfo, "streamdetails")
video = SubElement(streamdetails, "video")
SubElement(video, "duration").text = str(timeInfo.get('totaltime'))
SubElement(video, "aspect").text = timeInfo.get('aspectratio')
SubElement(video, "codec").text = timeInfo.get('videocodec')
SubElement(video, "width").text = str(timeInfo.get('width'))
SubElement(video, "height").text = str(timeInfo.get('height'))
SubElement(video, "duration").text = str(mediaStreams.get('totaltime'))
SubElement(video, "aspect").text = mediaStreams.get('aspectratio')
SubElement(video, "codec").text = mediaStreams.get('videocodec')
SubElement(video, "width").text = str(mediaStreams.get('width'))
SubElement(video, "height").text = str(mediaStreams.get('height'))
audio = SubElement(streamdetails, "audio")
SubElement(audio, "codec").text = timeInfo.get('audiocodec')
SubElement(audio, "channels").text = timeInfo.get('channels')
SubElement(audio, "codec").text = mediaStreams.get('audiocodec')
SubElement(audio, "channels").text = mediaStreams.get('channels')
SubElement(root, "plot").text = API().getOverview(item).decode('utf-8')

View File

@ -8,6 +8,8 @@ import xbmcaddon
import xbmcvfs
import json
import os
import sqlite3
import inspect
from xml.etree.ElementTree import Element, SubElement, Comment, tostring
from xml.etree import ElementTree
@ -70,10 +72,10 @@ def checkKodiSources():
rebootRequired = False
if not "mediabrowser_movies" in allKodiSources:
addKodiSource("mediabrowser_movies",movieLibrary)
addKodiSource("mediabrowser_movies",movieLibrary,"movies")
rebootRequired = True
if not "mediabrowser_tvshows" in allKodiSources:
addKodiSource("mediabrowser_tvshows",tvLibrary)
addKodiSource("mediabrowser_tvshows",tvLibrary,"tvshows")
rebootRequired = True
if rebootRequired:
@ -81,7 +83,7 @@ def checkKodiSources():
if ret:
xbmc.executebuiltin("RestartApp")
def addKodiSource(name, path):
def addKodiSource(name, path, type):
userDataPath = xbmc.translatePath( "special://profile" )
sourcesFile = os.path.join(userDataPath,'sources.xml')
@ -103,8 +105,19 @@ def addKodiSource(name, path):
source = SubElement(videosources,'source')
SubElement(source, "name").text = name
SubElement(source, "path").text = path
tree.write(sourcesFile)
#add new source to database
dbPath = xbmc.translatePath("special://userdata/Database/MyVideos90.db")
connection = sqlite3.connect(dbPath)
cursor = connection.cursor( )
cursor.execute("select coalesce(max(idPath),0) as pathId from path")
pathId = cursor.fetchone()[0]
pathId = pathId + 1
pathsql="insert into path(idPath, strPath, strContent, strScraper, strHash, scanRecursive) values(?, ?, ?, ?, ?, ?)"
cursor.execute(pathsql, (pathId,path + "\\",type,"metadata.local",None,2147483647))
connection.commit()
cursor.close()
def checkAuthentication():
#check authentication