如何将艺术家和标题数据发送到TuneIn API

时间:2015-09-02 05:04:25

标签: vbscript shoutcast tunein

我正在尝试使用此脚本根据他们的API将艺术家和标题数据发送到TuneIn Radio,在此我迷路了:

Dim o
Set o = CreateObject("MSXML2.XMLHTTP")
o.open "GET", "http://air.radiotime.com/Playing.ashx?partnerId=<ID>&partnerKey=<key>&id=<station>&title=blank&artist=blank", False
o.send

我遇到的问题是使用预先创建的变量

Function HandleLine(sLine)
  divisao = (sline)
  divisao = split(divisao,"-")

  SongInfo.Value("artist") = (Trim(divisao(0)))
  SongInfo.Value("title") = (Trim(divisao(1)))
  SongInfo.Value("songtype") = "S"

  SongInfo.DoSongChange
End Function

我希望能够获取这些变量并在上面的URL发送字符串中使用它们发送到API ...有谁知道如何使这成为可能?

如果没有,该文件最初是作为远程PC上的文本文件读取的,如果可以创建变量,我也可以去那里。

1 个答案:

答案 0 :(得分:1)

我的问题仍然不是很清楚,但假设您要使用title对象中的值填充网址参数artistSongInfo执行以下操作:

url = "http://air.radiotime.com/Playing.ashx" & _
      "?partnerId=<ID>&partnerKey=<key>&id=<station>" & _
      "&title=" & Replace(SongInfo.Value("title"), " ", "+") & _
      "&artist=" & Replace(SongInfo.Value("artist"), " ", "+")

Set o = CreateObject("MSXML2.XMLHTTP")
o.open "GET", url, False
o.send

根据artisttitle的值所包含的字符,您可能需要先对其进行编码:

Function Encode(ByVal str)
  Set re = New RegExp
  re.Pattern = "[^a-zA-Z0-9_.~-]"

  enc = ""
  For i = 1 To Len(str)
    c = Mid(str, i, 1)
    If re.Test(c) Then c = "%" & Right("0" & Hex(Asc(c)), 2)
    enc = enc & c
  Next

  Encode = enc
End Function