diff options
author | David Vazgenovich Shakaryan <dvshakaryan@gmail.com> | 2025-05-20 09:14:12 -0700 |
---|---|---|
committer | David Vazgenovich Shakaryan <dvshakaryan@gmail.com> | 2025-05-20 09:14:12 -0700 |
commit | 55ade5ac655953bef1a7efeeb7fa91ec0fd47a77 (patch) | |
tree | 7b739c40eed2792ce87e60a6ae15fe0b1649352c /xc.lua | |
parent | 5df562dbadb762ee66a09fdd633a44d0fc1c1260 (diff) | |
download | mpv-iptv-menu-55ade5ac655953bef1a7efeeb7fa91ec0fd47a77.tar.gz mpv-iptv-menu-55ade5ac655953bef1a7efeeb7fa91ec0fd47a77.tar.xz |
move XC code to a separate file
Diffstat (limited to 'xc.lua')
-rw-r--r-- | xc.lua | 54 |
1 files changed, 54 insertions, 0 deletions
@@ -0,0 +1,54 @@ +-- Copyright 2025 David Vazgenovich Shakaryan + +local utils = require('mp.utils') + +local xc = {} +local mt = {} +mt.__index = mt + +function xc.new(t) + assert(t.server) + assert(t.user) + assert(t.pass) + + return setmetatable(t, mt) +end + +function mt:get(params) + local cmd = 'curl -sSfL \'' .. self.server .. '/player_api.php' .. + '?username=' .. self.user .. '&password=' .. self.pass + for k, v in pairs(params) do + cmd = cmd .. '&' .. k .. '=' .. v + end + cmd = cmd .. '\'' + + print('exec: ' .. cmd) + local fd = io.popen(cmd) + local json = fd:read('*all') + fd:close() + return utils.parse_json(json) +end + +function mt:get_series_info(id) + return self:get({action = 'get_series_info', series_id = id}) +end + +function mt:get_vod_info(id) + return self:get({action = 'get_vod_info', vod_id = id}) +end + +function mt:stream_url(stream_type, stream_id) + if stream_type == 'series' then + return self.server .. '/series/' .. + self.user .. '/' .. + self.pass .. '/' .. + stream_id .. '.vod' + else + return self.server .. '/' .. + self.user .. '/' .. + self.pass .. '/' .. + stream_id + end +end + +return xc |