/[projects]/misc/xbmc/plugin.video.todic/default.py
ViewVC logotype

Annotation of /misc/xbmc/plugin.video.todic/default.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1646 - (hide annotations) (download) (as text)
Sat Dec 3 12:01:56 2011 UTC (12 years, 6 months ago) by torben
File MIME type: text/x-python
File size: 4811 byte(s)
remove buildSubList - buildList now either builds a list of clips or a list of folders to be handled in next call to buildLIst
1 torben 1629 '''
2     Todic plugin for XBMC
3     Version 0.0.2
4     '''
5    
6     import sys
7     import cgi as urlparse
8    
9     import xbmc
10     import xbmcaddon
11     import xbmcgui
12     import xbmcplugin
13     import urllib
14     import urllib2, re
15    
16     __addon__ = xbmcaddon.Addon(id='plugin.video.todic')
17     __key__ = __addon__.getSetting('xbmckey').lower()
18     __backend__ = "http://todic.dk/xbmc.php?xbmckey=" + __key__
19    
20     def open_url(url):
21     req = urllib2.Request(url)
22     content = urllib2.urlopen(req)
23     data = content.read()
24     content.close()
25     return data
26    
27     def rootMenu():
28     link = open_url(__backend__)
29     m=re.compile('<title>(.+?)</title><url>(.+?)</url>').findall(link)
30 torben 1630 l = len(m)
31 torben 1629 for name,url in m:
32     listitem = xbmcgui.ListItem(label = name, iconImage = 'DefaultFolder.png', thumbnailImage = 'DefaultFolder.png')
33     u = sys.argv[0] + "?mode=1&name=" + urllib.quote_plus(name) + "&url=" + urllib.quote_plus(url)
34 torben 1630 ok = xbmcplugin.addDirectoryItem(handle = int(sys.argv[1]), url = u, listitem = listitem, isFolder = True, totalItems = l)
35 torben 1631
36 torben 1640 listitem = xbmcgui.ListItem(label = "Søg film ...", iconImage = 'DefaultFolder.png', thumbnailImage = 'DefaultFolder.png')
37 torben 1631 u = sys.argv[0] + "?mode=10&name=" + urllib.quote_plus(name)
38     ok = xbmcplugin.addDirectoryItem(handle = int(sys.argv[1]), url = u, listitem = listitem, isFolder = True, totalItems = l)
39    
40 torben 1629 xbmcplugin.endOfDirectory(int(sys.argv[1]))
41    
42    
43     def buildList(url,title):
44     print '[TODIC]:'+str(url)
45     link = open_url(url)
46     ty=re.compile('<meta type=\'(.+?)\'').findall(link)
47 torben 1646 print '[TODIC]'+str(ty[0])
48    
49     if ty[0] == 'clipList':
50     mode = '50'
51     folder = False
52     else:
53     mode = '1'
54     folder = True
55    
56 torben 1629 m=re.compile('<title>(.+?)</title><url>(.+?)</url><cover>(.+?)</cover>').findall(link)
57 torben 1630 l=len(m)
58 torben 1646 for name,url,thumb in m:
59 torben 1629 listitem = xbmcgui.ListItem(label = name, iconImage = 'DefaultFolder.png', thumbnailImage = thumb)
60     u = sys.argv[0] + "?mode=" + urllib.quote_plus(mode) + "&name=" + urllib.quote_plus(name) + "&url=" + urllib.quote_plus(url)
61 torben 1630 ok = xbmcplugin.addDirectoryItem(handle = int(sys.argv[1]), url = u, listitem = listitem, isFolder = folder, totalItems = l)
62 torben 1629 xbmcplugin.endOfDirectory(int(sys.argv[1]))
63    
64    
65    
66    
67     def play_video(url, name):
68     link = open_url(url)
69     match=re.compile('<url>(.+?)</url>').findall(link)
70     url = match[0]
71     print '[TODIC]:'+str(url)
72     image = xbmc.getInfoImage( 'ListItem.Thumb' )
73     listitem = xbmcgui.ListItem(label = name , iconImage = 'DefaultVideo.png', thumbnailImage = image)
74     # listitem = xbmcgui.ListItem(label = name , iconImage = 'DefaultVideo.png', thumbnailImage = 'DefaultVideo.png')
75     listitem.setInfo( type = "Video", infoLabels={ "Title": name } )
76     xbmc.Player(xbmc.PLAYER_CORE_AUTO).play(str(url), listitem)
77     xbmc.sleep(200)
78    
79 torben 1631 def search():
80     search = getUserInput("Todic Søgning")
81 torben 1629
82 torben 1634 if (search != None and search != ""):
83     url = __backend__ + "&action=search&search=" + urllib.quote_plus(search)
84 torben 1631
85 torben 1634 #print "[TODIC] Search start: " + search
86     #print "[TODIC] Search url: " + url
87 torben 1631
88 torben 1646 buildList(url, "søgning")
89 torben 1631
90    
91    
92    
93    
94     #=================================== Tool Box =======================================
95     # shows a more userfriendly notification
96     def showMessage(heading, message):
97     duration = 15*1000
98     xbmc.executebuiltin('XBMC.Notification("%s", "%s", %s)' % ( heading, message, duration) )
99    
100    
101     # raise a keyboard for user input
102     def getUserInput(title = "Input", default="", hidden=False):
103     result = None
104    
105     # Fix for when this functions is called with default=None
106     if not default:
107     default = ""
108    
109     keyboard = xbmc.Keyboard(default, title)
110     keyboard.setHiddenInput(hidden)
111     keyboard.doModal()
112    
113     if keyboard.isConfirmed():
114     result = keyboard.getText()
115    
116     return result
117    
118    
119 torben 1629 def get_params():
120     param=[]
121     paramstring=sys.argv[2]
122     if len(paramstring)>=2:
123     params=sys.argv[2]
124     cleanedparams=params.replace('?','')
125     if (params[len(params)-1]=='/'):
126     params=params[0:len(params)-2]
127     pairsofparams=cleanedparams.split('&')
128     param={}
129     for i in range(len(pairsofparams)):
130     splitparams={}
131     splitparams=pairsofparams[i].split('=')
132     if (len(splitparams))==2:
133     param[splitparams[0]]=splitparams[1]
134     return param
135    
136     params = get_params()
137     url = None
138     name = None
139     mode = None
140    
141     params = get_params()
142     url = None
143     name = None
144     mode = None
145    
146     try:
147     url = urllib.unquote_plus(params["url"])
148     except:
149     pass
150     try:
151     name = urllib.unquote_plus(params["name"])
152     except:
153     pass
154     try:
155     mode = int(params["mode"])
156     except:
157     pass
158    
159    
160     if mode == None:
161     #build main menu
162     rootMenu()
163    
164     elif mode == 1:
165     #build list of movie starting letters
166     buildList(url, name)
167    
168 torben 1631 elif mode == 10:
169     search()
170    
171    
172 torben 1629 elif mode == 50:
173     play_video(url, name)
174    
175    
176    
177 torben 1632 # xbmcplugin.endOfDirectory(int(sys.argv[1]))

  ViewVC Help
Powered by ViewVC 1.1.20