-- Copyright 2025 David Vazgenovich Shakaryan local mp_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 mp_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