214 lines
5.5 KiB
JavaScript
214 lines
5.5 KiB
JavaScript
class TYTD
|
|
{
|
|
constructor(server,defaultres)
|
|
{
|
|
this.server=server;
|
|
this.defaultres=defaultres;
|
|
}
|
|
|
|
get defaultRes()
|
|
{
|
|
return this.defaultres;
|
|
}
|
|
set defaultRes(value)
|
|
{
|
|
this.defaultres=value;
|
|
}
|
|
|
|
get serverUrl()
|
|
{
|
|
return this.server;
|
|
}
|
|
request(url,call)
|
|
{
|
|
var xhttp = new XMLHttpRequest();
|
|
xhttp.onreadystatechange = function() {
|
|
if (this.readyState == 4 && this.status == 200) {
|
|
// Typical action to be performed when the document is ready:
|
|
call(xhttp.responseText);
|
|
}
|
|
};
|
|
xhttp.open("GET", url, true);
|
|
xhttp.send();
|
|
}
|
|
downloadItem(url,res)
|
|
{
|
|
var callurl=new URL(`api/AddItemRes/${res}/${url}`,this.server).href;
|
|
this.request(callurl,function(e){});
|
|
}
|
|
downloadItem(url)
|
|
{
|
|
this.downloadItem(url,this.defaultres);
|
|
}
|
|
|
|
progress(p)
|
|
{
|
|
var callurl=new URL("api/v2/Progress",this.server).href;
|
|
this.request(callurl,function(e){
|
|
p(JSON.parse(e));
|
|
});
|
|
}
|
|
queuelist(ql)
|
|
{
|
|
var callurl=new URL("api/v2/QueueList",this.server).href;
|
|
this.request(callurl,function(e){
|
|
ql(JSON.parse(e));
|
|
});
|
|
}
|
|
getvideos(vid)
|
|
{
|
|
this.getvideoinfofiles(function(e){
|
|
//an array
|
|
e.forEach(element => {
|
|
this.getvideoinfofile(element,vid);
|
|
});
|
|
});
|
|
}
|
|
getplaylists(pl)
|
|
{
|
|
this.getplaylistinfofiles(function(e){
|
|
//an array
|
|
e.forEach(element => {
|
|
this.getplaylistinfofile(element,pl);
|
|
});
|
|
});
|
|
}
|
|
getchannels(chan)
|
|
{
|
|
this.getchannelinfofiles(function(e){
|
|
e.forEach(element =>{
|
|
this.getchannelinfofile(element,chan);
|
|
});
|
|
});
|
|
}
|
|
getchannelinfo(id,info)
|
|
{
|
|
this.getchannelinfofile(`${id}.json`,info);
|
|
}
|
|
getvideoinfo(id,info)
|
|
{
|
|
this.getvideoinfofile(`${id}.json`,info);
|
|
}
|
|
getvideoinfofile(filename,info)
|
|
{
|
|
var callurl=new URL(`api/Storage/File/Info/${filename}`,this.server).href;
|
|
this.request(callurl,function(e){
|
|
info(JSON.parse(e));
|
|
});
|
|
}
|
|
getchannelinfofile(filename,info)
|
|
{
|
|
var callurl=new URL(`api/Storage/File/Channel/${filename}`,this.server).href;
|
|
this.request(callurl,function(e){
|
|
info(JSON.parse(e));
|
|
});
|
|
}
|
|
getvideoinfofiles(vid)
|
|
{
|
|
var callurl=new URL("api/Storage/GetFiles/Info",this.server).href;
|
|
this.request(callurl,function(e){
|
|
vid(JSON.parse(e));
|
|
});
|
|
}
|
|
getplaylistinfo(info)
|
|
{
|
|
this.getplaylistinfofile(`${id}.json`,info);
|
|
}
|
|
getplaylistinfofile(info)
|
|
{
|
|
var callurl=new URL(`api/Storage/File/Playlist/${filename}`,this.server).href;
|
|
this.request(callurl,function(e){
|
|
info(JSON.parse(e));
|
|
});
|
|
}
|
|
getplaylistinfofiles(pl)
|
|
{
|
|
var callurl = new URL("api/Storage/GetFiles/Playlist",this.server).href;
|
|
this.request(callurl,function(e){
|
|
pl(JSON.parse(e));
|
|
});
|
|
}
|
|
getchannelinfofiles(chan)
|
|
{
|
|
var callurl = new URL("api/Storage/GetFiles/Channel",this.server).href;
|
|
this.request(callurl,function(e){
|
|
chan(JSON.parse(e));
|
|
});
|
|
}
|
|
getsubscriptions(subs)
|
|
{
|
|
var callurl = new URL("api/v2/subscriptions",this.server).href;
|
|
this.request(callurl,function(e){
|
|
subs(JSON.parse(e));
|
|
});
|
|
}
|
|
subscribe(cid,getinfo,conf)
|
|
{
|
|
var ginfo = getinfo == true ? "true" : "false";
|
|
var callurl = new URL(`api/v2/subscribe?id=${encodeURIComponent(cid)}&conf=${conf}&getinfo=${getinfo}`,this.server).href;
|
|
this.request(callurl,function(e){
|
|
|
|
});
|
|
}
|
|
subscribe(name,conf)
|
|
{
|
|
var callurl = new URL(`api/v2/subscribe?id=${encodeURIComponent(name)}&conf=${conf}`,this.server).href;
|
|
this.request(callurl,function(e){
|
|
|
|
});
|
|
}
|
|
unsubscribe(cid)
|
|
{
|
|
var callurl = new URL(`api/v2/unsubscribe?id=${encodeURIComponent(cid)}`,this.server).href;
|
|
this.request(callurl,function(e){
|
|
|
|
});
|
|
}
|
|
resubscribe(cid,conf)
|
|
{
|
|
var callurl = new URL(`api/v2/resubscribe?id=${encodeURIComponent(cid)}&conf=${conf}`,this.server).href;
|
|
this.request(callurl,function(e){
|
|
|
|
});
|
|
}
|
|
|
|
getfiles(path,ls)
|
|
{
|
|
var callurl=new URL(`api/Storage/GetFiles/${path}`,this.server).href;
|
|
this.request(callurl,function(e){
|
|
ls(JSON.parse(e));
|
|
});
|
|
}
|
|
getdirectories(path,ls)
|
|
{
|
|
var callurl=new URL(`api/Storage/GetDirectories/${path}`,this.server).href;
|
|
this.request(callurl,function(e){
|
|
ls(JSON.parse(e));
|
|
});
|
|
}
|
|
fileexists(path,exists,doesntexist)
|
|
{
|
|
var callurl=new URL(`api/Storage/FileExists/${path}`,this.server).href;
|
|
this.request(callurl,function(e){
|
|
if(e==="true")
|
|
{
|
|
exists();
|
|
}else{
|
|
doesntexist();
|
|
}
|
|
});
|
|
}
|
|
directoryexists(path,exists,doesntexist)
|
|
{
|
|
var callurl=new URL(`api/Storage/DirectoryExists/${path}`,this.server).href;
|
|
this.request(callurl,function(e){
|
|
if(e==="true")
|
|
{
|
|
exists();
|
|
}else{
|
|
doesntexist();
|
|
}
|
|
});
|
|
}
|
|
|
|
} |