diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index dca2ab3..0000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "brightscript", - "request": "launch", - "name": "BrightScript Debug: Launch", - "stopOnEntry": false, - "host": "${promptForHost}", - "password": "mega", - "rootDir": "${workspaceFolder}", - "enableDebuggerAutoRecovery": false, - "stopDebuggerOnAppExit": false - } - ] -} \ No newline at end of file diff --git a/components/rowListContent.brs b/components/rowListContent.brs index a37fbf2..978cc54 100644 --- a/components/rowListContent.brs +++ b/components/rowListContent.brs @@ -1,11 +1,15 @@ sub init() - m.global.http.request = { payload: { + m.http = createObject("roSGNode", "httpTask") + m.http.control = "RUN" + m.http.request = { payload: { userId: 1, title: "WOW, IT WORKED ^_^", - }, url: "https://jsonplaceholder.typicode.com/albums", requestType: "GET"} - m.global.http.observeFieldScoped("response", "useResponse") + }, url: "https://www.youtube.com/watch?v=1FL22N1EXDo", requestType: "GET" } + m.http.observeFieldScoped("response", "useResponse") end sub sub useResponse() - ?m.global.http.response + initialPlayerResponseRegEx = createObject("roRegex", "ytInitialPlayerResponse\s*=\s*({.+?})\s*;", "m") + matches = initialPlayerResponseRegEx.match(m.http.response.body) + ?ParseJson(matches[1]).streamingData.adaptiveFormats[0].url end sub diff --git a/components/rowListScene.brs b/components/rowListScene.brs index 22d7821..fd43c17 100644 --- a/components/rowListScene.brs +++ b/components/rowListScene.brs @@ -1,8 +1,5 @@ sub init() - m.global.addField("http", "node", FALSE) m.global.addField("ratio", "float", FALSE) - m.global.http = createObject("roSGNode", "httpTask") - m.global.http.control = "RUN" m.global.ratio = 1 m.rowList = m.top.findNode("mainRowList") m.rowList.content = createObject("roSGNode", "RowListContent") diff --git a/components/tasks/httpTask.brs b/components/tasks/httpTask.brs index aee48f2..508f50f 100644 --- a/components/tasks/httpTask.brs +++ b/components/tasks/httpTask.brs @@ -14,15 +14,15 @@ function handleCalls() as Object response = fire(msg.getData()) end if else if msgType = "roUrlEvent" - if msg.getInt() = 1 - if msg.getResponseCode() > 0 - response = handleResponse(msg.getString(),msg,true) - else - response = handleResponse(msg.getFailureReason(),msg,false) - end if + if msg.getInt() = 1 + if msg.getResponseCode() > 0 + response = handleResponse(msg.getString(), msg, true) + else + response = handleResponse(msg.getFailureReason(), msg, false) end if - m.top.response = response - return response + end if + m.top.response = response + return response end if end while end function @@ -31,7 +31,7 @@ function fire(request as Object) as Object httpRequest = initiateHttpClient(request.url) requestId = httpRequest.getIdentity().ToStr() m.urlRequest[requestId] = { - request:httpRequest + request: httpRequest } if checkRequestType(request.requestType) httpRequest.AsyncPostFromString(formatJson(request.payload)) @@ -42,15 +42,15 @@ end function function handleResponse(responseString as String, message as Object, isOk as Boolean) as Object if isOk - body = parseJson(responseString) + body = responseString else body = "An Error has Occurred!!" end if - requestId = message.GetSourceIdentity().ToStr() - m.urlRequest[requestId] = invalid + requestId = message.GetSourceIdentity().ToStr() + m.urlRequest[requestId] = invalid return { requestId: requestId - body:body + body: body } end function @@ -60,9 +60,7 @@ function initiateHttpClient(url as String) as Object httpRequest.InitClientCertificates() httpRequest.SetPort(m.port) httpRequest.SetUrl(url) - httpRequest.RetainBodyOnError(true) - httpRequest.addHeader("Content-Type", "application/json") - httpRequest.addHeader("Accept", "application/json") + httpRequest.RetainBodyOnError(false) return httpRequest end function diff --git a/components/tasks/httpTask.xml b/components/tasks/httpTask.xml index d3c075c..c6f5eb5 100644 --- a/components/tasks/httpTask.xml +++ b/components/tasks/httpTask.xml @@ -5,4 +5,5 @@ + \ No newline at end of file