philtv-js
Version:
A simple library to pair and interact with Philips TV
1 lines • 1.28 kB
JavaScript
import {omit,tryit}from'radash';import {HttpClient}from'urllib';async function f(t,n,r,s={}){let u=`${n}/${t}`;try{let e=await r.request(u,{...s}),i=e.status>=200&&e.status<300;if(!i)return [new Error(`Request failed with status ${e.status} (${e.url})`),void 0,e];let[d,o]=await tryit(JSON.parse)(e.data.toString()),a=d?e.data.toString():o;return [void 0,a,{ok:i,...e,data:a}]}catch(e){return [e,void 0,void 0]}}function h(t){let n=new HttpClient({connect:{rejectUnauthorized:t?.options?.rejectUnauthorized??false,timeout:1e3},defaultArgs:{digestAuth:`${t.user}:${t.password}`,contentType:"json",headers:{}}});return {client:n,request:(r,s={})=>f(r,t.baseUrl,n,s)}}function p(){return new HttpClient({connect:{rejectUnauthorized:false,timeout:1e3},defaultArgs:{contentType:"json"}})}function U(t){return {app_id:"gapp.id",id:t,device_name:"MyName",device_os:"Android",app_name:"PhilTV-js APP",type:"native"}}function x(t){let n=[];function r(s){let{node_id:u,type:e,string_id:i,context:d,data:o}=s;if(n.push({node_id:u,type:e,string_id:i,context:d,data:omit(o,["nodes"])}),o?.nodes)for(let a of o.nodes)r(a);}return r(t),n}async function C(t){let n=p();try{return await n.request(t,{method:"GET",timeout:1e3}),!0}catch{return false}}export{h as a,p as b,U as c,x as d,C as e};