The branch, eden has been updated
via 4d1e6dc3f24aaeb84092788d679ddc8b6c6c9588 (commit)
via fd5ddcfc99df29b7bdb1e4a63be1dcbbee4cae01 (commit)
via db861154000803d03ffcef4e26838e0314390496 (commit)
from c6b9cf975af1812e53ee9bd13b492f42ceff476e (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=4d1e6dc3f24aaeb84092788d679ddc8b6c6c9588
commit 4d1e6dc3f24aaeb84092788d679ddc8b6c6c9588
Author: spiff <[email protected]>
Date: Wed Sep 12 08:43:34 2012 +0200
[plugin.video.tmz] updated to version 2.0.4
diff --git a/plugin.video.tmz/addon.xml b/plugin.video.tmz/addon.xml
index 04a3762..6d7a36e 100644
--- a/plugin.video.tmz/addon.xml
+++ b/plugin.video.tmz/addon.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.tmz"
name="TMZ"
- version="2.0.2"
+ version="2.0.4"
provider-name="stacked">
<requires>
<import addon="xbmc.python" version="2.0"/>
+ <import addon="script.module.buggalo" version="1.0.1"/>
</requires>
<extension point="xbmc.python.pluginsource"
library="default.py">
diff --git a/plugin.video.tmz/changelog.txt b/plugin.video.tmz/changelog.txt
index c2d9719..b00c860 100644
--- a/plugin.video.tmz/changelog.txt
+++ b/plugin.video.tmz/changelog.txt
@@ -1,3 +1,13 @@
+[B]Version 2.0.4[/B]
+
+- Updated addon to support recent website changes.
+
+[B]Version 2.0.3[/B]
+
+- Switched to setResolvedUrl/IsPlayable method for video playback
+- Added Buggalo Exception Collector
+- Added options for Low/High video quality
+
[B]Version 2.0.2[/B]
- Updated addon to support recent website changes.
diff --git a/plugin.video.tmz/default.py b/plugin.video.tmz/default.py
index 2071570..ae003c8 100644
--- a/plugin.video.tmz/default.py
+++ b/plugin.video.tmz/default.py
@@ -1,12 +1,14 @@
-import xbmc, xbmcaddon, xbmcgui, xbmcplugin, urllib2, urllib, re, string, sys,
os, traceback, time, datetime
+import xbmc, xbmcaddon, xbmcgui, xbmcplugin, urllib2, urllib, re, string, sys,
os, traceback, time, datetime, buggalo
__plugin__ = 'TMZ'
__author__ = 'stacked <[email protected]>'
__url__ = 'http://code.google.com/p/plugin/'
-__date__ = '07-26-2012'
-__version__ = '2.0.2'
+__date__ = '09-11-2012'
+__version__ = '2.0.4'
__settings__ = xbmcaddon.Addon( id = 'plugin.video.tmz' )
+icon = os.path.join( __settings__.getAddonInfo( 'path' ), 'icon.png' )
+buggalo.SUBMIT_URL = 'http://www.xbmc.byethost17.com/submit.php'
def open_url(url):
req = urllib2.Request(url)
@@ -30,7 +32,7 @@ def build_main_directory():
( __settings__.getLocalizedString( 30003 ) )
]
for name in main:
- listitem = xbmcgui.ListItem( label = name, iconImage =
"DefaultFolder.png", thumbnailImage = "thumbnailImage" )
+ listitem = xbmcgui.ListItem( label = name, iconImage = icon,
thumbnailImage = icon )
u = sys.argv[0] + "?mode=0&name=" + urllib.quote_plus( name )
ok = xbmcplugin.addDirectoryItem( handle = int( sys.argv[1] ),
url = u, listitem = listitem, isFolder = True )
xbmcplugin.addSortMethod( handle = int(sys.argv[1]), sortMethod =
xbmcplugin.SORT_METHOD_NONE )
@@ -38,26 +40,33 @@ def build_main_directory():
def build_video_directory( name ):
data = open_url( 'http://www.tmz.com/videos/' )
- content = re.compile('carouselJsons\["Most Recent"\]\[\"' +
name.upper() + '\"\](.+?)];\n', re.DOTALL).findall( data )
- match = re.compile('\n{\n (.+?)\n}', re.DOTALL).findall( content[0] )
+ content = re.compile('{ name: \'' + name.upper() + '\',( )?\n
allInitialJson: \[(.+?)\],\n', re.DOTALL).findall( data )
+ match = re.compile('\n{\n (.+?)\n}', re.DOTALL).findall( content[0][1]
)
for videos in match:
- epsdata = re.compile('title": "(.+?)",\n "duration":
parseInt\("(.+?)", 10\),\n "url": "(.+?)",\n "videoUrl": "(.+?)",\n
"manualThumbnailUrl": "(.+?)",\n "thumbnailUrl": "(.+?)",\n "kalturaId":
"(.+?)"', re.DOTALL).findall(videos)
+ epsdata = re.compile('title": "(.+?)",\n "duration":
"(.+?)",\n "url": "(.+?)",\n "videoUrl": "(.+?)",\n "manualThumbnailUrl":
"(.+?)",\n "thumbnailUrl": "(.+?)",\n "kalturaId": "(.+?)"',
re.DOTALL).findall(videos)
title = clean(epsdata[0][0].replace("\\", ""))
duration = epsdata[0][1].replace("\\", "")
- url = epsdata[0][3].replace("\\", "")
+ videoUrl = epsdata[0][3].replace("\\", "")
thumb = epsdata[0][5].replace("\\", "") +
'/width/490/height/266/type/3'
- if url.find('http://cdnbakmi.kaltura.com') == -1:
+ if videoUrl.find('http://cdnbakmi.kaltura.com') == -1:
+ if __settings__.getSetting("quality") ==
__settings__.getLocalizedString( 30005 ):
+ url = 'http://cdnapi.kaltura.com/p/' +
thumb.split('/')[4] + '/sp/' + thumb.split('/')[6] + '/playManifest/entryId/0_'
+ videoUrl.split('_')[1]
+ else:
+ url = 'http://cdnapi.kaltura.com/p/' +
thumb.split('/')[4] + '/sp/' + thumb.split('/')[6] + '/playManifest/entryId/0_'
+ videoUrl.split('_')[1] + '/flavorId/0_' + videoUrl.split('_')[3]
listitem = xbmcgui.ListItem( label = title, iconImage =
thumb, thumbnailImage = thumb )
listitem.setInfo( type="Video", infoLabels={ "Title":
title, "Director": "TMZ", "Studio": name, "Duration":
str(datetime.timedelta(seconds=int(duration))) } )
+ listitem.setProperty('IsPlayable', 'true')
u = sys.argv[0] + "?mode=1&name=" + urllib.quote_plus(
title ) + "&url=" + urllib.quote_plus( url ) + "&thumb=" + urllib.quote_plus(
thumb ) + "&studio=" + urllib.quote_plus( name )
ok = xbmcplugin.addDirectoryItem( handle = int(
sys.argv[1] ), url = u, listitem = listitem, isFolder = False )
xbmcplugin.addSortMethod( handle = int(sys.argv[1]), sortMethod =
xbmcplugin.SORT_METHOD_NONE )
xbmcplugin.endOfDirectory( int( sys.argv[1] ) )
def play_video( name, url, thumb, studio ):
- item = xbmcgui.ListItem( label = name, iconImage = "DefaultVideo.png",
thumbnailImage = thumb )
- item.setInfo( type="Video", infoLabels={ "Title": name , "Director":
"TMZ", "Studio": studio } )
- xbmc.Player( xbmc.PLAYER_CORE_DVDPLAYER ).play( url, item )
+ data = open_url( url )
+ url = re.compile('<media url=\"(.+?)\"').findall(data)[0]
+ listitem = xbmcgui.ListItem( label = name, iconImage =
"DefaultVideo.png", thumbnailImage = thumb, path = url )
+ listitem.setInfo( type="Video", infoLabels={ "Title": name ,
"Director": "TMZ", "Studio": studio } )
+ xbmcplugin.setResolvedUrl( handle = int( sys.argv[1] ), succeeded =
True, listitem = listitem )
def get_params():
param = []
@@ -104,10 +113,13 @@ try:
except:
pass
-if mode == None:
- build_main_directory()
-elif mode == 0:
- build_video_directory( name )
-elif mode == 1:
- play_video( name, url, thumb, studio )
+try:
+ if mode == None:
+ build_main_directory()
+ elif mode == 0:
+ build_video_directory( name )
+ elif mode == 1:
+ play_video( name, url, thumb, studio )
+except Exception:
+ buggalo.onExceptionRaised()
\ No newline at end of file
diff --git a/plugin.video.tmz/resources/language/English/strings.xml
b/plugin.video.tmz/resources/language/English/strings.xml
index 4e5c85f..a59bf55 100644
--- a/plugin.video.tmz/resources/language/English/strings.xml
+++ b/plugin.video.tmz/resources/language/English/strings.xml
@@ -1,7 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<strings>
- <string id="30000">Raw and Uncut</string>
- <string id="30001">TMZ TV</string>
+ <string id="30000">Raw & Uncut</string>
+ <string id="30001">TMZ on TV</string>
<string id="30002">TMZ Live</string>
- <string id="30003">TMZ TV Full Episodes</string>
+ <string id="30003">Full Episodes</string>
+ <string id="30004">Video quality (Requires restart)</string>
+ <string id="30005">Low</string>
+ <string id="30006">High</string>
</strings>
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=fd5ddcfc99df29b7bdb1e4a63be1dcbbee4cae01
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=db861154000803d03ffcef4e26838e0314390496
commit db861154000803d03ffcef4e26838e0314390496
Author: spiff <[email protected]>
Date: Wed Sep 12 08:38:43 2012 +0200
[plugin.image.mypicsdb] initial version (1.1.0). thanks to Alexsolex, Xycl,
MikeBZH44
diff --git a/plugin.image.mypicsdb/Readme.txt b/plugin.image.mypicsdb/Readme.txt
index 9c85780..7f7ff2a 100644
--- a/plugin.image.mypicsdb/Readme.txt
+++ b/plugin.image.mypicsdb/Readme.txt
@@ -1,11 +1,34 @@
-1) Please translate MyPicsDB into your native language!
+1) Howto
+==================================================================================
+Don't change the plugin configuration unless you know what you do!
+
+a) You must add picture sources to XBMC
+b) Within MyPicsDB (not in the configuration) select menu "Paths of pictures
folders" to add these paths to the database.
+
+HINT: Net shares or use of a NAS
+Python add-ons aren't able to access remote files! This will change with Frodo
due to amendment of xbmcvfs.
+To access remote files there are three possibilities depending on your used OS.
+
+a) Windows client with SMB access to NAS
+ The path to a remote SMB source is stored in XBMC like
SMB://server/directory
+ This is changed by MyPicsDB to \\server\directory
+ Therefore it'll work on Windows if the local user has access to the remote
directory.
+ To give him access you must use the same User/Password combination on
Windows and on the NAS.
+b) Windows client with mapped drive letter to NAS
+ Add the mapped drive as a picture source to XBMC
+c) Linux, MacOS, OpenELEC
+ These OS are Unix based and they don't support UNC paths like Windows.
+ You must locally mount your remote directory and then add the local mount
point to XBMC as a picture source.
+ Afterwards MyPicsDB can access the "local" pictures.
+
+
+2) Please translate MyPicsDB into your native language!
==================================================================================
Files can be found in plugin.image.mypicsdb/resources/language
Please be aware that the / must be replaced with a \ for Windows!
- Always use the english file to translate!
-2) Auto-update MyPicsDB
+3) Auto-update MyPicsDB
==================================================================================
Idea from Fungify
You can call (example for Windows):
@@ -15,7 +38,7 @@
Fungify uses this approach to automatically update MyPicsDB via HTTP API
with a cron job.
wget --directory-prefix=tmp --http-user=<xbmc username> --http-passwd=<xbmc
password>
"http://Servername:Portnumber/xbmcCmds/xbmcHttp?command=ExecBuiltIn¶meter=XBMC.RunScript("<full
path to plugin>\plugin.image.mypicsdb\scanpath.py",--database)
-3) For skinners
+4) For skinners
==================================================================================
Done by MikeBZH44
diff --git a/plugin.image.mypicsdb/addon.xml b/plugin.image.mypicsdb/addon.xml
index becfe13..c01b9de 100644
--- a/plugin.image.mypicsdb/addon.xml
+++ b/plugin.image.mypicsdb/addon.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon
- id="plugin.image.mypicsdb" version="1.0.0" name="My Pictures Database"
provider-name="Alexsolex, Xycl, MikeBZH44">
+ id="plugin.image.mypicsdb" version="1.1.0" name="My Pictures Database"
provider-name="Alexsolex, Xycl, MikeBZH44">
<requires>
<import addon="xbmc.python" version="2.0"/>
<import addon="script.module.dialogaddonscan" version="1.1.0"/>
@@ -12,6 +12,7 @@
</extension>
<extension point="xbmc.addon.metadata">
<platform>all</platform>
+ <language></language>
<summary lang="en">Advanced Pictures manager</summary>
<summary lang="fr">Gestion avancée de votre photothèque</summary>
<summary lang="de">Datenbank gestützter Bildermanager</summary>
diff --git a/plugin.image.mypicsdb/changelog.txt
b/plugin.image.mypicsdb/changelog.txt
index cbd183b..a4b5fb3 100644
--- a/plugin.image.mypicsdb/changelog.txt
+++ b/plugin.image.mypicsdb/changelog.txt
@@ -1,5 +1,18 @@
+2012/09/10 --> v 1.1.0
+Update: Filter wizard now has a "not" function.
+ Green checkbox -> picture must contain the tag
+ Red checkbox -> picture must NOT contain the tag
+
+2012/09/08 --> v 1.0.2
+Update: Resolution and EXIF:Datetime infolabels set for "Pic Thumbs" view
+Fix: Error "no such column: files.GPS GPSLatitudeRef" now fixed
+Fix: English translation
+
+2012/08/07 --> v 1.0.1
+Update: New dutch translation from mhdebokx
+
2012/08/03 --> v 1.0.0
-Update: New french translation
+Update: New french translation from mikebzh44
2012/07/30 --> v 0.9.2
Update: Sha not calculated for videos
diff --git a/plugin.image.mypicsdb/default.py b/plugin.image.mypicsdb/default.py
index 60fb3ba..90c94dd 100644
--- a/plugin.image.mypicsdb/default.py
+++ b/plugin.image.mypicsdb/default.py
@@ -207,8 +207,15 @@ class Main:
if coords: suffix = suffix + "[COLOR=C0C0C0C0][G][/COLOR]"
- infolabels = { "picturepath":picname+" "+suffix,"title": "title of
the pic", "date": date }
+ (exiftime,) = MPDB.Request( """select "EXIF DateTimeOriginal" from
files where strPath='%s' and strFilename='%s'"""%(picpath,picname))
+ resolution = MPDB.Request( """select "EXIF ExifImageWidth", "EXIF
ExifImageLength" from files where strPath='%s' and
strFilename='%s'"""%(picpath,picname))
+ if exiftime[0] != None and resolution[0][0] != None and
resolution[0][1] != None:
+ infolabels = { "picturepath":picname+" "+suffix, "date": date,
"exif:resolution": str(resolution[0][0]) + ',' + str(resolution[0][1]),
"exif:exiftime": exiftime[0] }
+ else:
+ infolabels = { "picturepath":picname+" "+suffix, "date": date
}
+
+
if rating:
suffix = suffix +
"[COLOR=C0FFFF00]"+("*"*int(rating))+"[/COLOR][COLOR=C0C0C0C0]"+("*"*(5-int(rating)))+"[/COLOR]"
liz.setInfo( type="pictures", infoLabels=infolabels )
@@ -227,7 +234,13 @@ class Main:
if fanart:
liz.setProperty( "Fanart_Image", fanart )
-
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=join(picpath,picname),listitem=liz,isFolder=False)
+ # revert smb:// to \\ replacement
+ fullfilepath = join(picpath,picname)
+
+ fullfilepath=fullfilepath.replace("\\\\", "smb://")
+ fullfilepath=fullfilepath.replace("\\", "/")
+
+
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=fullfilepath,listitem=liz,isFolder=False)
def show_home(self):
## # last month
@@ -452,22 +465,36 @@ class Main:
del ui
def show_wizard(self):
- global GlobalFilter, GlobalMatchAll
+ global GlobalFilterTrue, GlobalFilterFalse, GlobalMatchAll
picfanart = join(PIC_PATH,"fanart-keyword.png")
ui = FilterWizard.FilterWizard( "FilterWizard.xml" ,
Addon.getAddonInfo('path'), "Default", FilterWizardDelegate)
ui.doModal()
del ui
-
+
+ newtagtrue = ""
+ newtagfalse = ""
matchall = (1 if GlobalMatchAll else 0)
- if len(GlobalFilter) > 0:
- newtag = ""
- for tag in GlobalFilter:
- if len(newtag)==0:
- newtag = tag
+
+ if len(GlobalFilterTrue) > 0:
+
+ for tag in GlobalFilterTrue:
+ if len(newtagtrue)==0:
+ newtagtrue = tag
else:
- newtag += "|||" + tag
- newtag = decoder.smart_unicode(newtag)
-
xbmc.executebuiltin("XBMC.Container.Update(%s?action='showpics'&viewmode='view'&method='wizard'&matchall='%s'&kw='%s')"
% ( sys.argv[0], matchall, quote_plus(newtag.encode('utf-8'))))
+ newtagtrue += "|||" + tag
+ newtagtrue = decoder.smart_unicode(newtagtrue)
+
+ if len(GlobalFilterFalse) > 0:
+
+ for tag in GlobalFilterFalse:
+ if len(newtagfalse)==0:
+ newtagfalse = tag
+ else:
+ newtagfalse += "|||" + tag
+ newtagfalse = decoder.smart_unicode(newtagfalse)
+
+ if len(GlobalFilterTrue) > 0 or len(GlobalFilterFalse) > 0:
+
xbmc.executebuiltin("XBMC.Container.Update(%s?action='showpics'&viewmode='view'&method='wizard'&matchall='%s'&kw='%s'&nkw='%s')"
% ( sys.argv[0], matchall, quote_plus(newtagtrue.encode('utf-8')),
quote_plus(newtagfalse.encode('utf-8'))))
def show_tagtypes(self):
@@ -803,16 +830,16 @@ class Main:
refresh=True
- print "Argument " + self.args.do
+ #print "Argument " + self.args.do
if self.args.do=="addroot":#add a root to scan
dialog = xbmcgui.Dialog()
- newroot = dialog.browse(0, __language__(30201), 'pictures')
+ newroot = dialog.browse(0, __language__(30201) , 'pictures')
if not newroot:
return
if not RunningOS.startswith("darwin") and
newroot.startswith("smb:"):
- newroot=newroot.replace("smb:","")
+ newroot=newroot.replace("smb://","\\\\")
newroot=newroot.replace("/","\\")
if str(self.args.exclude)=="1":
@@ -829,11 +856,12 @@ class Main:
xbmc.executebuiltin(
"Notification(%s,%s,%s,%s)"%(__language__(30000).encode("utf8"),__language__(30204).encode("utf8"),3000,join(home,"icon.png").encode("utf8")
) )
if not(xbmc.getInfoLabel(
"Window.Property(DialogAddonScan.IsAlive)" ) == "true"): #si dialogaddonscan
n'est pas en cours d'utilisation...
if
dialog.yesno(__language__(30000),__language__(30206)):#do a scan now ?
- xbmc.executebuiltin( "RunScript(%s,%s--rootpath=%s)
"%( join( home, "scanpath.py").encode('utf-8'),
-
recursive and "-r, " or "",
-
decoder.smart_unicode(newroot).encode('utf-8')
-
)
- )
+ xbmc.executebuiltin( "RunScript(%s,%s--rootpath=%s)"%(
join( home, "scanpath.py"),
+
recursive and "-r, " or "",
+
quote_plus(newroot.encode('utf-8'))
+ )
+ )
+
xbmc.executebuiltin(
"Container.Refresh(\"%s?action='rootfolders'&do='showroots'&exclude='1'&viewmode='view'\",)"%(sys.argv[0],))
else:
@@ -859,8 +887,8 @@ class Main:
path,recursive,update,exclude =
MPDB.getRoot(unquote_plus(self.args.rootpath))
xbmc.executebuiltin( "RunScript(%s,%s--rootpath=%s)"%(
join( home, "scanpath.py"),
recursive and "-r, " or "",
-
quote_plus(path.encode('utf-8'))
- )
+
quote_plus(path.encode('utf-8'))
+ )
)
else:#clic sur un chemin à exclure...
pass
@@ -1277,7 +1305,7 @@ class Main:
# we are showing pictures for a TAG selection
elif self.args.method == "wizard":
- filelist =
MPDB.search_filter_tags(unquote_plus(self.args.kw).decode("utf8"),
self.args.matchall)
+ filelist =
MPDB.search_filter_tags(unquote_plus(self.args.kw).decode("utf8"),
unquote_plus(self.args.nkw).decode("utf8"), self.args.matchall)
# we are showing pictures for a TAG selection
elif self.args.method == "tag":
@@ -1574,12 +1602,14 @@ class Main:
xbmcplugin.endOfDirectory(int(sys.argv[1]))
-GlobalFilter = []
+GlobalFilterTrue = []
+GlobalFilterFalse = []
GlobalMatchAll = False
Handle = 0
-def FilterWizardDelegate(Array, MatchAll = False):
- global GlobalFilter, GlobalMatchAll, Handle
- GlobalFilter = Array
+def FilterWizardDelegate(ArrayTrue, ArrayFalse, MatchAll = False):
+ global GlobalFilterTrue, GlobalFilterFalse, GlobalMatchAll, Handle
+ GlobalFilterTrue = ArrayTrue
+ GlobalFilterFalse = ArrayFalse
GlobalMatchAll = MatchAll
Handle = int(sys.argv[ 1 ] )
diff --git a/plugin.image.mypicsdb/resources/language/Danish/strings.xml
b/plugin.image.mypicsdb/resources/language/Danish/strings.xml
index fc1e425..dd9d2dd 100644
--- a/plugin.image.mypicsdb/resources/language/Danish/strings.xml
+++ b/plugin.image.mypicsdb/resources/language/Danish/strings.xml
@@ -182,7 +182,7 @@
<string id="30601">Tags / nøgleord</string>
<string id="30602">Indhold</string>
- <string id="30610">Markér tags / nøgleord</string>
+ <string id="30610">Markér tags / nøgleord (red checkbox means
"not")</string>
<string id="30611">1 tag markeret</string>
<string id="30612">%s tags markeret</string>
<string id="30613">OK</string>
diff --git a/plugin.image.mypicsdb/resources/language/Dutch/strings.xml
b/plugin.image.mypicsdb/resources/language/Dutch/strings.xml
index 46cfae4..66b7f50 100644
--- a/plugin.image.mypicsdb/resources/language/Dutch/strings.xml
+++ b/plugin.image.mypicsdb/resources/language/Dutch/strings.xml
@@ -2,31 +2,31 @@
<strings>
<string id="30000">MyPicture Database</string>
<string id="30001">Database</string>
-
+
<!-- Date formats : use the date formatting you found in this :
http://docs.python.org/library/time.html#time.strftime -->
- <string id="30002">%A %d %B %Y</string> <!-- date format -->
- <string id="30003">%B %Y</string> <!-- month format -->
- <string id="30004">%Y</string> <!-- year format -->
- <string id="30005">Ma.|Di.|Wo.|Do.|Vr.|Za.|Zo.</string>
- <string
id="30006">Jan.|Feb.|Mrt.|Apr.|Mei|Jun.|Jul.|Aug.|Sep.|Okt.|Nov.|Dec.</string>
- <string
id="30007">Maandag|Dinsdag|Woensdag|Donderdag[Vrijdag|Zaterdag|Zondag</string>
- <string
id="30008">Januari|Februari|Maart|April|Mei|Juni|Juli|Augustus|September|Oktober|November|December</string>
+ <string id="30002">%A %d %B %Y</string> <!-- date format -->
+ <string id="30003">%B %Y</string> <!-- month format -->
+ <string id="30004">%Y</string> <!-- year format -->
+ <string id="30005">ma.|di.|wo.|do.|vr.|za.|zo.</string>
+ <string
id="30006">jan.|feb.|mrt.|apr.|mei|jun.|jul.|aug.|sep.|okt.|nov.|dec.</string>
+ <string
id="30007">maandag|dinsdag|woensdag|donderdag|vrijdag|zaterdag|zondag</string>
+ <string
id="30008">januari|februari|maart|april|mei|juni|juli|augustus|september|oktober|november|december</string>
<string id="30009"></string>
<string id="30020">Afbeeldingen locatie</string>
<string id="30021">Verwijderen ontbrekende afbeeldingen</string>
<string id="30022">Recursieve scan ( incl. sub-folders )</string>
- <string id="30023">Te scannen locatie</string>
- <string id="30024">Uitvoeren scan bij opstarten Addon</string>
- <string id="30025">Initialiseer database bij opstarten Addon</string>
+ <string id="30023">Bestandstypen afbeeldingen</string>
+ <string id="30024">Uitvoeren scan bij opstarten add-on</string>
+ <string id="30025">Initialiseer database bij opstarten add-on</string>
<string id="30026">Gebruik afbeeldingen als fanart</string><!-- setting
-->
- <string id="30027">Settings for the dialog scan popup</string>
- <string id="30028">Videos extensions</string>
- <string id="30029">Use the videos</string>
+ <string id="30027">Instellingen popup scan dialoog</string>
+ <string id="30028">Bestandstypen videos</string>
+ <string id="30029">Gebruik videos</string>
<string id="30030">Algemeen</string>
<string id="30031">Bestanden</string>
- <string id="30032">Age of recent files (dagen)</string>
- <string id="30033">Menu Items</string>
+ <string id="30032">Ouderdom recente afbeeldingen (dagen)</string>
+ <string id="30033">Menu items</string>
<string id="30034">Geef alle afbeelingen weer</string>
<string id="30035">Aantal afbeeldingen per pagina</string>
@@ -38,58 +38,58 @@
<string id="30045">4 sterren</string>
<string id="30046">5 sterren</string>
- <string id="30050">Afbeeldingen</string>
+ <string id="30050">afbeeldingen</string>
<string id="30051">Videos</string>
- <string id="30052">Tags</string>
+ <string id="30052">tags</string>
<string id="30060">Locatie op schijf</string>
<string id="30061">Archiveer afbeeldingen</string>
<string id="30062">Exporteer afbeeldingen naar</string>
<string id="30063">Voeg bestand toe aan archief</string>
- <string id="30064">Archief '%s' bestaat al</string> <!-- %s will be
replaced by the name of the archive -->
+ <string id="30064">Archief '%s' bestaat al</string>
<string id="30065">Overschrijven ?</string>
<string id="30066">Archive canceled.</string>
<string id="30067">Afbeelding toevoegen aan archive</string>
<string id="30068">Het archiveren is afgebroken</string>
- <string id="30069">%s errors while archiving %s files</string> <!-- %s
errors while zipping %s files -->
- <string id="30070">%s afbeeldingen succesvol gearchiveerd</string>
<!-- %s files successfully Zipped !! -->
+ <string id="30069">%s errors while archiving %s files</string>
+ <string id="30070">%s afbeeldingen succesvol gearchiveerd</string>
<string id="30071">Localization of the picture on disk</string>
<string id="30090">Afbeeldingen zonder plaats</string>
<string id="30091">Afbeeldingen zonder land</string>
- <string id="30092">Overige afbeeldingen in '%s'</string> <!-- other
pictures in country (%s replaced by a given country) -->
- <string id="30093">Weergeven op locatie</string>
- <string id="30094">Weergeven op categorie</string>
- <string id="30095">Weergeven op aanvullende categorie</string>
+ <string id="30092">Overige afbeeldingen in '%s'</string>
+ <string id="30093">Weergeven locatie</string>
+ <string id="30094">Weergeven categorie</string>
+ <string id="30095">Weergeven subcategorie</string>
<string id="30096">Afbeeldingen zonder categorie</string>
- <string id="30097">Weergeven per categorie</string>
+ <string id="30097">Weergeven categorie</string>
<string id="30098">Zoeken</string>
- <string id="30099">Invoeren bestandsmappen</string>
- <string id="30100">Volledige periode %s (%s pics)</string>
- <string id="30101">Weergeven op datum</string>
- <string id="30102">Weergeven op mappen</string>
- <string id="30103">Weergeven op trefwoorden</string>
+ <string id="30099">Invoeren directories</string>
+ <string id="30100">Volledige periode %s (%s afbeeldingen)</string>
+ <string id="30101">Weergeven datum</string>
+ <string id="30102">Weergeven directories</string>
+ <string id="30103">Weergeven trefwoorden</string>
<string id="30104">Geen trefwoorden</string>
<string id="30105">Perioden</string>
- <string id="30106">Voeg een periode toe</string>
+ <string id="30106">Voeg periode toe</string>
<string id="30107">Kies begindatum</string>
<string id="30108">Kies einddatum</string>
<string id="30109">Afbeeldingen van %s tot %s</string>
- <string id="30110">Geef een naam aan deze periode :</string>
- <string id="30111">Verwijder deze periode</string>
- <string id="30112">Hernoem deze periode</string>
+ <string id="30110">Geef periode een naam:</string>
+ <string id="30111">Verwijder periode</string>
+ <string id="30112">Hernoem periode</string>
<string id="30113">van %s tot %s</string>
<string id="30114">Geef datum in</string>
<string id="30115">Zoekwoord</string>
- <string id="30116">%s results for '%s' in '%s'</string> <!-- %s
replaced respectively by : number of results, searched term, field where found
-->
- <string id="30117">Begindatum van de periode</string>
- <string id="30118">Einddatum van de periode</string>
- <string id="30119">The search for '%s' did not match in the whole
database</string> <!-- %s replaced by searched term-->
- <string id="30120">Weergeven personen</string>
- <string id="30121">Afbeeldingen zonder personen</string>
- <string id="30122">Weergeven op tags</string>
+ <string id="30116">%s results for '%s' in '%s'</string>
+ <string id="30117">Begindatum periode</string>
+ <string id="30118">Einddatum periode</string>
+ <string id="30119">Zoekopdracht '%s' niet gevonden</string>
+ <string id="30120">Weergeven personen</string>
+ <string id="30121">Afbeeldingen zonder personen</string>
+ <string id="30122">Weergeven tags</string>
- <string id="30130">De %s laatste afbeeldingen</string>
+ <string id="30130">Laatste %s afbeeldingen</string>
<string id="30131">Recente afbeeldingen (aantal afbeeldingen)</string>
<string id="30132"></string>
<string id="30133"></string>
@@ -104,47 +104,47 @@
<string id="30152">Voeg aan collectie toe</string>
<string id="30153">Geef een nieuwe naam</string>
<string id="30154">Afbeelding toegevoegd</string>
- <string id="30155">Geef naam voor nieuwe collectie</string>
+ <string id="30155">Naam nieuwe collectie</string>
<string id="30156">Kies een collectie</string>
<string id="30157">Nieuwe collectie</string>
- <string id="30158">Verwijder deze collectie</string>
- <string id="30159">Hernoem deze collectie</string>
- <string id="30160">Maak een nieuwe collectie aan</string>
- <string id="30161">%s afbeeldingen toegevoegd</string> <!-- %s
replaced by the number of pictures added -->
+ <string id="30158">Verwijder collectie</string>
+ <string id="30159">Hernoem collectie</string>
+ <string id="30160">Aanmaken nieuwe collectie</string>
+ <string id="30161">%s afbeeldingen toegevoegd</string>
<string id="30180">Export-pad</string>
<string id="30181">Map aanmaken bij export ?</string>
<string id="30182">Geef de mapnaam</string>
<string id="30183">Export afgebroken !</string>
<string id="30184">Aan het exporteren...</string>
- <string id="30185">Exporteer '%s' naar :</string> <!-- %s
replaced by the filename that is beeing copied -->
- <string id="30186">Bestand '%s' bestaat al</string> <!-- %s replaced
by the filename that is beeing copied -->
+ <string id="30185">Exporteer '%s' naar :</string>
+ <string id="30186">Bestand '%s' bestaat al</string>
<string id="30187">Overschrijven ?</string>
<string id="30188">Klaar met exporteren</string>
- <string id="30189">%s afbeeldingen gekopieerd naar %s</string> <!--
%s[number of files] copied to %s[distination folder]-->
+ <string id="30189">%s afbeeldingen gekopieerd naar %s</string>
<string id="30190">Geexporteerde afbeeldingen</string>
- <string id="30201">Folder to scan</string>
- <string id="30202">Browse this folder recursively</string>
- <string id="30203">Delete the database entries if picture does not exists
anymore</string>
- <string id="30204">Path added !</string>
- <string id="30205">Path deleted !</string>
- <string id="30206">Do a scan now</string>
- <string id="30207">Delete this path from database</string>
- <string id="30208">[B]Add[/B] a path to database</string>
- <string id="30209">Uploads from last %s days</string>
- <string id="30210">Remove this path from excluded</string>
- <string id="30211">Add a folder to [B]exclude[/B]</string>
- <string id="30212">Exclude this folder from database</string>
- <string id="30213">Scan all paths</string>
- <string id="30214">Yes = scan all pictures.</string>
- <string id="30215">No = scan only modified/new pictures.</string>
- <string id="30216"></string> <!-- placeholder for third line of above
questions -->
+ <string id="30201">Directory scannen</string>
+ <string id="30202">Directory recursief scannen</string>
+ <string id="30203">Verwijderen database entries als afbeelding niet
meer bestaat</string>
+ <string id="30204">Directory toegevoegd</string>
+ <string id="30205">Directory verwijderd</string>
+ <string id="30206">Start scannen</string>
+ <string id="30207">Verwijderen directory</string>
+ <string id="30208">[B]Toevoegen[/B] directory</string>
+ <string id="30209">Toegevoegd laatste %s dagen</string>
+ <string id="30210">Verwijderen directory van uitsluiting</string>
+ <string id="30211">Toevoegen directory om [B]uit te sluiten[/B]</string>
+ <string id="30212">Directory uitsluiten</string>
+ <string id="30213">Alle directories scannen</string>
+ <string id="30214">Ja = alle afbeeldingen scannen</string>
+ <string id="30215">Nee = alleen gewijzigde/nieuwe afbeelinegn
scannen</string>
+ <string id="30216"></string> <!-- placeholder for third line of above
questions -->
<string id="30220">Geolocatie</string>
- <string id="30221">Fetching the map... (%0.2f%%)</string> <!-- %0.2f%%
will be replaced by the percent of download for a map -->
- <string id="30222">Zoom=%s</string> <!-- %s will be replaced by
the zoom level in a map -->
- <string id="30223">Use up / down arrows to zoom in / out</string>
+ <string id="30221">Opvragen kaart... (%0.2f%%)</string>
+ <string id="30222">Zoom=%s</string>
+ <string id="30223">Gebruik up/down toetsen om te zoomen</string>
<string id="30224"></string>
<string id="30225"></string>
<string id="30226"></string>
@@ -159,7 +159,7 @@
<string id="30245">Herscannen</string>
<string id="30246">Aan het verwijderen</string>
<string id="30247">Momentje...</string>
- <string id="30248">%s scanned / %s added / %s deleted / %s
modified</string> <!-- %s respectively changed by number : scanned, added,
deleted, modified -->
+ <string id="30248">%s gescanned / %s toegevoegd / %s verwijderd / %s
gewijzigd</string>
<string id="30249"></string>
<string id="30300">Bestandsnaam</string>
@@ -176,21 +176,21 @@
<string id="30311"></string>
<string id="30312"></string>
<string id="30313"></string>
- <string id="30314"></string>
-
- <string id="30600">Filter Wizard</string>
- <string id="30601">Tags</string>
- <string id="30602">Contents</string>
-
- <string id="30610">Please select tags</string>
- <string id="30611">1 tag checked</string>
- <string id="30612">%s tags checked</string>
- <string id="30613">OK</string>
- <string id="30614">Cancel</string>
- <string id="30615">Match all tags</string>
-
- <string id="30620">Translate your tags</string>
- <string id="30621">Close Editor</string>
- <string id="30622">Leave translation empty to hide tag type in
MyPicsDB</string>
- <string id="30623">Translation for %s</string>
+ <string id="30314"></string>
+
+ <string id="30600">Filter wizard</string>
+ <string id="30601">Tags</string>
+ <string id="30602">Waarde</string>
+
+ <string id="30610">Selecteer een tags (red checkbox means
"not")</string>
+ <string id="30611">1 tag ingevoerd</string>
+ <string id="30612">%s tags ingevoerd</string>
+ <string id="30613">OK</string>
+ <string id="30614">Cancel</string>
+ <string id="30615">Match alle tags</string>
+
+ <string id="30620">Synoniemen voor tags</string>
+ <string id="30621">Sluiten editor</string>
+ <string id="30622">Laat synoniem leeg om te verbergen</string>
+ <string id="30623">Synoniem %s</string>
</strings>
\ No newline at end of file
diff --git a/plugin.image.mypicsdb/resources/language/English/strings.xml
b/plugin.image.mypicsdb/resources/language/English/strings.xml
index 25e6b20..94a9cc7 100644
--- a/plugin.image.mypicsdb/resources/language/English/strings.xml
+++ b/plugin.image.mypicsdb/resources/language/English/strings.xml
@@ -16,12 +16,12 @@
<string id="30020">Picture folder</string>
<string id="30021">Remove from database missing pictures</string>
<string id="30022">Recursive scan ( all sub-folders will be scanned for
pictures )</string>
- <string id="30023">Folder to scan</string>
+ <string id="30023">Picture extensions</string>
<string id="30024">Perform scan at addon startup</string>
<string id="30025">Initialize the database at next addon startup</string>
<string id="30026">Use the picture as fanart for pictures</string><!--
setting -->
<string id="30027">Settings for the dialog scan popup</string>
- <string id="30028">Videos extensions</string>
+ <string id="30028">Video extensions</string>
<string id="30029">Use the videos</string>
<string id="30030">General</string>
<string id="30031">Files</string>
@@ -64,7 +64,7 @@
<string id="30096">Pictures without categories</string>
<string id="30097">Browse by Category</string>
<string id="30098">Global search</string>
- <string id="30099">Paths of pictures folders</string>
+ <string id="30099">Paths of picture folders</string>
<string id="30100">All images from %s (%s pics)</string>
<string id="30101">Browse by Date</string>
<string id="30102">Browse by Folders</string>
@@ -182,7 +182,7 @@
<string id="30601">Tags</string>
<string id="30602">Contents</string>
- <string id="30610">Please select tags</string>
+ <string id="30610">Please select tags (red checkbox means "not")</string>
<string id="30611">1 tag checked</string>
<string id="30612">%s tags checked</string>
<string id="30613">OK</string>
diff --git a/plugin.image.mypicsdb/resources/language/French/strings.xml
b/plugin.image.mypicsdb/resources/language/French/strings.xml
index cba94e5..b336295 100644
--- a/plugin.image.mypicsdb/resources/language/French/strings.xml
+++ b/plugin.image.mypicsdb/resources/language/French/strings.xml
@@ -182,7 +182,7 @@
<string id="30601">Etiquettes</string>
<string id="30602">Contenus</string>
- <string id="30610">Choisissez les étiquettes</string>
+ <string id="30610">Choisissez les étiquettes (red checkbox means
"not")</string>
<string id="30611">1 étiquette sélectionnée</string>
<string id="30612">%s étiquettes sélectionnées</string>
<string id="30613">OK</string>
diff --git a/plugin.image.mypicsdb/resources/language/German/strings.xml
b/plugin.image.mypicsdb/resources/language/German/strings.xml
index 1490f33..003c5a9 100644
--- a/plugin.image.mypicsdb/resources/language/German/strings.xml
+++ b/plugin.image.mypicsdb/resources/language/German/strings.xml
@@ -182,7 +182,7 @@
<string id="30601">Tags</string>
<string id="30602">Inhalt</string>
- <string id="30610">Bitte Tags auswählen, nach denen gefiltert
wird</string>
+ <string id="30610">Bitte Tags auswählen (rote Checkbox bedeutet
"nicht")</string>
<string id="30611">1 Tag ausgewählt</string>
<string id="30612">%s Tags ausgewählt</string>
<string id="30613">Okay</string>
diff --git a/plugin.image.mypicsdb/resources/lib/FilterWizard.py
b/plugin.image.mypicsdb/resources/lib/FilterWizard.py
index 67c3297..c784b98 100644
--- a/plugin.image.mypicsdb/resources/lib/FilterWizard.py
+++ b/plugin.image.mypicsdb/resources/lib/FilterWizard.py
@@ -113,14 +113,16 @@ class FilterWizard( xbmcgui.WindowXMLDialog ):
AlreadyChecked = item.getProperty("checked")
- if checked == 0:
+ if checked == -1:
+ item.setProperty( "checked", "uncheckbutton.png")
+ elif checked == 0:
item.setProperty( "checked", "transparent.png")
if AlreadyChecked != "transparent.png":
self.checkedTags -= 1
else:
item.setProperty( "checked", "checkbutton.png")
- if AlreadyChecked != "checkbutton.png":
+ if AlreadyChecked == "transparent.png":
self.checkedTags += 1
self.getControl( TAGS_CONTENT_LIST ).setVisible(False)
@@ -130,17 +132,24 @@ class FilterWizard( xbmcgui.WindowXMLDialog ):
#try:
# Cancel
if ( action.getId() in CANCEL_DIALOG or self.getFocusId() ==
BUTTON_CANCEL and action.getId() in SELECT_ITEM ):
- array = []
- self.filter (array, False)
+ arraytrue = []
+ arrayfalse = []
+ self.filter (arraytrue,arrayfalse,False)
self.close()
# Okay
if ( self.getFocusId() == BUTTON_OK and action.getId() in
SELECT_ITEM ):
- returnArray = []
+ arraytrue = []
+ arrayfalse = []
+
for key, value in self.CheckTagNames.iteritems():
if value == 1:
- returnArray.append( key)
- self.filter (returnArray, self.bAnd )
+ arraytrue.append( key)
+
+ if value == -1:
+ arrayfalse.append( key)
+
+ self.filter (arraytrue, arrayfalse, self.bAnd )
self.close()
# Match all button
@@ -163,6 +172,9 @@ class FilterWizard( xbmcgui.WindowXMLDialog ):
key = decoder.smart_unicode(self.CurrentlySelectedTagType)
+ '||' + decoder.smart_unicode(item.getLabel2())
if checked == "checkbutton.png":
+ self.checkGUITagContent(item, -1)
+ self.CheckTagNames[ key ] = -1
+ elif checked == "uncheckbutton.png":
self.checkGUITagContent(item, 0)
self.CheckTagNames[ key ] = 0
else :
@@ -178,10 +190,7 @@ class FilterWizard( xbmcgui.WindowXMLDialog ):
self.getControl( CHECKED_LABEL ).setVisible(False)
self.getControl( CHECKED_LABEL ).setVisible(True)
- #else:
- # print "ActionID = " + str( action.getId() )
- #except:
- # pass
+
diff --git a/plugin.image.mypicsdb/resources/lib/MypicsDB.py
b/plugin.image.mypicsdb/resources/lib/MypicsDB.py
index 221a634..3c7723a 100644
--- a/plugin.image.mypicsdb/resources/lib/MypicsDB.py
+++ b/plugin.image.mypicsdb/resources/lib/MypicsDB.py
@@ -1366,52 +1366,94 @@ def Request(SQLrequest):
conn.commit()
retour = [row for row in cn]
except Exception,msg:
- log( "The request failed :", LOGDEBUG )
- log( "%s - %s"%(Exception,msg), LOGDEBUG )
- log( "---", LOGDEBUG )
+ if msg.args[0].startswith("no such column: files.GPS GPSLatitudeRef"):
+ pass
+ else:
+ log( "The request failed :", LOGDEBUG )
+ log( "%s - %s"%(Exception,msg), LOGDEBUG )
+ log( "---", LOGDEBUG )
retour= []
cn.close()
return retour
-def search_filter_tags(FilterInlineArray, MatchAll):
+def search_filter_tags(FilterInlineArrayTrue, FilterInlineArrayFalse,
MatchAll):
+
+ if len(FilterInlineArrayTrue) == 0 and len(FilterInlineArrayFalse) == 0:
+ return
+
+ FilterInlineArrayTrue = unquote_plus(FilterInlineArrayTrue)
+ FilterArrayTrue = FilterInlineArrayTrue.split("|||")
- FilterInlineArray = unquote_plus(FilterInlineArray) #.decode("utf8")
- FilterArray = FilterInlineArray.split("|||")
+ FilterInlineArrayFalse = unquote_plus(FilterInlineArrayFalse)
+ FilterArrayFalse = FilterInlineArrayFalse.split("|||")
+
OuterSelect = "SELECT distinct strPath,strFilename FROM FILES WHERE 1=1 "
# These selects are joined with IN clause
InnerSelect = "SELECT tif.idfile FROM TagContents tc, TagsInFiles tif ,
TagTypes tt WHERE tif.idTagContent = tc.idTagContent AND tc.idTagType =
tt.idTagType "
# Build the conditions
if MatchAll == "1":
- for Filter in FilterArray:
+ if len(FilterInlineArrayTrue) > 0:
+ for Filter in FilterArrayTrue:
- KeyValue = Filter.split("||")
- Key = KeyValue[0]
- Value = KeyValue[1]
-
- Condition = "AND tt.TagTranslation = '"+Key+"' AND tc.TagContent =
'"+Value+"' "
- OuterSelect += " AND idFile in ( " + InnerSelect + Condition + " )
"
+ KeyValue = Filter.split("||")
+ Key = KeyValue[0]
+ Value = KeyValue[1]
+
+ Condition = "AND tt.TagTranslation = '"+Key+"' AND
tc.TagContent = '"+Value+"' "
+ OuterSelect += " AND idFile in ( " + InnerSelect + Condition +
" ) "
+
+ if len(FilterInlineArrayFalse) > 0:
+ for Filter in FilterArrayFalse:
+
+ KeyValue = Filter.split("||")
+ Key = KeyValue[0]
+ Value = KeyValue[1]
+
+ Condition = "AND tt.TagTranslation = '"+Key+"' AND
tc.TagContent = '"+Value+"' "
+ OuterSelect += " AND idFile not in ( " + InnerSelect +
Condition + " ) "
else:
OldKey = ""
OldValue = ""
- for Filter in FilterArray:
-
- KeyValue = Filter.split("||")
- Key = KeyValue[0]
- Value = KeyValue[1]
-
- if Key != OldKey:
- if len(OldKey) > 0:
- Condition = "AND tt.TagTranslation = '"+OldKey+"' AND
tc.TagContent in( "+OldValue+" ) "
- OuterSelect += " AND idFile in ( " + InnerSelect +
Condition + " ) "
- OldKey = Key
- OldValue = "'" + Value + "'"
- else:
- OldValue += ", '" + Value + "'"
+
+ if len(FilterInlineArrayTrue) > 0:
+ for Filter in FilterArrayTrue:
+
+ KeyValue = Filter.split("||")
+ Key = KeyValue[0]
+ Value = KeyValue[1]
+
+ if Key != OldKey:
+ if len(OldKey) > 0:
+ Condition = "AND tt.TagTranslation = '"+OldKey+"' AND
tc.TagContent in( "+OldValue+" ) "
+ OuterSelect += " AND idFile in ( " + InnerSelect +
Condition + " ) "
+ OldKey = Key
+ OldValue = "'" + Value + "'"
+ else:
+ OldValue += ", '" + Value + "'"
+ Condition = "AND tt.TagTranslation = '"+OldKey+"' AND
tc.TagContent in( "+OldValue+" ) "
+ OuterSelect += " AND idFile in ( " + InnerSelect + Condition + " )
"
+
+
+ if len(FilterInlineArrayFalse) > 0:
+ for Filter in FilterArrayFalse:
+
+ KeyValue = Filter.split("||")
+ Key = KeyValue[0]
+ Value = KeyValue[1]
- Condition = "AND tt.TagTranslation = '"+OldKey+"' AND tc.TagContent
in( "+OldValue+" ) "
- OuterSelect += " AND idFile in ( " + InnerSelect + Condition + " ) "
-
+ if Key != OldKey:
+ if len(OldKey) > 0:
+ Condition = "AND tt.TagTranslation = '"+OldKey+"' AND
tc.TagContent in( "+OldValue+" ) "
+ OuterSelect += " AND idFile not in ( " + InnerSelect +
Condition + " ) "
+ OldKey = Key
+ OldValue = "'" + Value + "'"
+ else:
+ OldValue += ", '" + Value + "'"
+
+ Condition = "AND tt.TagTranslation = '"+OldKey+"' AND
tc.TagContent in( "+OldValue+" ) "
+ OuterSelect += " AND idFile in ( " + InnerSelect + Condition + " )
"
+
return [row for row in Request(OuterSelect)]
def search_tag(tag=None,tagtype='a',limit=-1,offset=-1):
-----------------------------------------------------------------------
Summary of changes:
plugin.image.mypicsdb/Readme.txt | 31 +++-
plugin.image.mypicsdb/addon.xml | 3 +-
plugin.image.mypicsdb/changelog.txt | 15 ++-
plugin.image.mypicsdb/default.py | 84 +++++++---
.../resources/language/Danish/strings.xml | 2 +-
.../resources/language/Dutch/strings.xml | 176 ++++++++++----------
.../resources/language/English/strings.xml | 8 +-
.../resources/language/French/strings.xml | 2 +-
.../resources/language/German/strings.xml | 2 +-
.../resources/lib/FilterWizard.py | 31 +++--
plugin.image.mypicsdb/resources/lib/MypicsDB.py | 102 ++++++++----
.../skins/Default/media/uncheckbutton.png | Bin 0 -> 4551 bytes
.../skin.aeon.nox.svn/media/uncheckbutton.png | Bin 0 -> 4551 bytes
.../skins/skin.aeonmq.2/media/uncheckbutton.png | Bin 0 -> 4551 bytes
.../skins/skin.glass.svn/media/uncheckbutton.png | Bin 0 -> 4551 bytes
.../skin.refocus.release/media/uncheckbutton.png | Bin 0 -> 4551 bytes
plugin.video.tmz/addon.xml | 3 +-
plugin.video.tmz/changelog.txt | 10 +
plugin.video.tmz/default.py | 48 ++++--
.../resources/language/English/strings.xml | 9 +-
plugin.video.tmz/resources/settings.xml | 3 +
.../.gitignore | 0
plugin.video.vimcasts/.travis.yml | 8 +
.../LICENSE.txt | 0
plugin.video.vimcasts/addon.py | 75 +++++++++
plugin.video.vimcasts/addon.xml | 15 ++
.../changelog.txt | 2 +
plugin.video.vimcasts/icon.png | Bin 0 -> 2918 bytes
.../resources/__init__.py | 0
.../resources/language/English/strings.xml | 2 +-
.../resources/lib}/__init__.py | 0
.../resources/tests}/__init__.py | 0
.../resources/tests/test_addon.py | 66 ++++++++
33 files changed, 505 insertions(+), 192 deletions(-)
create mode 100644
plugin.image.mypicsdb/resources/skins/Default/media/uncheckbutton.png
create mode 100644
plugin.image.mypicsdb/resources/skins/skin.aeon.nox.svn/media/uncheckbutton.png
create mode 100644
plugin.image.mypicsdb/resources/skins/skin.aeonmq.2/media/uncheckbutton.png
create mode 100644
plugin.image.mypicsdb/resources/skins/skin.glass.svn/media/uncheckbutton.png
create mode 100644
plugin.image.mypicsdb/resources/skins/skin.refocus.release/media/uncheckbutton.png
create mode 100644 plugin.video.tmz/resources/settings.xml
copy {plugin.video.documentary.net => plugin.video.vimcasts}/.gitignore (100%)
create mode 100644 plugin.video.vimcasts/.travis.yml
copy {plugin.audio.dradio => plugin.video.vimcasts}/LICENSE.txt (100%)
create mode 100755 plugin.video.vimcasts/addon.py
create mode 100644 plugin.video.vimcasts/addon.xml
copy {plugin.video.documentary.net => plugin.video.vimcasts}/changelog.txt
(69%)
create mode 100644 plugin.video.vimcasts/icon.png
copy {plugin.audio.radio_de => plugin.video.vimcasts}/resources/__init__.py
(100%)
copy {plugin.video.documentary.net =>
plugin.video.vimcasts}/resources/language/English/strings.xml (66%)
copy {plugin.audio.radio_de/resources =>
plugin.video.vimcasts/resources/lib}/__init__.py (100%)
copy {plugin.audio.radio_de/resources =>
plugin.video.vimcasts/resources/tests}/__init__.py (100%)
create mode 100644 plugin.video.vimcasts/resources/tests/test_addon.py
hooks/post-receive
--
Plugins
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons