Hmm leider stecke ich wieder fest.... 
Ich wollte das ganze jetzt etwas aufräumen und zb für für die Videos nicht erst einen Ordner anlegen sondern direkt abspielen.
Ich habe mir den tip oben von Jin angeguckt und auch noch ein paar andere addons und wollte das ganze jetzt so lösen:
Ich scrape die Seite nach den Video-Seiten-Links und füge diese dann per addLink anstatt addDir hinzu.
Bei addLink füge ich mode hinzu und dieser verweist dann auf meine Function wo ich ich die Video-Seite nach entweder Blip oder Youtube Links durchforste und danach auflöse.
Leider funktionierts nicht
Mein Problem ist das addLink dann nicht die variable url nutz aus der function RESOLVELINK sondern die die ihm vorher zugeteilt wurde in der Function LISTVIDEOS, also die url für die videoseite und nicht den direkten videolink. Den kann er natürlich nicht abspielen.
Wie bekomme ich das jetzt hin das addLink dann die korrekte url nutz oder denke ich in die völlig falsche richtung?
Habe mir verschiedene addons angesehen wo das so zu funktionieren scheint aber ich steig da nicht so ganz durch.
Ich habe schon versucht globale variablen zu nutzen aber das haute auch nicht hin (wurden nicht durch RESOLVELINK verändert) und eine neue variable anlegen, zb videourl funktioniert auch nicht da addLink diese dann nicht kennt.
Hier der aktuelle python code:
Spoiler anzeigen
def RESOLVELINK(url):
req = urllib2.Request(url)
req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3')
response = urllib2.urlopen(req)
link=response.read()
response.close()
match1=re.compile('<iframe src="(.+?)?p=1" width="720" height="433" frameborder="0" allowfullscreen></iframe>').findall(link)
match2=re.compile('youtube.com/embed/(.+?)"').findall(link)
if match1:
bliplink = match1[0]
req = urllib2.Request(bliplink)
#req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3')
response = urllib2.urlopen(req)
link=response.read()
filename=re.compile('\n\t\tblip.+? : "(.+?)"').findall(link)
id=str(filename[2])
url = "http://blip.tv/file/get/"+id
listitem = xbmcgui.ListItem(path=url)
return xbmcplugin.setResolvedUrl(pluginhandle, True, listitem)
elif match2:
ytlink=match2[0]
if "?" in ytlink:
ytlink = ytlink[:ytlink.find("?")]
url = "plugin://plugin.video.youtube/?action=play_video&videoid="+ytlink
listitem = xbmcgui.ListItem(path=url)
return xbmcplugin.setResolvedUrl(pluginhandle, True, listitem)
-------------------------------------
def addLink(name,url,mode,iconimage):
ok=True
liz=xbmcgui.ListItem(cleanName(name), iconImage="DefaultVideo.png", thumbnailImage=iconimage)
liz.setInfo( type="Video", infoLabels={ "Title": name } )
liz.setProperty('IsPlayable', 'true')
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=url,listitem=liz)
return ok
Alles anzeigen
EDIT:
OK Fehler gefunden und läuft jetzt:
AddLink fehlte:
u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz)
Muss mich nochmal soweit einlesen das ich weis was genau da passiert aber es freut mich das es läuft 
Aber ich habe sonst habe ich noch mehr geschafft zu implementieren auf das bin ich als totaler noob ja etwas stolz:
List All Videos:
baseurl = url#[:-1]
req = urllib2.Request(url+'1')
req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3 Gecko/2008092417 Firefox/3.0.3')
response = urllib2.urlopen(req)
link=response.read()
response.close()
#match2=re.compile('</a></span>\n\t\n\t\t\n\t<span class="tie-date">(.+?)</span>').findall(link)
matchc=re.compile('class="pages">Page (.+?) of (.+?)</span>').findall(link)
curp=int(matchc[0][0])
lastp=int(matchc[0][1])
for i in range(1,lastp+1):
url=baseurl+str(i)
req = urllib2.Request(url)
req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3 Gecko/2008092417 Firefox/3.0.3')
response = urllib2.urlopen(req)
link=response.read()
response.close()
match1=re.compile('href="(.+?)" title="Permalink to (.+?)" rel="bookmark">\n\t\t\t\t<img width="300" height="160" src="(.+?)"').findall(link)
for url,name,thumbnail in match1:
addLink(name,url,4,thumbnail)
Alles anzeigen
Das ganze funktioniert einwandfrei aber leider dauert es natürlich ne ganze weile mehrere seiten zu durchforsten. Ist es möglich das noch irgendwie zu beschleunigen?
Ein weitere Frage wäre ob ich den for ** in ** Befehl auf mehrere variablen anwender kann.
Ich meine zb:
match1 holt sich url, name und thumbnail
match2 holt sich Datum
Kann man das dann irgendwie beides zusammen nutzen?
for url,name,thumbnail in match1 and date in match2:
addLink(.....)
funktionierte leider nicht 