PDA

View Full Version : ListItem displays plugin name as label, ignores setLabel


chuckles
2009-07-09, 08:20
I'm trying to create a list in my test plugin and I cant get listItem to display the desired label. It displays the name of the plugin as my label for all my items, even when I use static label text

My code is as below

li=xbmcgui.ListItem( label='Test')
li.setInfo( type="Video", infoLabels={ "Title": name } )
u=sys.argv[0]+"?mode=3&name="+urllib.quote_plus(name)+"&url="+urllib.quote_plus(URLS[x])
ok = xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=u, listitem=li, isFolder=False)

Instead of displaying "Test" for listItem label it displays the name of my plugin

Anybody got an idea why?

jmarshall
2009-07-09, 08:34
Which version of XBMC, as this was fixed a while back, but it keeps popping up (i.e. there's something you're doing differently than other plugins).

If it's a recent SVN build, then I'll need a trac ticket (there probably already is one - have a search and let me know if there is) with an example plugin attached.

Cheers,
Jonathan

chuckles
2009-07-12, 05:51
Which version of XBMC, as this was fixed a while back, but it keeps popping up (i.e. there's something you're doing differently than other plugins).

If it's a recent SVN build, then I'll need a trac ticket (there probably already is one - have a search and let me know if there is) with an example plugin attached.

Cheers,
Jonathan

Apologies for the late reply

I was using Windows Rev21496
I went back and tested on Babylon Beta1 and 9.04.1(repack2)

All have the same result

I couldn't find a trac ticket. I'll see if I can get the script down to its barebones and open a new ticket

chuckles
2009-07-12, 06:28
I have created a Ticket #6898. Here is the code here as well

#PLUGIN NAME: KidsTube
#VERSION: 0.01
#DATE: 5 July 2009
#AUTHOR: Chuckles


import xbmc, xbmcgui, xbmcplugin, urllib2, urllib, re, string

def showList(url,page):
thisurl=url
f=urllib2.urlopen(url)
a=f.read()
f.close()
p=re.compile('<li><a href="(.+?)"><img src="(.+?)" alt="video pic" border="0" class="IndexVideoDetails_Thumb" />')
o=re.compile('<span class="font4_14-1">(.+?)</span>')
match=p.findall(a)
NAMES=o.findall(a)
x=0
for rel_url, name in match:
li=xbmcgui.ListItem("Test")
#li=xbmcgui.ListItem(NAMES[x])
li.setInfo( type="Video", infoLabels={ "Title": NAMES[x] } )
u=sys.argv[0]+"?mode=3&name="+urllib.quote_plus(NAMES[x])+"&url="+urllib.quote_plus(rel_url)
ok = xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=u, listitem=li)
x=x+1

url=urllib.unquote_plus("http://www.kidstube.com/")
page=1

showList(url,page)

xbmcplugin.endOfDirectory(int(sys.argv[1]))

stacked
2009-07-12, 07:43
#PLUGIN NAME: KidsTube
#VERSION: 0.01
#DATE: 5 July 2009
#AUTHOR: Chuckles


import xbmc, xbmcgui, xbmcplugin, urllib2, urllib, re, string

def showList(url,page):
thisurl=url
f=urllib2.urlopen(url)
a=f.read()
f.close()
p=re.compile('<li><a href="(.+?)"><img src="(.+?)" alt="video pic" border="0" class="IndexVideoDetails_Thumb" />')
o=re.compile('<span class="font4_14-1">(.+?)</span>')
match=p.findall(a)
NAMES=o.findall(a)
x=0
for rel_url, name in match:
li=xbmcgui.ListItem("Test")
#li=xbmcgui.ListItem(NAMES[x])
li.setInfo( type="Video", infoLabels={ "Title": NAMES[x] } )
u=sys.argv[0]+"?mode=3&name="+urllib.quote_plus(NAMES[x])+"&url="+urllib.quote_plus(rel_url)
ok = xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=u, listitem=li)
x=x+1

url=urllib.unquote_plus("http://www.kidstube.com/")
page=1

showList(url,page)

xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_LABEL )
xbmcplugin.endOfDirectory(int(sys.argv[1]))

You need to add a sortmethod. I added to your code above...

jmarshall
2009-07-12, 08:22
So with the sort method added you don't get the problem?

Cheers,
Jonathan

stacked
2009-07-12, 08:53
So with the sort method added you don't get the problem?

Cheers,
Jonathan

I'm not sure if it works with all methods, but SORT_METHOD_LABEL seems to fix the problem.


edit...I also tried SORT_METHOD_DATE and that works too. So I guess any sort method would fix the problem.

jmarshall
2009-07-12, 09:14
Interesting. Will see if I can figure out why this is necessary.

chuckles
2009-07-12, 10:41
You need to add a sortmethod. I added to your code above...


I can confirm that this works. Thanks!!!

vdrfan
2009-07-12, 18:26
FYI, r21647 will return a proper listing if there's no sortmethod set.