From 55ade5ac655953bef1a7efeeb7fa91ec0fd47a77 Mon Sep 17 00:00:00 2001 From: David Vazgenovich Shakaryan Date: Tue, 20 May 2025 09:14:12 -0700 Subject: move XC code to a separate file --- xc.lua | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 xc.lua (limited to 'xc.lua') diff --git a/xc.lua b/xc.lua new file mode 100644 index 0000000..fca88f7 --- /dev/null +++ b/xc.lua @@ -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 -- cgit v1.2.3-70-g09d2