mirror of
https://github.com/pierre-emmanuelJ/iptv-proxy.git
synced 2026-03-12 22:24:18 +01:00
65 lines
1.7 KiB
Go
65 lines
1.7 KiB
Go
package xtreamproxy
|
|
|
|
import (
|
|
xtream "github.com/tellytv/go.xtream-codes"
|
|
)
|
|
|
|
const (
|
|
GetLiveCategories = "get_live_categories"
|
|
GetLiveStreams = "get_live_streams"
|
|
GetVodCategories = "get_vod_categories"
|
|
GetVodStreams = "get_vod_streams"
|
|
GetVodInfo = "get_vod_info"
|
|
GetSeriesCategories = "get_series_categories"
|
|
GetSeries = "get_series"
|
|
GetSerieInfo = "get_series_info"
|
|
)
|
|
|
|
type Client struct {
|
|
*xtream.XtreamClient
|
|
}
|
|
|
|
func New(user, password, baseURL string) (*Client, error) {
|
|
cli, err := xtream.NewClient(user, password, baseURL)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &Client{cli}, nil
|
|
}
|
|
|
|
type Login struct {
|
|
UserInfo xtream.UserInfo `json:"user_info"`
|
|
ServerInfo xtream.ServerInfo `json:"server_info"`
|
|
}
|
|
|
|
func (c *Client) Login(proxyUser, proxyPassword, proxyURL string, proxyPort int) (Login, error) {
|
|
req := Login{
|
|
UserInfo: xtream.UserInfo{
|
|
Username: proxyUser,
|
|
Password: proxyPassword,
|
|
Message: c.UserInfo.Message,
|
|
Auth: c.UserInfo.Auth,
|
|
Status: c.UserInfo.Status,
|
|
ExpDate: c.UserInfo.ExpDate,
|
|
IsTrial: c.UserInfo.IsTrial,
|
|
ActiveConnections: c.UserInfo.ActiveConnections,
|
|
CreatedAt: c.UserInfo.CreatedAt,
|
|
MaxConnections: c.UserInfo.MaxConnections,
|
|
AllowedOutputFormats: c.UserInfo.AllowedOutputFormats,
|
|
},
|
|
ServerInfo: xtream.ServerInfo{
|
|
URL: proxyURL,
|
|
Port: proxyPort,
|
|
HTTPSPort: proxyPort,
|
|
Protocol: c.ServerInfo.Protocol,
|
|
RTMPPort: proxyPort,
|
|
Timezone: c.ServerInfo.Timezone,
|
|
TimestampNow: c.ServerInfo.TimestampNow,
|
|
TimeNow: c.ServerInfo.TimeNow,
|
|
},
|
|
}
|
|
|
|
return req, nil
|
|
}
|