/
default.py
68 lines (54 loc) · 1.75 KB
/
default.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import os
import sys
import xbmc
import xbmcgui
import xbmcplugin
import xbmcaddon
import urllib
import urlparse
import time
from resources.lib.ansa import Ansa
# plugin constants
__plugin__ = "plugin.video.ansa"
__author__ = "Nightflyer"
Addon = xbmcaddon.Addon(id=__plugin__)
# plugin handle
handle = int(sys.argv[1])
# utility functions
def parameters_string_to_dict(parameters):
''' Convert parameters encoded in a URL to a dict. '''
paramDict = dict(urlparse.parse_qsl(parameters[1:]))
return paramDict
def addDirectoryItem(parameters, li):
url = sys.argv[0] + '?' + urllib.urlencode(parameters)
return xbmcplugin.addDirectoryItem(handle=handle, url=url,
listitem=li, isFolder=True)
def addLinkItem(url, li):
return xbmcplugin.addDirectoryItem(handle=handle, url=url,
listitem=li, isFolder=False)
# UI builder functions
def show_root_folder():
ansa = Ansa()
items = ansa.getChannels()
for item in items:
liStyle=xbmcgui.ListItem(item["title"])
addDirectoryItem({"url": item["url"]}, liStyle)
xbmcplugin.endOfDirectory(handle=handle, succeeded=True)
def show_video_files(url):
ansa = Ansa()
items = ansa.getVideoByChannel(url)
for item in items:
title = item["title"] + " (" + time.strftime("%d/%m/%Y %H:%M", item["date"]) + ")"
liStyle=xbmcgui.ListItem(title, thumbnailImage=item["thumb"])
liStyle.setInfo(type="video",
infoLabels={"Title": title
})
addLinkItem(item["url"], liStyle)
xbmcplugin.endOfDirectory(handle=handle, succeeded=True)
# parameter values
params = parameters_string_to_dict(sys.argv[2])
url = str(params.get("url", ""))
if url == "":
show_root_folder()
else:
show_video_files(url)