View difference between Paste ID: xPZ70RGn and 1yyfqbmV
SHOW: | | - or go back to the newest paste.
1
--[[
2
  DISCLAIMER: SCRIPT IS PROVIDED AS IS USE AT YOUR OWN RISK!
3-
 
3+
4
  Save this script as "hockey.lua"
5
  Place this script in:
6
    - Windows (all users):   %ProgramFiles%\VideoLAN\VLC\lua\sd\
7
    - Windows (current user):   %APPDATA%\VLC\lua\sd\
8
    - Linux (all users):     /usr/share/vlc/lua/sd/
9
    - Linux (current user):  ~/.local/share/vlc/lua/sd/
10-
    - Mac OS X (all users):  VLC.app/Contents/MacOS/share/lua/sd/  
10+
    - Mac OS X (all users):  VLC.app/Contents/MacOS/share/lua/sd/
11
12
13-
 
13+
  If you have issues using this, try changing all `add_subnode` to `add_node`.
14
  Older versions of VLC use `add_node`, but recent updates have switched to `add_subnode`.
15
16
--]]
17-
 
17+
18
19
function descriptor()
20
    return { title="/r/hockey" }
21-
    for _, game in ipairs( games.children ) do              
21+
22-
        if(game.name == "game") then           
22+
23
function main()
24
    local quality = {400, 800, 1200, 1600, 2400, 3000, 4500}
25-
            local home_team = game.children_map['home_team'][1].children[1]
25+
26-
            local away_team = game.children_map['away_team'][1].children[1]
26+
    for _, game in ipairs( games.children ) do
27-
            local title = game_date .. " " .. away_team .. " @ " .. home_team
27+
        if(game.name == "game") then
28-
            local node = vlc.sd.add_node( { path = "", title = title } )            
28+
29
            local game_date = game.attributes["game_date"]
30
            local game_time = date_to_time(game_date)
31
            local home_abr = game.children_map['home_team'][1].children[1]
32
            local away_abr = game.children_map['away_team'][1].children[1]
33
            local home_team = full_name(home_abr)
34
            local away_team = full_name(away_abr)
35-
                local d = node:add_subnode({title = feed_title})                
35+
            local game_title = game_time .. " " .. away_team .. " @ " .. home_team
36
            local node = vlc.sd.add_node( { title = game_title } )
37
            for _, ass in ipairs(game.children_map['assignments'][1].children) do
38
                local feed = ass.attributes["feed_display_name"]
39-
                    d:add_subitem({path = url, title = away_team .. " @ " .. home_team .. '(' .. q .. ' kbps)'})
39+
40
                local feed_abr = home_abr
41-
                
41+
42
                    feed_title = away_team
43
                    feed_abr = away_abr
44
                end
45
                local d = node:add_subnode({ title = feed_title,
46
                                             arturl = get_logo(feed_abr, "small")
47
                                           })
48
                local ipad = ass.children_map['ipad_url'][1].children[1]
49
                for _, q in ipairs(quality) do
50
                    local url = string.gsub(ipad, "ipad", q)
51
                    d:add_subitem({ path = url,
52
                                    arturl = get_logo(feed_abr, "small"),
53
                                    title = away_team .. " @ " .. home_team .. ' (' .. q .. ' kbps)'
54
                                  })
55
                end
56
            end
57
        end
58
    end
59
end
60
61
function date_to_time(game_date)
62
    local game_time = string.gsub(game_date, "^.-%s(%d?%d):(%d%d):%d%d", "%1:%2 PM ET")
63
    local _, _, hour = string.find(game_time, "^(%d?%d)")
64
    hour24 = tonumber(hour)
65
    if hour24 < 12 then
66
        game_time = string.gsub(game_time, "PM", "AM")
67
    elseif hour24 > 12 then
68
        local hour12 = tostring(hour24 - 12)
69
        game_time = string.gsub(game_time, "^%d?%d", hour12)
70
    end
71
    return (game_time)
72
end
73
74
function full_name(abr)
75
    local all_names = {
76
        BOS = "Boston Bruins",
77
        BUF = "Buffalo Sabres",
78
        CGY = "Calgary Flames",
79
        CHI = "Chicago Blackhawks",
80
        DET = "Detroit Redwings",
81
        EDM = "Edmonton Oilers",
82
        CAR = "Carolina Hurricanes",
83
        LOS = "Los Angeles Kings",
84
        MON = "Montreal Canadiens",
85
        DAL = "Dallas Stars",
86
        NJD = "New Jersey Devils",
87
        NYI = "NY Islanders Islanders",
88
        NYR = "NY Rangers Rangers",
89
        PHI = "Philadelphia Flyers",
90
        PIT = "Pittsburgh Penguins",
91
        COL = "Colorado Avalanche",
92
        STL = "St. Louis Blues",
93
        TOR = "Toronto Maple Leafs",
94
        VAN = "Vancouver Canucks",
95
        WSH = "Washington Capitals",
96
        PHX = "Phoenix Coyotes",
97
        SAN = "San Jose Sharks",
98
        OTT = "Ottawa Senators",
99
        TAM = "Tampa Bay Lightning",
100
        ANA = "Anaheim Ducks",
101
        FLA = "Florida Panthers",
102
        CBS = "Columbus BlueJackets",
103
        MIN = "Minnesota Wild",
104
        NSH = "Nashville Predators",
105
        WPG = "Winnipeg Jets"
106
    }
107
    local name = all_names[abr]
108
    return(name)
109
end
110
111
function get_logo(abr, size)
112
    -- size should be 'small', 'medium', or 'large'
113
    local team_names = {
114
        BOS = "bruins",
115
        BUF = "sabres",
116
        CGY = "flames",
117
        CHI = "blackhawks",
118
        DET = "redwings",
119
        EDM = "oilers",
120
        CAR = "hurricanes",
121
        LOS = "kings",
122
        MON = "canadiens",
123
        DAL = "stars",
124
        NJD = "devils",
125
        NYI = "islanders",
126
        NYR = "rangers",
127
        PHI = "flyers",
128
        PIT = "penguins",
129
        COL = "avalanche",
130
        STL = "blues",
131
        TOR = "mapleleafs",
132
        VAN = "canucks",
133
        WSH = "capitals",
134
        PHX = "coyotes",
135
        SAN = "sharks",
136
        OTT = "senators",
137
        TAM = "lightning",
138
        ANA = "ducks",
139
        FLA = "panthers",
140
        CBS = "bluejackets",
141
        MIN = "wild",
142
        NSH = "predators",
143
        WPG = "jets"
144
    }
145
    return('http://1.cdn.nhle.com/' .. team_names[abr] .. '/images/logos/' .. size .. '.png')
146
end