Jump to content

Standalone HTA RSS reader for uTorrent


RingoTheDog

Recommended Posts

Looks like this past weekend ezrss added a DTD to their RSS feed, IE doesn't support this...and the wife was unable to get her shows. So I knocked this off and just wanted to share (as most of the code is 'lifted' from here and many other place across the interwebz.)

I have a Buffalo NAS with the embedded uTorrent client...this lets the wife add files to download without logging into the NAS, (nor getting 'a Russian wife' ;-)

You MUST put in the IP address of your uTorrent client in line 17 (and other info if not defaults)

...select all code below and save as uTorrent.hta

Ringo

<html>
<head>
<title>uTORRENT RSS READER</title>
<HTA:APPLICATION
ID="objMyHTA"
APPLICATIONNAME="uTORRENT RSS READER"
SCROLL="auto"
SINGLEINSTANCE="no"
WINDOWSTATE="normal"
NAVIGABLE="yes"
ICON = "magnify.exe"
>


<script language="vbscript">

'EDIT THESE VARIABLES
uTorrentIP="192.168.1.100" 'THIS MUST BE CHANGED TO MATCH YOUR uTORRENT CLIENT/NAS...WHATEVER IT IS!!!!
uTorrentPort="9090"
uTorrentServerID="ADMIN"
uTorrentServerPW=""
MaxNumberOfItems = 25
Filter1 = ""
Filter2 = ""
ErrorMessage = "Error has occured while trying to process " &RSSURL & "<BR>Pull the fire alarm and panic NOW!!"




Sub Window_OnLoad
self.ResizeTo 800,500
self.MoveTo 10,10
section1.InnerHTML = "<b>Select an RSS Torrent feed</b>"
End Sub



Sub btnOK_OnClick

'Set tfolder to system temp folder path
set fso = createobject("scripting.filesystemobject")
Const TemporaryFolder = 2
Set tfolder = fso.GetSpecialFolder(TemporaryFolder)


'GO FETCH AND PARSE THE A TOKEN FROM uTorrent
TokenURL="HTTP://"&uTorrentServerID&":"&uTorrentServerPW&"@"&uTorrentIP&":"&uTorrentPort&"/gui/token.html"
Set xml = CreateObject("Microsoft.XMLHTTP")
xml.Open "GET", TokenURL, False
xml.SEND
TokenPage = xml.responseText

StartTag="<div id='token' style='display:none;'>"
EndTag="</div>"
Extract = ""
lArray = Split(TokenPage, StartTag)
If IsArray(lArray) Then
Extract = lArray(1)
lArray = Split(Extract, EndTag)
If IsArray(lArray) Then
Extract = lArray(0)
Else
Extract = ""
End If
End If
TOKEN = EXTRACT

'Document.Write "<font color='#4AA02C'>µTorrent</FONT> Token="&TOKEN&"<BR>"
'Document.Write "Token generated at "&Date()&" "&Time()&"<BR>Please Wait...<BR>"



'GO FETCH LATEST RSS XML FILE
RSSURL = window.document.select.feed.value
SCRIPT = tfolder+"\GetRSS.vbs"
strVAR = "strHDLocation = """&tfolder&"\rss.xml"""& vbCrLf
strVAR = strVAR+"Set objXMLHTTP = CreateObject(""MSXML2.XMLHTTP"")"& vbCrLf
strVAR = strVAR+"objXMLHTTP.open ""GET"", """&RSSURL&""", false"& vbCrLf
strVAR = strVAR+"objXMLHTTP.send()"& vbCrLf
strVAR = strVAR+"If objXMLHTTP.Status = 200 Then"& vbCrLf
strVAR = strVAR+" Set objADOStream = CreateObject(""ADODB.Stream"")"& vbCrLf
strVAR = strVAR+" objADOStream.Open"& vbCrLf
strVAR = strVAR+" objADOStream.Type = 1 'adTypeBinary"& vbCrLf
strVAR = strVAR+" objADOStream.Write objXMLHTTP.ResponseBody"& vbCrLf
strVAR = strVAR+" objADOStream.Position = 0 'Set the stream position to the start"& vbCrLf
strVAR = strVAR+" Set objFSO = Createobject(""Scripting.FileSystemObject"")"& vbCrLf
strVAR = strVAR+" If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation"& vbCrLf
strVAR = strVAR+" Set objFSO = Nothing"& vbCrLf
strVAR = strVAR+" objADOStream.SaveToFile strHDLocation"& vbCrLf
strVAR = strVAR+" objADOStream.Close"& vbCrLf
strVAR = strVAR+" Set objADOStream = Nothing"& vbCrLf
strVAR = strVAR+"End if"& vbCrLf
strVAR = strVAR+"Set objXMLHTTP = Nothing"& vbCrLf

'Write the VBSfile
set file = fso.createTextFile(SCRIPT,true)
file.writeline strVar
file.close: set file = nothing
set fso = nothing

'Run the VBSfile
Set oShell = CreateObject ("WScript.shell")
oShell.run SCRIPT,1,True
Set oShell = Nothing



'NOW READ IN THE RSS FILE WE JUST DOWNLOADED
'WE HAVE TO DO THIS IN TWO STEPS (DOWNLOAD THEN READ) SO WE DON'T HAVE TO DEAL WITH WINDOWS SECURITY ISSUES
strFileName=tfolder+"\rss.xml"
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objTextStream
Set objTextStream = objFSO.OpenTextFile(strFileName, 1)
RSSXML= objTextStream.ReadAll
set f=nothing
set fs=nothing

'PARSE XML
Set xmlDOM = CreateObject("MSXML2.DomDocument.3.0")
xmlDOM.async = False
xmlDOM.validateOnParse = False
xmlDom.resolveExternals = False

If not xmlDOM.LoadXml(RSSXML) Then
ErrorMessage = "Can not load XML:" & vbCRLF & xmlDOM.parseError.reason & vbCRLF & ErrorMessage
End If

Set xmlHttp = Nothing
Set RSSItems = xmlDOM.getElementsByTagName("item") ' collect all "items" from downloaded RSS
RSSItemsCount = RSSItems.Length-1

' if not <item>..</item> entries, then try to get <entry>..</entry>
if RSSItemsCount = -1 Then
Set RSSItems = xmlDOM.getElementsByTagName("entry") ' collect all "entry" (atom format) from downloaded RSS
RSSItemsCount = RSSItems.Length-1
End If

Set xmlDOM = Nothing

if RSSItemsCount > 0 then
'Document.Write "<TABLE BORDER=1 WIDTH=100%>"
End If

j = -1

For i = 0 To RSSItemsCount
Set RSSItem = RSSItems.Item(i)

RSSdescription=" "
RSSCommentsLink=" "

for each child in RSSItem.childNodes

Select case lcase(child.nodeName)
case "title"
RSStitle = child.text
case "link"
If child.Attributes.length>0 Then
RSSLink = child.GetAttribute("href")
if (RSSLink <> "") Then
if child.GetAttribute("rel") <> "alternate" Then
RSSLink = ""
End If
End If
End If ' if has attributes
If RSSLink = "" Then
RSSlink = child.text
End If
case "description"
RSSdescription = child.text
case "content" ' atom format
RSSdescription = child.text
case "published"' atom format
RSSDate = child.text
case "pubdate"
RSSDate = child.text
case "comments"
RSSCommentsLink = child.text
case "category"
Set CategoryItems = RSSItem.getElementsByTagName("category")
RSSCategory = ""
for each categoryitem in CategoryItems
if RSSCategory <> "" Then
RSSCategory = RSSCategory & ", "
End If

RSSCategory = RSSCategory & categoryitem.text
Next
End Select
next

' now check filter
If (InStr(RSSTitle,Filter1)>0) or (InStr(RSSTitle,Filter2)>0) or (InStr(RSSDescription,Filter1)>0) or (InStr(RSSDescription,Filter2)>0) then
j = J+1
if J<MaxNumberOfItems then
'Document.Write "<TR><TD><B>"&RSSTitle&"</B><BR><A HREF='"&RSSlink&"' TARGET='_NEW'>"&RSSlink&"</A><BR>"&RSSDate&"<BR><A HREF='HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&action=add-url&s="&RSSlink&"' TARGET=>Send To <font color='#4AA02C'>µTorrent</FONT></A></TD></TR>"
TABLEHTML = TABLEHTML+ "<TR><TD><FONT SIZE=+1><B>"&RSSTitle&"</B></FONT><BR><A HREF='"&RSSlink&"' TARGET='_BLANK'>"&RSSlink&"</A><BR>"&RSSDate&"<BR><A HREF=""javascript:ajaxpage('HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&action=add-url&s="&RSSlink&"','section1');""><FONT SIZE=+1>Send To <font color='#4AA02C'>µTorrent</FONT></FONT></A></TD></TR>"
ItemContent = ""
RSSLink = ""
End IF
End If

Next

if RSSItemsCount > 0 then
'Document.Write MainTemplateFooter
'Document.Write "</TABLE>"
else
Document.Write ErrorMessage
End If

section1.InnerHTML = "<TABLE BORDER=1 WIDTH=100%>"&TABLEHTML&"</TABLE>"

End Sub

</script>

<script type="text/javascript">

/***********************************************
* Dynamic Ajax Content- © Dynamic Drive DHTML code library ([url=http://www.dynamicdrive.com]www.dynamicdrive.com[/url])
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at [url="http://www.dynamicdrive.com/"]http://www.dynamicdrive.com/[/url] for full source code
***********************************************/

var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""
var rootdomain="http://"+window.location.hostname
var bustcacheparameter=""

function ajaxpage(url, containerid){
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
loadpage(page_request, containerid)
}
if (bustcachevar) //if bust caching of external page
bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
page_request.open('GET', url+bustcacheparameter, true)
page_request.send(null)
}

function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(containerid).innerHTML=page_request.responseText
}

function loadobjs(){
if (!document.getElementById)
return
for (i=0; i<arguments.length; i++){
var file=arguments[i]
var fileref=""
if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
if (file.indexOf(".js")!=-1){ //If object is a js file
fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", file);
}
else if (file.indexOf(".css")!=-1){ //If object is a css file
fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", file);
}
}
if (fileref!=""){
document.getElementsByTagName("head").item(0).appendChild(fileref)
loadedobjects+=file+" " //Remember this object as being already added to page
}
}
}

</script>

</head>

<!-- ************************* -->

<body>
<CENTER>
<form name=select>
<select name='feed'>
<OPTION VALUE='http://ezrss.it/feed/'>EZRSS.IT</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/207'>The Pirate Bay - Highres Movies</OPTION>
<OPTION VALUE='http://rss.bt-chat.com/?group=2'>BT-Chat</OPTION>
<OPTION VALUE='http://www.d-addicts.com/rss.xml'>D-Addicts</OPTION>
</select>
<p><input id="btnOK" type="button" value="GET RSS FEED" name="btnOK"></p>
</form>
<div id="section1" name="section1"></div>
</CENTER>
</body>
</html>

Link to comment
Share on other sites

VER 1.1

Let me know if you have issues (technical only pls)

Ringo


<html>
<head>
<script language="vbscript">
'EDIT THESE VARIABLES
uTorrentIP="192.168.1.100" 'THIS MUST BE CHANGED TO MATCH YOUR µTORRENT CLIENT/NAS...WHATEVER IT IS!!!!
uTorrentPort="9090"
uTorrentServerID="ADMIN"
uTorrentServerPW=""
MaxNumberOfItems = 100
VERBOSITY = 1 'VERBOSITY CAN BE SET To 1 2 OR 3 (DEFAULTS TO 1)
Filter1 = ""
Filter2 = ""

Sub Window_OnLoad
self.ResizeTo 800,500
self.MoveTo 10,10
section1.InnerHTML = "<center><b>SELECT AN RSS TORRENT FEED</b></center>"
End Sub

Sub btnOK_OnClick

PleaseWaitStart()

'Set tfolder to system temp folder path
set fso = createobject("scripting.filesystemobject")
Const TemporaryFolder = 2
Set tfolder = fso.GetSpecialFolder(TemporaryFolder)


'GO FETCH AND PARSE THE A TOKEN FROM µTorrent
TokenURL="HTTP://"&uTorrentServerID&":"&uTorrentServerPW&"@"&uTorrentIP&":"&uTorrentPort&"/gui/token.html"
Set xml = CreateObject("Microsoft.XMLHTTP")
xml.Open "GET", TokenURL, False
xml.SEND
TokenPage = xml.responseText
StartTag="<div id='token' style='display:none;'>"
EndTag="</div>"
Extract = ""
lArray = Split(TokenPage, StartTag)
If IsArray(lArray) Then
Extract = lArray(1)
lArray = Split(Extract, EndTag)
If IsArray(lArray) Then
Extract = lArray(0)
Else
Extract = ""
End If
End If
TOKEN = EXTRACT

'GO FETCH LATEST RSS XML FILE
RSSURL = window.document.select.feed.value
ErrorMessage = "Error has occured while trying to process " &RSSURL & "<BR>Pull the fire alarm and panic NOW!!"
SCRIPT = tfolder+"\GetRSS.vbs"
strVAR = "strHDLocation = """&tfolder&"\rss.xml"""& vbCrLf
strVAR = strVAR+"Set objXMLHTTP = CreateObject(""MSXML2.XMLHTTP"")"& vbCrLf
strVAR = strVAR+"objXMLHTTP.open ""GET"", """&RSSURL&""", false"& vbCrLf
strVAR = strVAR+"objXMLHTTP.send()"& vbCrLf
strVAR = strVAR+"If objXMLHTTP.Status = 200 Then"& vbCrLf
strVAR = strVAR+" Set objADOStream = CreateObject(""ADODB.Stream"")"& vbCrLf
strVAR = strVAR+" objADOStream.Open"& vbCrLf
strVAR = strVAR+" objADOStream.Type = 1 'adTypeBinary"& vbCrLf
strVAR = strVAR+" objADOStream.Write objXMLHTTP.ResponseBody"& vbCrLf
strVAR = strVAR+" objADOStream.Position = 0 'Set the stream position to the start"& vbCrLf
strVAR = strVAR+" Set objFSO = Createobject(""Scripting.FileSystemObject"")"& vbCrLf
strVAR = strVAR+" If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation"& vbCrLf
strVAR = strVAR+" Set objFSO = Nothing"& vbCrLf
strVAR = strVAR+" objADOStream.SaveToFile strHDLocation"& vbCrLf
strVAR = strVAR+" objADOStream.Close"& vbCrLf
strVAR = strVAR+" Set objADOStream = Nothing"& vbCrLf
strVAR = strVAR+"End if"& vbCrLf
strVAR = strVAR+"Set objXMLHTTP = Nothing"& vbCrLf

'Write the VBSfile
set file = fso.createTextFile(SCRIPT,true)
file.writeline strVar
file.close: set file = nothing
set fso = nothing

'Run the VBSfile
Set oShell = CreateObject ("WScript.shell")
oShell.run SCRIPT,1,True
Set oShell = Nothing

'NOW READ IN THE RSS FILE WE JUST DOWNLOADED
'WE HAVE TO DO THIS IN TWO STEPS (DOWNLOAD THEN READ) SO WE DON'T HAVE TO DEAL WITH WINDOWS SECURITY ISSUES
strFileName=tfolder+"\rss.xml"
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objTextStream
Set objTextStream = objFSO.OpenTextFile(strFileName, 1)
RSSXML= objTextStream.ReadAll
set f=nothing
set fs=nothing

'PARSE XML
Set xmlDOM = CreateObject("MSXML2.DomDocument.3.0")
xmlDOM.async = False
xmlDOM.validateOnParse = False
xmlDom.resolveExternals = False

If not xmlDOM.LoadXml(RSSXML) Then
ErrorMessage = "Can not load XML:" & vbCRLF & xmlDOM.parseError.reason & vbCRLF & ErrorMessage
End If

Set xmlHttp = Nothing
Set RSSItems = xmlDOM.getElementsByTagName("item") ' collect all "items" from downloaded RSS
RSSItemsCount = RSSItems.Length-1

' if not <item>..</item> entries, then try to get <entry>..</entry>
if RSSItemsCount = -1 Then
Set RSSItems = xmlDOM.getElementsByTagName("entry") ' collect all "entry" (atom format) from downloaded RSS
RSSItemsCount = RSSItems.Length-1
End If

Set xmlDOM = Nothing

j = -1

For i = 0 To RSSItemsCount
Set RSSItem = RSSItems.Item(i)

RSSdescription=" "
RSSCommentsLink=" "

for each child in RSSItem.childNodes

Select case lcase(child.nodeName)
case "title"
RSStitle = child.text
case "link"
If child.Attributes.length>0 Then
RSSLink = child.GetAttribute("href")
if (RSSLink <> "") Then
if child.GetAttribute("rel") <> "alternate" Then
RSSLink = ""
End If
End If
End If ' if has attributes
If RSSLink = "" Then
RSSlink = child.text
End If
case "description"
RSSdescription = child.text
case "content" ' atom format
RSSdescription = child.text
case "published"' atom format
RSSDate = child.text
case "pubdate"
RSSDate = child.text
case "comments"
RSSCommentsLink = child.text
case "category"
Set CategoryItems = RSSItem.getElementsByTagName("category")
RSSCategory = ""
for each categoryitem in CategoryItems
if RSSCategory <> "" Then
RSSCategory = RSSCategory & ", "
End If

RSSCategory = RSSCategory & categoryitem.text
Next
End Select
next

' now check filter
If (InStr(RSSTitle,Filter1)>0) or (InStr(RSSTitle,Filter2)>0) or (InStr(RSSDescription,Filter1)>0) or (InStr(RSSDescription,Filter2)>0) then
j = J+1
if J<MaxNumberOfItems then
TABLEHTML = TABLEHTML+ "<TR><TD><B><FONT SIZE=+2>"&RSSTitle&"</FONT></B><BR><A HREF='"&RSSlink&"' TARGET='_BLANK'>"&RSSlink&"</A><BR>"&RSSDate&"<BR><A HREF=""javascript:ajaxpage('HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&action=add-url&s="&RSSlink&"','section1');""><FONT SIZE=+1>Send To <font color='#4AA02C'>µTorrent</FONT></FONT></A></TD></TR>"
ItemContent = ""
RSSLink = ""
End IF
End IF

Next

if RSSItemsCount > 0 then
IF VERBOSITY = 3 THEN
section1.InnerHTML = "<center><A HREF=""javascript:ajaxpage('HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&list=1','section1');""><font color='#4AA02C'>µTorrent</FONT> Status</A></center><TABLE BORDER=0 WIDTH=100%><TR><TD ALIGH=LEFT><font color='#4AA02C'>µTorrent</FONT> Token: "&TOKEN&"</TD><TD ALIGH=RIGHT>Token generated at "&Date()&" "&Time()&"</TD></TR></TABLE><TABLE BORDER=1 WIDTH=100%>"&TABLEHTML&"</TABLE>"

ELSE IF VERBOSITY = 2 THEN
section1.InnerHTML = "<center><A HREF=""javascript:ajaxpage('HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&list=1','section1');""><font color='#4AA02C'>µTorrent</FONT> Status</A></center><BR><TABLE BORDER=1 WIDTH=100%>"&TABLEHTML&"</TABLE>"

ELSE
section1.InnerHTML = "<TABLE BORDER=1 WIDTH=100%>"&TABLEHTML&"</TABLE>"
END IF
END IF

else
Document.Write ErrorMessage
End If

PleaseWaitFinish()

End Sub

</script>

<script type="text/javascript">

/***********************************************
* Dynamic Ajax Content- © Dynamic Drive DHTML code library ([url=http://www.dynamicdrive.com]www.dynamicdrive.com[/url])
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at [url="http://www.dynamicdrive.com/"]http://www.dynamicdrive.com/[/url] for full source code
***********************************************/

var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""
var rootdomain="http://"+window.location.hostname
var bustcacheparameter=""

function ajaxpage(url, containerid){
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
loadpage(page_request, containerid)
}
if (bustcachevar) //if bust caching of external page
bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
page_request.open('GET', url+bustcacheparameter, true)
page_request.send(null)
}

function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(containerid).innerHTML=page_request.responseText
}

function loadobjs(){
if (!document.getElementById)
return
for (i=0; i<arguments.length; i++){
var file=arguments[i]
var fileref=""
if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
if (file.indexOf(".js")!=-1){ //If object is a js file
fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", file);
}
else if (file.indexOf(".css")!=-1){ //If object is a css file
fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", file);
}
}
if (fileref!=""){
document.getElementsByTagName("head").item(0).appendChild(fileref)
loadedobjects+=file+" " //Remember this object as being already added to page
}
}
}

</script>


<SCRIPT LANGUAGE="JavaScript">
function PleaseWaitStart() {
document.getElementById('PleaseWaitPage').style.visibility = 'visible';
}
function PleaseWaitFinish() {
document.getElementById('PleaseWaitPage').style.visibility = 'hidden';
}
</script>


<title>µTORRENT RSS READER</title>
<HTA:APPLICATION
ID="objMyHTA"
APPLICATIONNAME="µTORRENT RSS READER"
SCROLL="auto"
SINGLEINSTANCE="no"
WINDOWSTATE="normal"
NAVIGABLE="yes"
ICON="magnify.exe"
>

</head>

<!-- ************************* -->

<body>
<CENTER>
<form name=select>
<select name='feed'>
<OPTION VALUE='http://ezrss.it/feed/'>EZRSS.IT</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/207'>THE PIRATE BAY - Highres Movies</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/208'>THE PIRATE BAY - Highres TV shows</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/205'>THE PIRATE BAY - TV shows</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/405'>THE PIRATE BAY - Wii Games</OPTION>
<OPTION VALUE='http://rss.bt-chat.com/?group=2'>BT-CHAT</OPTION>
<OPTION VALUE='http://www.d-addicts.com/rss.xml'>D-ADDICTS</OPTION>
</select>
<p><input id="btnOK" type="button" value="GET RSS FEED" name="btnOK"></p>
</form>
</CENTER>

<div id="PleaseWaitPage" style="position: absolute; visibility='hidden'; left:0px; top:0px; background-color: #FFFFFF; height: 100%; width: 102%;">
<center><B>PLEASE WAIT....</B></center>
</div>

<div id="section1" name="section1"></div>

</body>
</html>

Link to comment
Share on other sites

Ver 1.2

Same as before....

-copy code below to notepad

-change uTorrentIP to the IP address of YOUR uTorrent client

-save file as utorrent.hta (select unicode (not ascii) so the "µ" character works...not really a show stopper)

I'm using a Buffalo NAS with the uTorrent client, and it works...but have not tested on any other uTorrent ver.

Let me know how it goes

Ringo

(afraid the forum 'code' tags are not workin' for me..sry)

<html>
<head>
<script language="vbscript">
'EDIT THESE VARIABLES
uTorrentIP="192.168.1.100" 'THIS MUST BE CHANGED TO MATCH YOUR µTORRENT CLIENT/NAS...WHATEVER IT IS!!!!
uTorrentPort="9090"
uTorrentServerID="ADMIN"
uTorrentServerPW=""
MaxNumberOfItems = 100

Sub Window_OnLoad
self.ResizeTo 800,500
self.MoveTo 10,10
section1.InnerHTML = "<center><b>SELECT AN RSS TORRENT FEED</b></center>"
End Sub

Sub getRSS_OnClick

PleaseWaitStart()

'Set tfolder to system temp folder path
set fso = createobject("scripting.filesystemobject")
Const TemporaryFolder = 2
Set tfolder = fso.GetSpecialFolder(TemporaryFolder)

'GO FETCH AND PARSE THE A TOKEN FROM µTorrent
TokenURL="HTTP://"&uTorrentServerID&":"&uTorrentServerPW&"@"&uTorrentIP&":"&uTorrentPort&"/gui/token.html"
Set xml = CreateObject("Microsoft.XMLHTTP")
xml.Open "GET", TokenURL, False
xml.SEND
TokenPage = xml.responseText
StartTag="<div id='token' style='display:none;'>"
EndTag="</div>"
Extract = ""
lArray = Split(TokenPage, StartTag)
If IsArray(lArray) Then
Extract = lArray(1)
lArray = Split(Extract, EndTag)
If IsArray(lArray) Then
Extract = lArray(0)
Else
Extract = ""
End If
End If
TOKEN = EXTRACT

'GO FETCH LATEST RSS XML FILE
RSSURL = window.document.select.feed.value
ErrorMessage = "Error has occured while trying to process " &RSSURL & "<BR>Pull the fire alarm and panic NOW!!"
SCRIPT = tfolder+"\GetRSS.vbs"
strVAR = "strHDLocation = """&tfolder&"\rss.xml"""& vbCrLf
strVAR = strVAR+"Set objXMLHTTP = CreateObject(""MSXML2.XMLHTTP"")"& vbCrLf
strVAR = strVAR+"objXMLHTTP.open ""GET"", """&RSSURL&""", false"& vbCrLf
strVAR = strVAR+"objXMLHTTP.send()"& vbCrLf
strVAR = strVAR+"If objXMLHTTP.Status = 200 Then"& vbCrLf
strVAR = strVAR+" Set objADOStream = CreateObject(""ADODB.Stream"")"& vbCrLf
strVAR = strVAR+" objADOStream.Open"& vbCrLf
strVAR = strVAR+" objADOStream.Type = 1 'adTypeBinary"& vbCrLf
strVAR = strVAR+" objADOStream.Write objXMLHTTP.ResponseBody"& vbCrLf
strVAR = strVAR+" objADOStream.Position = 0 'Set the stream position to the start"& vbCrLf
strVAR = strVAR+" Set objFSO = Createobject(""Scripting.FileSystemObject"")"& vbCrLf
strVAR = strVAR+" If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation"& vbCrLf
strVAR = strVAR+" Set objFSO = Nothing"& vbCrLf
strVAR = strVAR+" objADOStream.SaveToFile strHDLocation"& vbCrLf
strVAR = strVAR+" objADOStream.Close"& vbCrLf
strVAR = strVAR+" Set objADOStream = Nothing"& vbCrLf
strVAR = strVAR+"End if"& vbCrLf
strVAR = strVAR+"Set objXMLHTTP = Nothing"& vbCrLf

'Write the VBSfile
set file = fso.createTextFile(SCRIPT,true)
file.writeline strVar
file.close: set file = nothing
set fso = nothing

'Run the VBSfile
Set oShell = CreateObject ("WScript.shell")
oShell.run SCRIPT,1,True
Set oShell = Nothing

'NOW READ IN THE RSS FILE WE JUST DOWNLOADED
'WE HAVE TO DO THIS IN TWO STEPS (DOWNLOAD THEN READ) SO WE DON'T HAVE TO DEAL WITH WINDOWS SECURITY ISSUES
strFileName=tfolder+"\rss.xml"
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objTextStream
Set objTextStream = objFSO.OpenTextFile(strFileName, 1)
RSSXML= objTextStream.ReadAll
set f=nothing
set fs=nothing

'PARSE XML
Set xmlDOM = CreateObject("MSXML2.DomDocument.3.0")
xmlDOM.async = False
xmlDOM.validateOnParse = False
xmlDom.resolveExternals = False

If not xmlDOM.LoadXml(RSSXML) Then
ErrorMessage = "Can not load XML:" & vbCRLF & xmlDOM.parseError.reason & vbCRLF & ErrorMessage
End If

Set xmlHttp = Nothing
Set RSSItems = xmlDOM.getElementsByTagName("item") ' collect all "items" from downloaded RSS
RSSItemsCount = RSSItems.Length-1

' if not <item>..</item> entries, then try to get <entry>..</entry>
if RSSItemsCount = -1 Then
Set RSSItems = xmlDOM.getElementsByTagName("entry") ' collect all "entry" (atom format) from downloaded RSS
RSSItemsCount = RSSItems.Length-1
End If

Set xmlDOM = Nothing

j = -1

For i = 0 To RSSItemsCount
Set RSSItem = RSSItems.Item(i)

RSSdescription=" "
RSSCommentsLink=" "

for each child in RSSItem.childNodes

Select case lcase(child.nodeName)
case "title"
RSStitle = child.text
case "link"
If child.Attributes.length>0 Then
RSSLink = child.GetAttribute("href")
if (RSSLink <> "") Then
if child.GetAttribute("rel") <> "alternate" Then
RSSLink = ""
End If
End If
End If ' if has attributes
If RSSLink = "" Then
RSSlink = child.text
End If
case "description"
RSSdescription = child.text
case "content" ' atom format
RSSdescription = child.text
case "published"' atom format
RSSDate = child.text
case "pubdate"
RSSDate = child.text
case "comments"
RSSCommentsLink = child.text
case "category"
Set CategoryItems = RSSItem.getElementsByTagName("category")
RSSCategory = ""
for each categoryitem in CategoryItems
if RSSCategory <> "" Then
RSSCategory = RSSCategory & ", "
End If

RSSCategory = RSSCategory & categoryitem.text
Next
End Select
next

j = J+1
if J<MaxNumberOfItems then
TABLEHTML = TABLEHTML+ "<TR><TD><B><FONT SIZE=+2>"&RSSTitle&"</FONT></B><BR><A HREF='"&RSSlink&"' TARGET='_BLANK'>"&RSSlink&"</A><BR>"&RSSDate&"<BR><A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Submit('"&RSSlink&"')""><FONT SIZE=+1>Send To <font color='#4AA02C'>µTorrent</FONT></FONT></A></TD></TR>"
ItemContent = ""
RSSLink = ""
End IF


Next

if RSSItemsCount > 0 then
section1.InnerHTML = "<center><A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Status()""><font color='#4AA02C'>µTorrent</FONT> Status</A></center><BR><TABLE BORDER=1 WIDTH=100%>"&TABLEHTML&"</TABLE>"
else
Document.Write ErrorMessage
End If

PleaseWaitFinish()

End Sub

Sub uTorrent_Status

'GO FETCH AND PARSE THE A TOKEN FROM µTorrent
TokenURL="HTTP://"&uTorrentServerID&":"&uTorrentServerPW&"@"&uTorrentIP&":"&uTorrentPort&"/gui/token.html"
Set xml = CreateObject("Microsoft.XMLHTTP")
xml.Open "GET", TokenURL, False
xml.SEND
TokenPage = xml.responseText
StartTag="<div id='token' style='display:none;'>"
EndTag="</div>"
Extract = ""
lArray = Split(TokenPage, StartTag)
If IsArray(lArray) Then
Extract = lArray(1)
lArray = Split(Extract, EndTag)
If IsArray(lArray) Then
Extract = lArray(0)
Else
Extract = ""
End If
End If
TOKEN = EXTRACT

Dim MyConnection, TheURL
TheURL="HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&list=1"
'Set Http = CreateObject("MSXML2.ServerXMLHTTP.6.0")
Set Http = CreateObject("MSXML2.XMLHTTP")
Http.Open "GET",TheURL,false
Http.Send
uTorrentStatus = Http.responseText

str1 = Replace(uTorrentStatus,"[""","<br><br>""",44)
str2 = Replace(str1,",","<br>")


count=1
a=Split(str2,"<br>")
for each x in a
IF InStr(x,"torrentc") <> 0 THEN
EXIT FOR
END IF
IF count=3 THEN
STATUSHTML = STATUSHTML + "<b>HASH: </b>" + x + "<BR>"
ELSE IF count = 5 THEN
STATUSHTML = STATUSHTML + "<b>FILE: </b>" + x + "<BR>"
ELSE IF count = 24 THEN
STATUSHTML = STATUSHTML + "<b>STATUS: </b>" + x + "<BR><BR>"
END IF
END IF
END IF
COUNT=COUNT+1
IF COUNT=25 THEN
COUNT=0
END IF
next

section1.InnerHTML = STATUSHTML

End Sub

Sub uTorrent_Submit(RSSlink)

'GO FETCH AND PARSE THE A TOKEN FROM µTorrent
TokenURL="HTTP://"&uTorrentServerID&":"&uTorrentServerPW&"@"&uTorrentIP&":"&uTorrentPort&"/gui/token.html"
Set xml = CreateObject("Microsoft.XMLHTTP")
xml.Open "GET", TokenURL, False
xml.SEND
TokenPage = xml.responseText
StartTag="<div id='token' style='display:none;'>"
EndTag="</div>"
Extract = ""
lArray = Split(TokenPage, StartTag)
If IsArray(lArray) Then
Extract = lArray(1)
lArray = Split(Extract, EndTag)
If IsArray(lArray) Then
Extract = lArray(0)
Else
Extract = ""
End If
End If
TOKEN = EXTRACT

Dim MyConnection, TheURL
TheURL="HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&list=1"
TheURL="HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&action=add-url&s="&RSSlink
'Set Http = CreateObject("MSXML2.ServerXMLHTTP.6.0")
Set Http = CreateObject("MSXML2.XMLHTTP")
Http.Open "GET",TheURL,false
Http.Send
uTorrentResponse = Http.responseText

section1.InnerHTML = "<B>TORRENT: </B>"&RSSlink&"<BR><B>SUBMITTED TO: <font color='#4AA02C'>µTorrent</FONT> SERVER : </B>"&uTorrentIP&"<BR><B>SERVER RESPONSE: </B>"&uTorrentResponse
Self.Scroll 0,0

End Sub




</script>




<SCRIPT LANGUAGE="JavaScript">
function PleaseWaitStart() {
document.getElementById('PleaseWaitPage').style.visibility = 'visible';
}
function PleaseWaitFinish() {
document.getElementById('PleaseWaitPage').style.visibility = 'hidden';
}

</script>


<title>µTORRENT RSS READER</title>
<HTA:APPLICATION
ID="objMyHTA"
APPLICATIONNAME="µTORRENT RSS READER"
SCROLL="auto"
SINGLEINSTANCE="no"
WINDOWSTATE="normal"
NAVIGABLE="yes"
ICON="magnify.exe"
>

</head>

<!-- ************************* -->

<body>
<CENTER>
<form name=select>
<select name='feed'>
<OPTION VALUE='http://ezrss.it/feed/'>EZRSS.IT</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/207'>THE PIRATE BAY - Highres Movies</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/208'>THE PIRATE BAY - Highres TV shows</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/205'>THE PIRATE BAY - TV shows</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/405'>THE PIRATE BAY - Wii Games</OPTION>
<OPTION VALUE='http://rss.bt-chat.com/?group=2'>BT-CHAT</OPTION>
<OPTION VALUE='http://www.d-addicts.com/rss.xml'>D-ADDICTS</OPTION>
</select>
<p><input id="getRSS" type="button" value="GET RSS FEED" name="getRSS"></p>
</form>
</CENTER>

<div id="PleaseWaitPage" style="position: absolute; visibility='hidden'; left:0px; top:0px; background-color: #FFFFFF; height: 1000%; width: 102%;">
<center><B>PLEASE WAIT....</B></center>
</div>

<div id="section1" name="section1"></div>
</body>
</html>

Link to comment
Share on other sites

Ver 1.3

Maybe someone can help with this one...

I had a request to add the vertor(dot)com rss feed...but the link node in their RSS feed points to their website, but there is a torrent node. Managed to parse it out, however submitting to uTorrent does not appear to work. With the HTA you can download the torrent, and if you copy the torrent link into uTorrent that works...but the submit to uTorrent link fails

....I am obviously doin' something wrong, but afraid I'm stumped

Instructions to use are the same....

-copy code below to notepad

-change uTorrentIP to the IP address of YOUR uTorrent client

-save file as utorrent.hta


<HTML>
<HEAD>
<script language="vbscript">
'EDIT THESE VARIABLES
uTorrentIP="192.168.1.100" 'THIS MUST BE CHANGED TO MATCH YOUR µTORRENT CLIENT/NAS...WHATEVER IT IS!!!!
uTorrentPort="9090"
uTorrentServerID="ADMIN"
uTorrentServerPW=""
MaxNumberOfItems = 100


Sub Window_OnLoad
self.ResizeTo 800,500
self.MoveTo 10,10
section1.InnerHTML = "<center><b>SELECT AN RSS TORRENT FEED</b></center>"
End Sub

Sub getRSS_OnClick

document.getElementById("PleaseWaitPage").style.visibility = "visible"

'Set tfolder to system temp folder path
set fso = createobject("scripting.filesystemobject")
Const TemporaryFolder = 2
Set tfolder = fso.GetSpecialFolder(TemporaryFolder)

TOKEN = getTOKEN

'GENERATE VBS SCRIPT THAT SAVES LATEST RSS XML FILE TO TEMP DIR.
RSSURL = window.document.select.feed.value
ErrorMessage = "Error has occured while trying to process " &RSSURL & "<BR>Pull the fire alarm and panic NOW!!"
SCRIPT = tfolder+"\GetRSS.vbs"
strVAR = "strHDLocation = """&tfolder&"\rss.xml"""& vbCrLf
strVAR = strVAR+"Set objXMLHTTP = CreateObject(""MSXML2.XMLHTTP"")"& vbCrLf
strVAR = strVAR+"objXMLHTTP.open ""GET"", """&RSSURL&""", false"& vbCrLf
strVAR = strVAR+"objXMLHTTP.send()"& vbCrLf
strVAR = strVAR+"If objXMLHTTP.Status = 200 Then"& vbCrLf
strVAR = strVAR+" Set objADOStream = CreateObject(""ADODB.Stream"")"& vbCrLf
strVAR = strVAR+" objADOStream.Open"& vbCrLf
strVAR = strVAR+" objADOStream.Type = 1 'adTypeBinary"& vbCrLf
strVAR = strVAR+" objADOStream.Write objXMLHTTP.ResponseBody"& vbCrLf
strVAR = strVAR+" objADOStream.Position = 0 'Set the stream position to the start"& vbCrLf
strVAR = strVAR+" Set objFSO = Createobject(""Scripting.FileSystemObject"")"& vbCrLf
strVAR = strVAR+" If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation"& vbCrLf
strVAR = strVAR+" Set objFSO = Nothing"& vbCrLf
strVAR = strVAR+" objADOStream.SaveToFile strHDLocation"& vbCrLf
strVAR = strVAR+" objADOStream.Close"& vbCrLf
strVAR = strVAR+" Set objADOStream = Nothing"& vbCrLf
strVAR = strVAR+"End if"& vbCrLf
strVAR = strVAR+"Set objXMLHTTP = Nothing"& vbCrLf

'Write the VBSfile
set file = fso.createTextFile(SCRIPT,true)
file.writeline strVar
file.close: set file = nothing
set file = nothing
set fso = Nothing

'Run the VBSfile
Set oShell = CreateObject ("WScript.shell")
oShell.run SCRIPT,1,True
Set oShell = Nothing

'NOW READ IN THE RSS FILE WE JUST DOWNLOADED
'WE DO THIS IN TWO STEPS (DOWNLOAD THEN READ) TO AVOID ISSUES WITH WINDOWS SECURITY AND UNREADABLE CHARACTERS IN THE XML
strFileName=tfolder+"\rss.xml"
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objTextStream
Set objTextStream = objFSO.OpenTextFile(strFileName, 1)
RSSXML= objTextStream.ReadAll
set objFSO = nothing
set objTextStream = nothing

'PARSE XML
Set xmlDOM = CreateObject("MSXML2.DomDocument.3.0")
xmlDOM.async = False
xmlDOM.validateOnParse = False
xmlDom.resolveExternals = False

If not xmlDOM.LoadXml(RSSXML) Then
ErrorMessage = "<B>Can not load XML:" & vbCRLF & xmlDOM.parseError.reason & "</B><BR>" & ErrorMessage & "<BR><BR>"&RSSXML
section1.InnerHTML = ErrorMessage
document.getElementById("PleaseWaitPage").style.visibility = "hidden"
set xmlDOM = Nothing
EXIT SUB
End If

Set RSSItems = xmlDOM.getElementsByTagName("item") ' collect all "items" from downloaded RSS
RSSItemsCount = RSSItems.Length-1

' if not <item>..</item> entries, then try to get <entry>..</entry>
if RSSItemsCount = -1 Then
Set RSSItems = xmlDOM.getElementsByTagName("entry") ' collect all "entry" (atom format) from downloaded RSS
RSSItemsCount = RSSItems.Length-1
End If

Set xmlDOM = Nothing

j = -1

For i = 0 To RSSItemsCount
Set RSSItem = RSSItems.Item(i)

RSSdescription=" "
RSSCommentsLink=" "

for each child in RSSItem.childNodes

Select case lcase(child.nodeName)
case "title"
RSStitle = child.text
case "link"
If child.Attributes.length>0 Then
RSSLink = child.GetAttribute("href")
if (RSSLink <> "") Then
if child.GetAttribute("rel") <> "alternate" Then
RSSLink = ""
End If
End If
End If ' if has attributes
If RSSLink = "" Then
RSSlink = child.text
End If
case "description"
RSSdescription = child.text
case "content" ' atom format
RSSdescription = child.text
case "published"' atom format
RSSDate = child.text
case "pubdate"
RSSDate = child.text
case "comments"
RSSCommentsLink = child.text

'ADDED THIS FOR VERTOR.COM THAT HAS A <torrentfile> node, the link node goes to their website
case "torrentfile"
If child.text <> "" Then
RSSlink = child.text
END IF

case "category"
Set CategoryItems = RSSItem.getElementsByTagName("category")
RSSCategory = ""
for each categoryitem in CategoryItems
if RSSCategory <> "" Then
RSSCategory = RSSCategory & ", "
End If

RSSCategory = RSSCategory & categoryitem.text
Next
End Select
next

j = J+1
if J<MaxNumberOfItems then
TABLEHTML = TABLEHTML+ "<TR><TD><B><FONT SIZE=+2>"&j+1&". "&RSSTitle&"</FONT></B><BR><A HREF='"&RSSlink&"' TARGET='_BLANK'>"&RSSlink&"</A><BR>"&RSSDate&"<BR><A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Submit ('"&RSSlink&"')""><FONT SIZE=+1>Send To <font color='#4AA02C'>µTorrent</FONT></FONT></A></TD></TR>"
ItemContent = ""
RSSLink = ""
End IF


Next

if RSSItemsCount > 0 then
section1.InnerHTML = "<center><A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Status()""><font color='#4AA02C'>µTorrent</FONT> Status</A></center><TABLE BORDER=1 WIDTH=100%>"&TABLEHTML&"</TABLE>"
else
section1.InnerHTML = ErrorMessage
End If

Set RSSItems = Nothing
Set tfolder = Nothing

document.getElementById("PleaseWaitPage").style.visibility = "hidden"

End Sub

Sub uTorrent_Status

TOKEN = getTOKEN

Dim MyConnection, TheURL
TheURL="HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&list=1"
Set Http = CreateObject("MSXML2.XMLHTTP")
Http.Open "GET",TheURL,false
Http.Send
uTorrentStatus = Http.responseText

count=1
a=Split((Replace((Replace(uTorrentStatus,"[""","<br><br>""",44)),",","<br>")),"<br>")
for each x in a
IF InStr(x,"torrentc") <> 0 THEN
EXIT FOR
END IF
IF count=3 THEN
STATUSHTML = STATUSHTML + "<b>HASH: </b>" + x + "<BR>"
ELSE IF count = 5 THEN
STATUSHTML = STATUSHTML + "<b>FILE: </b>" + x + "<BR>"
ELSE IF count = 24 THEN
STATUSHTML = STATUSHTML + "<b>STATUS: </b>" + x + "<BR><BR>"
END IF
END IF
END IF
COUNT=COUNT+1
IF COUNT=25 THEN
COUNT=0
END IF
next

Set Http = Nothing

section1.InnerHTML = STATUSHTML


End Sub

Sub uTorrent_Submit(RSSlink)

TOKEN = getTOKEN

Dim MyConnection, TheURL
TheURL="HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&action=add-url&s="&RSSlink
Set Http = CreateObject("MSXML2.XMLHTTP")
Http.Open "GET",TheURL,false
Http.Send
uTorrentResponse = Http.responseText
Set Http = Nothing
section1.InnerHTML = "<center><A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Status()""><font color='#4AA02C'>µTorrent</FONT> Status</A></center><BR><B>TORRENT: </B>"&RSSlink&"<BR><B>SUBMITTED TO <font color='#4AA02C'>µTorrent</FONT> SERVER: </B>"&uTorrentIP&"<BR><B>SERVER RESPONSE: </B>"&uTorrentResponse
Self.Scroll 0,0
End Sub



Function getTOKEN
'GO FETCH AND PARSE THE A TOKEN FROM µTorrent
TokenURL="HTTP://"&uTorrentServerID&":"&uTorrentServerPW&"@"&uTorrentIP&":"&uTorrentPort&"/gui/token.html"
Set xml = CreateObject("Microsoft.XMLHTTP")
xml.Open "GET", TokenURL, False
xml.SEND
TokenPage = xml.responseText
StartTag="<div id='token' style='display:none;'>"
EndTag="</div>"
Extract = ""
lArray = Split(TokenPage, StartTag)
If IsArray(lArray) Then
Extract = lArray(1)
lArray = Split(Extract, EndTag)
If IsArray(lArray) Then
getTOKEN = lArray(0)
Else
getTOKEN = ""
End If
End If
Set xml = Nothing
End Function

</script>

<title>µTORRENT RSS READER</title>
<HTA:APPLICATION
ID="µTORRENT RSS READER"
APPLICATIONNAME="µTORRENT RSS READER"
SCROLL="auto"
SINGLEINSTANCE="no"
WINDOWSTATE="normal"
NAVIGABLE="yes"
ICON="magnify.exe"
>
</HEAD>

<BODY>
<CENTER>
<form name=select>
<select name='feed'>
<OPTION VALUE='http://ezrss.it/feed/'>EZRSS.IT</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/207'>THE PIRATE BAY - Highres Movies</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/208'>THE PIRATE BAY - Highres TV shows</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/205'>THE PIRATE BAY - TV shows</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/405'>THE PIRATE BAY - Wii Games</OPTION>
<OPTION VALUE='http://rss.bt-chat.com/?group=2'>BT-CHAT</OPTION>
<OPTION VALUE='http://www.d-addicts.com/rss.xml'>D-ADDICTS</OPTION>
<OPTION VALUE='http://www.vertor.com/index.php?mod=rss_browse&id=0'>VERTOR</OPTION>
</select>
<P><input id="getRSS" type="button" value="GET RSS FEED" name="getRSS">
</form>
</CENTER>
<div id="section1" name="section1"></div>
<div id="PleaseWaitPage" style="position: absolute; visibility='hidden'; left:0px; top:0px; background-color: #FFFFFF; height: 1000%; width: 102%;">
<center><B>PLEASE WAIT....</B></center>
</div>
</BODY>
</HTML>

Link to comment
Share on other sites

You need to send the URL in an escaped fashion. Otherwise, the things after ampersands in the URLs will look like GET parameters for the µTorrent request rather than being a part of the URL being added as part of the request.

In JavaScript, you would have to call encodeURIComponent(). I'm not sure what the equivalent is in VBS.

YOU ARE CORRECT SIR!!

Always seems obvious after ...The VB function is escape()

Thanks very much for the hint

Ringo

Here is ver 1.4

Works now with the vertor rss feed thanks to Ultima


<HTML>
<HEAD>
<script language="vbscript">
'EDIT THESE VARIABLES
uTorrentIP="192.168.1.100" 'THIS MUST BE CHANGED TO MATCH YOUR µTORRENT CLIENT/NAS...WHATEVER IT IS!!!!
uTorrentPort="9090"
uTorrentServerID="ADMIN"
uTorrentServerPW=""
MaxNumberOfItems = 100

Sub Window_OnLoad
self.ResizeTo 800,500
self.MoveTo 10,10
section1.InnerHTML = "<center><b>SELECT AN RSS TORRENT FEED</b></center>"
End Sub

Sub getRSS_OnClick

document.getElementById("PleaseWaitPage").style.visibility = "visible"

'Set tfolder to system temp folder path
set fso = createobject("scripting.filesystemobject")
Const TemporaryFolder = 2
Set tfolder = fso.GetSpecialFolder(TemporaryFolder)

TOKEN = getTOKEN

'GENERATE VBS SCRIPT THAT SAVES LATEST RSS XML FILE TO TEMP DIR.
RSSURL = window.document.select.feed.value
ErrorMessage = "Error has occured while trying to process " &RSSURL & "<BR>Pull the fire alarm and panic NOW!!"
SCRIPT = tfolder+"\GetRSS.vbs"
strVAR = "strHDLocation = """&tfolder&"\rss.xml"""& vbCrLf
strVAR = strVAR+"Set objXMLHTTP = CreateObject(""MSXML2.XMLHTTP"")"& vbCrLf
strVAR = strVAR+"objXMLHTTP.open ""GET"", """&RSSURL&""", false"& vbCrLf
strVAR = strVAR+"objXMLHTTP.send()"& vbCrLf
strVAR = strVAR+"If objXMLHTTP.Status = 200 Then"& vbCrLf
strVAR = strVAR+" Set objADOStream = CreateObject(""ADODB.Stream"")"& vbCrLf
strVAR = strVAR+" objADOStream.Open"& vbCrLf
strVAR = strVAR+" objADOStream.Type = 1 'adTypeBinary"& vbCrLf
strVAR = strVAR+" objADOStream.Write objXMLHTTP.ResponseBody"& vbCrLf
strVAR = strVAR+" objADOStream.Position = 0 'Set the stream position to the start"& vbCrLf
strVAR = strVAR+" Set objFSO = Createobject(""Scripting.FileSystemObject"")"& vbCrLf
strVAR = strVAR+" If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation"& vbCrLf
strVAR = strVAR+" Set objFSO = Nothing"& vbCrLf
strVAR = strVAR+" objADOStream.SaveToFile strHDLocation"& vbCrLf
strVAR = strVAR+" objADOStream.Close"& vbCrLf
strVAR = strVAR+" Set objADOStream = Nothing"& vbCrLf
strVAR = strVAR+"End if"& vbCrLf
strVAR = strVAR+"Set objXMLHTTP = Nothing"& vbCrLf

'Write the VBSfile
set file = fso.createTextFile(SCRIPT,true)
file.writeline strVar
file.close: set file = nothing
set file = nothing
set fso = Nothing

'Run the VBSfile
Set oShell = CreateObject ("WScript.shell")
oShell.run SCRIPT,1,True
Set oShell = Nothing

'NOW READ IN THE RSS FILE WE JUST DOWNLOADED
'WE DO THIS IN TWO STEPS (DOWNLOAD THEN READ) TO AVOID ISSUES WITH WINDOWS SECURITY AND UNREADABLE CHARACTERS IN THE XML
strFileName=tfolder+"\rss.xml"
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objTextStream
Set objTextStream = objFSO.OpenTextFile(strFileName, 1)
RSSXML= objTextStream.ReadAll
set objFSO = nothing
set objTextStream = nothing

'PARSE XML
Set xmlDOM = CreateObject("MSXML2.DomDocument.3.0")
xmlDOM.async = False
xmlDOM.validateOnParse = False
xmlDom.resolveExternals = False

If not xmlDOM.LoadXml(RSSXML) Then
ErrorMessage = "<B>Can not load XML:" & vbCRLF & xmlDOM.parseError.reason & "</B><BR>" & ErrorMessage & "<BR><BR>"&RSSXML
section1.InnerHTML = ErrorMessage
document.getElementById("PleaseWaitPage").style.visibility = "hidden"
set xmlDOM = Nothing
EXIT SUB
End If

Set RSSItems = xmlDOM.getElementsByTagName("item") ' collect all "items" from downloaded RSS
RSSItemsCount = RSSItems.Length-1

' if not <item>..</item> entries, then try to get <entry>..</entry>
if RSSItemsCount = -1 Then
Set RSSItems = xmlDOM.getElementsByTagName("entry") ' collect all "entry" (atom format) from downloaded RSS
RSSItemsCount = RSSItems.Length-1
End If

Set xmlDOM = Nothing

j = -1

For i = 0 To RSSItemsCount
Set RSSItem = RSSItems.Item(i)

RSSdescription=" "
RSSCommentsLink=" "

for each child in RSSItem.childNodes

Select case lcase(child.nodeName)
case "title"
RSStitle = child.text
case "link"
If child.Attributes.length>0 Then
RSSLink = child.GetAttribute("href")
if (RSSLink <> "") Then
if child.GetAttribute("rel") <> "alternate" Then
RSSLink = ""
End If
End If
End If ' if has attributes
If RSSLink = "" Then
RSSlink = child.text
End If
case "description"
RSSdescription = child.text
case "content" ' atom format
RSSdescription = child.text
case "published"' atom format
RSSDate = child.text
case "pubdate"
RSSDate = child.text
case "comments"
RSSCommentsLink = child.text

'ADDED THIS FOR VERTOR.COM THAT HAS A <torrentfile> node, the link node goes to their website
case "torrentfile"
If child.text <> "" Then
RSSlink = child.text
END IF

case "category"
Set CategoryItems = RSSItem.getElementsByTagName("category")
RSSCategory = ""
for each categoryitem in CategoryItems
if RSSCategory <> "" Then
RSSCategory = RSSCategory & ", "
End If

RSSCategory = RSSCategory & categoryitem.text
Next
End Select
next

j = J+1
if J<MaxNumberOfItems then
TABLEHTML = TABLEHTML+ "<TR><TD><B><FONT SIZE=+2>"&j+1&". "&RSSTitle&"</FONT></B><BR><A HREF='"&RSSlink&"' TARGET='_BLANK'>"&RSSlink&"</A><BR>"&RSSDate&"<BR><A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Submit ('"&RSSlink&"')""><FONT SIZE=+1>Send To <font color='#4AA02C'>µTorrent</FONT></FONT></A></TD></TR>"
ItemContent = ""
RSSLink = ""
End IF


Next

if RSSItemsCount > 0 then
section1.InnerHTML = "<center><A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Status()""><font color='#4AA02C'>µTorrent</FONT> Status</A></center><TABLE BORDER=1 WIDTH=100%>"&TABLEHTML&"</TABLE>"
else
section1.InnerHTML = ErrorMessage
End If

Set RSSItems = Nothing
Set tfolder = Nothing

document.getElementById("PleaseWaitPage").style.visibility = "hidden"

End Sub

Sub uTorrent_Status

TOKEN = getTOKEN

Dim MyConnection, TheURL
TheURL="HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&list=1"
Set Http = CreateObject("MSXML2.XMLHTTP")
Http.Open "GET",TheURL,false
Http.Send
uTorrentStatus = Http.responseText

count=1
a=Split((Replace((Replace(uTorrentStatus,"[""","<br><br>""",44)),",","<br>")),"<br>")
for each x in a
IF InStr(x,"torrentc") <> 0 THEN
EXIT FOR
END IF
IF count=3 THEN
STATUSHTML = STATUSHTML + "<b>HASH: </b>" + x + "<BR>"
ELSE IF count = 5 THEN
STATUSHTML = STATUSHTML + "<b>FILE: </b>" + x + "<BR>"
ELSE IF count = 24 THEN
STATUSHTML = STATUSHTML + "<b>STATUS: </b>" + x + "<BR><BR>"
END IF
END IF
END IF
COUNT=COUNT+1
IF COUNT=25 THEN
COUNT=0
END IF
next

Set Http = Nothing

section1.InnerHTML = STATUSHTML


End Sub

Sub uTorrent_Submit(RSSlink)

TOKEN = getTOKEN

Dim MyConnection, TheURL
TheURL="HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&action=add-url&s="&Escape(RSSlink)
Set Http = CreateObject("MSXML2.XMLHTTP")
Http.Open "GET",TheURL,false
Http.Send
uTorrentResponse = Http.responseText
Set Http = Nothing
section1.InnerHTML = "<center><A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Status()""><font color='#4AA02C'>µTorrent</FONT> Status</A></center><BR><B>TORRENT: </B>"&RSSlink&"<BR><B>SUBMITTED TO <font color='#4AA02C'>µTorrent</FONT> SERVER: </B>"&uTorrentIP&"<BR><B>SERVER RESPONSE: </B>"&uTorrentResponse
Self.Scroll 0,0
End Sub


Function getTOKEN
'GO FETCH AND PARSE THE A TOKEN FROM µTorrent
TokenURL="HTTP://"&uTorrentServerID&":"&uTorrentServerPW&"@"&uTorrentIP&":"&uTorrentPort&"/gui/token.html"
Set xml = CreateObject("Microsoft.XMLHTTP")
xml.Open "GET", TokenURL, False
xml.SEND
TokenPage = xml.responseText
StartTag="<div id='token' style='display:none;'>"
EndTag="</div>"
Extract = ""
lArray = Split(TokenPage, StartTag)
If IsArray(lArray) Then
Extract = lArray(1)
lArray = Split(Extract, EndTag)
If IsArray(lArray) Then
getTOKEN = lArray(0)
Else
getTOKEN = ""
End If
End If
Set xml = Nothing
End Function

</script>

<title>µTORRENT RSS READER</title>
<HTA:APPLICATION
ID="µTORRENT RSS READER"
APPLICATIONNAME="µTORRENT RSS READER"
SCROLL="auto"
SINGLEINSTANCE="no"
WINDOWSTATE="normal"
NAVIGABLE="yes"
ICON="magnify.exe"
>
</HEAD>

<BODY>
<CENTER>
<form name=select>
<select name='feed'>
<OPTION VALUE='http://ezrss.it/feed/'>EZRSS.IT</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/207'>THE PIRATE BAY - Highres Movies</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/208'>THE PIRATE BAY - Highres TV shows</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/205'>THE PIRATE BAY - TV shows</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/405'>THE PIRATE BAY - Wii Games</OPTION>
<OPTION VALUE='http://rss.bt-chat.com/?group=2'>BT-CHAT</OPTION>
<OPTION VALUE='http://www.d-addicts.com/rss.xml'>D-ADDICTS</OPTION>
<OPTION VALUE='http://www.vertor.com/index.php?mod=rss_browse&id=0'>VERTOR</OPTION>
</select>
<P><input id="getRSS" type="button" value="GET RSS FEED" name="getRSS">
</form>
</CENTER>
<div id="section1" name="section1"></div>
<div id="PleaseWaitPage" style="position: absolute; visibility='hidden'; left:0px; top:0px; background-color: #FFFFFF; height: 1000%; width: 102%;">
<center><B>PLEASE WAIT....</B></center>
</div>
</BODY>
</HTML>

Link to comment
Share on other sites

  • 1 month later...

Instructions to use are the same....

-copy code below to notepad

-change uTorrentIP to the IP address of YOUR uTorrent client

-save file as utorrent.hta

<HTML>
<HEAD>
<script language="vbscript">
'EDIT THESE VARIABLES
uTorrentIP="192.168.1.100" 'THIS MUST BE CHANGED TO MATCH YOUR µTORRENT CLIENT/NAS...WHATEVER IT IS!!!!
uTorrentPort="9090"
uTorrentServerID="ADMIN"
uTorrentServerPW=""
MaxNumberOfItems = 100

Sub Window_OnLoad
self.ResizeTo 800,500
self.MoveTo 10,10
section1.InnerHTML = "<center><b>SELECT AN RSS TORRENT FEED OR ENTER DO A SEARCH</b></center>"
End Sub

Sub getRSS_OnClick

document.getElementById("PleaseWaitPage").style.visibility = "visible"

'Set tfolder to system temp folder path
set fso = createobject("scripting.filesystemobject")
Const TemporaryFolder = 2
Set tfolder = fso.GetSpecialFolder(TemporaryFolder)

TOKEN = getTOKEN

'GENERATE VBS SCRIPT THAT SAVES LATEST RSS XML FILE TO TEMP DIR.
RSSURL = window.document.select.feed.value
ErrorMessage = "Error has occured while trying to process " &RSSURL & "<BR>Pull the fire alarm and panic NOW!!"
SCRIPT = tfolder+"\GetRSS.vbs"
strVAR = "strHDLocation = """&tfolder&"\rss.xml"""& vbCrLf
strVAR = strVAR+"Set objXMLHTTP = CreateObject(""MSXML2.XMLHTTP"")"& vbCrLf
strVAR = strVAR+"objXMLHTTP.open ""GET"", """&RSSURL&""", false"& vbCrLf
strVAR = strVAR+"objXMLHTTP.send()"& vbCrLf
strVAR = strVAR+"If objXMLHTTP.Status = 200 Then"& vbCrLf
strVAR = strVAR+" Set objADOStream = CreateObject(""ADODB.Stream"")"& vbCrLf
strVAR = strVAR+" objADOStream.Open"& vbCrLf
strVAR = strVAR+" objADOStream.Type = 1 'adTypeBinary"& vbCrLf
strVAR = strVAR+" objADOStream.Write objXMLHTTP.ResponseBody"& vbCrLf
strVAR = strVAR+" objADOStream.Position = 0 'Set the stream position to the start"& vbCrLf
strVAR = strVAR+" Set objFSO = Createobject(""Scripting.FileSystemObject"")"& vbCrLf
strVAR = strVAR+" If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation"& vbCrLf
strVAR = strVAR+" Set objFSO = Nothing"& vbCrLf
strVAR = strVAR+" objADOStream.SaveToFile strHDLocation"& vbCrLf
strVAR = strVAR+" objADOStream.Close"& vbCrLf
strVAR = strVAR+" Set objADOStream = Nothing"& vbCrLf
strVAR = strVAR+"End if"& vbCrLf
strVAR = strVAR+"Set objXMLHTTP = Nothing"& vbCrLf

'Write the VBSfile
set file = fso.createTextFile(SCRIPT,true)
file.writeline strVar
file.close: set file = nothing
set file = nothing
set fso = Nothing

'Run the VBSfile
Set oShell = CreateObject ("WScript.shell")
oShell.run SCRIPT,1,True
Set oShell = Nothing

'NOW READ IN THE RSS FILE WE JUST DOWNLOADED
'WE DO THIS IN TWO STEPS (DOWNLOAD THEN READ) TO AVOID ISSUES WITH WINDOWS SECURITY AND UNREADABLE CHARACTERS IN THE XML
strFileName=tfolder+"\rss.xml"
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objTextStream
Set objTextStream = objFSO.OpenTextFile(strFileName, 1)
RSSXML= objTextStream.ReadAll
set objFSO = nothing
set objTextStream = nothing

'TEMP WORK AROUND FOR AMPERSAND IN <fileName> TAG Feb01.2011
'RSSXML=REPLACE(RSSXML,"Law.&.Order.SVU.12x15","Law.AND.Order.SVU.12x15")


'PARSE XML
Set xmlDOM = CreateObject("MSXML2.DomDocument.6.0")
xmlDOM.async = False
xmlDOM.validateOnParse = False
xmlDom.resolveExternals = False
xmlDom.SetProperty "ProhibitDTD", False 'THIS ALLOWS LOAD OF DTD WITH MSXML2.DomDocument.6.0


If not xmlDOM.LoadXml(RSSXML) Then
ErrorMessage = "<B>Can not load XML:" & vbCRLF & xmlDOM.parseError.reason & "</B><BR>" & ErrorMessage & "<BR><BR>XML FILE:<BR><BR>"&REPLACE(REPLACE(REPLACE(RSSXML,"<","<"),">",">"),CHR(10),"<BR>")
section1.InnerHTML = ErrorMessage
document.getElementById("PleaseWaitPage").style.visibility = "hidden"
set xmlDOM = Nothing
EXIT SUB
End If

Set RSSItems = xmlDOM.getElementsByTagName("item") ' collect all "items" from downloaded RSS
RSSItemsCount = RSSItems.Length-1

' if not <item>..</item> entries, then try to get <entry>..</entry>
if RSSItemsCount = -1 Then
Set RSSItems = xmlDOM.getElementsByTagName("entry") ' collect all "entry" (atom format) from downloaded RSS
RSSItemsCount = RSSItems.Length-1
End If

Set xmlDOM = Nothing

j = -1

For i = 0 To RSSItemsCount
Set RSSItem = RSSItems.Item(i)

RSSdescription=" "
RSSCommentsLink=" "

for each child in RSSItem.childNodes

Select case lcase(child.nodeName)
case "title"
RSStitle = child.text
case "link"
If child.Attributes.length>0 Then
RSSLink = child.GetAttribute("href")
if (RSSLink <> "") Then
if child.GetAttribute("rel") <> "alternate" Then
RSSLink = ""
End If
End If
End If ' if has attributes
If RSSLink = "" Then
RSSlink = child.text
End If
case "description"
RSSdescription = child.text
case "content" ' atom format
RSSdescription = child.text
case "published"' atom format
RSSDate = child.text
case "pubdate"
RSSDate = child.text
case "comments"
RSSCommentsLink = child.text

'ADDED WORK-AROUND FOR VERTOR.COM THAT HAS A <torrentfile> node, the link node goes to their website
case "torrentfile"
If child.text <> "" Then
RSSlink = child.text
END IF

case "category"
Set CategoryItems = RSSItem.getElementsByTagName("category")
RSSCategory = ""
for each categoryitem in CategoryItems
if RSSCategory <> "" Then
RSSCategory = RSSCategory & ", "
End If

RSSCategory = RSSCategory & categoryitem.text
Next
End Select
next

j = J+1
if J<MaxNumberOfItems then

'ADDED WORK-AROUND FOR IZRSS.IT TWITTER FEED THAT PUTS ACTUAL TORRENT LINK IN TITLE (will only work with "http://re.zoink.it/XXXXXXXX")
If RSSURL="http://twitter.com/statuses/user_timeline/37039456.rss" Then
RSSlink = Mid(RSSTitle,(Len(RSSTitle)-26))
END IF


TABLEHTML = TABLEHTML+ "<TR><TD><B><FONT SIZE=+2>"&j+1&". "&RSSTitle&"</FONT></B><BR><A HREF='"&RSSlink&"' TARGET='_BLANK'>"&RSSlink&"</A><BR>"&RSSDate&"<BR>"&RSSDescription&"<BR><CENTER><B><A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Submit ('"&RSSlink&"')""><FONT SIZE=+1>Send To <font color='#4AA02C'>µTorrent</FONT></FONT></A></B></CENTER></TD></TR>"
ItemContent = ""
RSSLink = ""
End IF


Next

if RSSItemsCount > 0 then
section1.InnerHTML = "<center><B><A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Status()""><font color='#4AA02C'>µTorrent</FONT> Status</A></B></center><TABLE BORDER=1 WIDTH=100%>"&TABLEHTML&"</TABLE>"
else
section1.InnerHTML = ErrorMessage
End If

Set RSSItems = Nothing
Set tfolder = Nothing

document.getElementById("PleaseWaitPage").style.visibility = "hidden"

End Sub


Sub uTorrent_Status

TOKEN = getTOKEN

Dim MyConnection, TheURL
TheURL="HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&list=1"
Set Http = CreateObject("MSXML2.XMLHTTP")
Http.Open "GET",TheURL,false
Http.Send
uTorrentStatus = Http.responseText

count=1
a=Split((Replace((Replace(uTorrentStatus,"[""","<br><br>""",44)),",","<br>")),"<br>")
for each x in a
IF InStr(x,"torrentc") <> 0 THEN
EXIT FOR
END IF
IF count=3 THEN
STATUSHTML = STATUSHTML + "<b>HASH: </b>" + replace(x,"""","") + "<BR>"
strHASH = replace(x,"""","")
ELSE IF count = 5 THEN
STATUSHTML = STATUSHTML + "<b>FILE: </b>" + x + "<BR>"
ELSE IF count = 7 THEN
STATUSHTML = STATUSHTML + "<b>DONE: </b>" & CInt(x)/10 & "%<BR>"
ELSE IF count = 24 THEN
STATUSHTML = STATUSHTML + "<b>STATUS: </b>" + x + "<BR>"
STATUSHTML = STATUSHTML & "<A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Remove ('"&strHASH&"')"">Remove Torrent</A><BR><BR>"
END IF
END IF
END IF
END IF

COUNT=COUNT+1
IF COUNT=25 THEN
COUNT=0
END IF
next

Set Http = Nothing

section1.InnerHTML = STATUSHTML


End Sub

Sub uTorrent_Submit(RSSlink)

TOKEN = getTOKEN

Dim MyConnection, TheURL
TheURL="HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&action=add-url&s="&Escape(RSSlink)
Set Http = CreateObject("MSXML2.XMLHTTP")
Http.Open "GET",TheURL,false
Http.Send
uTorrentResponse = Http.responseText
Set Http = Nothing
section1.InnerHTML = "<center><A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Status()""><font color='#4AA02C'>µTorrent</FONT> Status</A></center><BR><B>TORRENT: </B>"&RSSlink&"<BR><B>SUBMITTED TO <font color='#4AA02C'>µTorrent</FONT> SERVER: </B>"&uTorrentIP&"<BR><B>SERVER RESPONSE: </B>"&uTorrentResponse
Self.Scroll 0,0
End Sub

Sub uTorrent_Remove(strHASH)

TOKEN = getTOKEN

Dim MyConnection, TheURL
TheURL="HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&action=remove&hash="+strHASH
Set Http = CreateObject("MSXML2.XMLHTTP")
Http.Open "GET",TheURL,false
Http.Send
uTorrentResponse = Http.responseText
Set Http = Nothing
section1.InnerHTML = "<center><A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Status()""><font color='#4AA02C'>µTorrent</FONT> Status</A></center><BR><B>HASH: </B>"&strHASH&"<BR><B>REMOVED FROM <font color='#4AA02C'>µTorrent</FONT> SERVER: </B>"&uTorrentIP&"<BR><B>SERVER RESPONSE: </B>"&uTorrentResponse
Self.Scroll 0,0
End Sub


Function getTOKEN
'GO FETCH AND PARSE THE A TOKEN FROM µTorrent
TokenURL="HTTP://"&uTorrentServerID&":"&uTorrentServerPW&"@"&uTorrentIP&":"&uTorrentPort&"/gui/token.html"
Set xml = CreateObject("Microsoft.XMLHTTP")
xml.Open "GET", TokenURL, False
xml.SEND
TokenPage = xml.responseText
StartTag="<div id='token' style='display:none;'>"
EndTag="</div>"
getTOKEN = ""
lArray = Split(TokenPage, StartTag)
If IsArray(lArray) Then
Extract = lArray(1)
lArray = Split(Extract, EndTag)
If IsArray(lArray) Then
getTOKEN = lArray(0)
Else
getTOKEN = ""
End If
End If
Set xml = Nothing
End Function

</script>

<title>µTORRENT RSS READER</title>
<HTA:APPLICATION
ID="µTORRENT RSS READER"
APPLICATIONNAME="µTORRENT RSS READER"
SCROLL="auto"
SINGLEINSTANCE="no"
WINDOWSTATE="normal"
NAVIGABLE="yes"
ICON="magnify.exe"
>
</HEAD>

<BODY>
<CENTER>
<form name=select>
<select name='feed'>
<OPTION VALUE='http://ezrss.it/feed/'>EZRSS.IT</OPTION>
<OPTION VALUE='http://twitter.com/statuses/user_timeline/37039456.rss'>EZRSS.IT TWITTER FEED</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/207'>THE PIRATE BAY - Highres Movies</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/208'>THE PIRATE BAY - Highres TV shows</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/205'>THE PIRATE BAY - TV shows</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/405'>THE PIRATE BAY - Wii Games</OPTION>
<OPTION VALUE='http://rss.bt-chat.com/?group=2'>BT-CHAT</OPTION>
<OPTION VALUE='http://www.d-addicts.com/rss.xml'>D-ADDICTS</OPTION>
<OPTION VALUE='http://www.vertor.com/index.php?mod=rss_browse&id=0'>VERTOR</OPTION>
</select>
<P><input id="getRSS" type="button" value="GET RSS FEED" name="getRSS">
</form>


</CENTER>
<div id="section1" name="section1"></div>
<div id="PleaseWaitPage" style="position: absolute; visibility='hidden'; left:0px; top:0px; background-color: #FFFFFF; height: 1000%; width: 102%;">
<center><B>PLEASE WAIT....</B><BR><!--<img src="http://i154.photobucket.com/albums/s280/imtheone6710/please-wait-dots_3d.gif">--></center>
</div>
</BODY>
</HTML>

Link to comment
Share on other sites

  • 1 year later...

I am using:

HTTP://uTorrentIP:9090/gui/?token=TokenGoesHere&action=add-url&s=EscapedUrlGoesHere

This works fine with HTTP:// .torrent files....but is kinda dodgey with TPB magnet:// URLs.

The magnet torrent files appear in the "Downloading" queue, but with no seeders/leachers. Sometimes, if I leave the torrent in the downloading queue long enough or add additional torrents the magnet torrent suddenly starts working.

...the uTorrent I am using is built into a Buffalo NAS.

Copy code below into notepad, edit uTorrentIP to match your environment and save as utorrent.hta.


<HTML>
<HEAD>
<script language="vbscript">
on error resume next
'EDIT THESE VARIABLES
uTorrentIP="192.168.0.100" 'THIS MUST BE CHANGED TO MATCH YOUR µTORRENT CLIENT/NAS...WHATEVER IT IS!!!!
uTorrentPort="9090"
uTorrentServerID="admin"
uTorrentServerPW=""
MaxNumberOfItems = 100

Sub Window_OnLoad
self.ResizeTo 800,500
self.MoveTo 10,10
section1.InnerHTML = "<center><b>SELECT AN RSS TORRENT FEED OR ENTER DO A SEARCH</b></center>"
End Sub

Sub getRSS_OnClick

document.getElementById("PleaseWaitPage").style.visibility = "visible"

'Set tfolder to system temp folder path
set fso = createobject("scripting.filesystemobject")
Const TemporaryFolder = 2
Set tfolder = fso.GetSpecialFolder(TemporaryFolder)

TOKEN = getTOKEN

'GENERATE VBS SCRIPT THAT SAVES LATEST RSS XML FILE TO TEMP DIR.
RSSURL = window.document.select.feed.value
ErrorMessage = "Error has occured while trying to process " &RSSURL & "<BR>Pull the fire alarm and panic NOW!!"
SCRIPT = tfolder+"\GetRSS.vbs"
strVAR = "strHDLocation = """&tfolder&"\rss.xml"""& vbCrLf
strVAR = strVAR+"Set objXMLHTTP = CreateObject(""MSXML2.XMLHTTP"")"& vbCrLf
strVAR = strVAR+"objXMLHTTP.open ""GET"", """&RSSURL&""", false"& vbCrLf
strVAR = strVAR+"objXMLHTTP.send()"& vbCrLf
strVAR = strVAR+"If objXMLHTTP.Status = 200 Then"& vbCrLf
strVAR = strVAR+" Set objADOStream = CreateObject(""ADODB.Stream"")"& vbCrLf
strVAR = strVAR+" objADOStream.Open"& vbCrLf
strVAR = strVAR+" objADOStream.Type = 1 'adTypeBinary"& vbCrLf
strVAR = strVAR+" objADOStream.Write objXMLHTTP.ResponseBody"& vbCrLf
strVAR = strVAR+" objADOStream.Position = 0 'Set the stream position to the start"& vbCrLf
strVAR = strVAR+" Set objFSO = Createobject(""Scripting.FileSystemObject"")"& vbCrLf
strVAR = strVAR+" If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation"& vbCrLf
strVAR = strVAR+" Set objFSO = Nothing"& vbCrLf
strVAR = strVAR+" objADOStream.SaveToFile strHDLocation"& vbCrLf
strVAR = strVAR+" objADOStream.Close"& vbCrLf
strVAR = strVAR+" Set objADOStream = Nothing"& vbCrLf
strVAR = strVAR+"End if"& vbCrLf
strVAR = strVAR+"Set objXMLHTTP = Nothing"& vbCrLf

'Write the VBSfile
set file = fso.createTextFile(SCRIPT,true)
file.writeline strVar
file.close: set file = nothing
set file = nothing
set fso = Nothing

'Run the VBSfile
Set oShell = CreateObject ("WScript.shell")
oShell.run SCRIPT,1,True
Set oShell = Nothing

'NOW READ IN THE RSS FILE WE JUST DOWNLOADED
'WE DO THIS IN TWO STEPS (DOWNLOAD THEN READ) TO AVOID ISSUES WITH WINDOWS SECURITY AND UNREADABLE CHARACTERS IN THE XML
strFileName=tfolder+"\rss.xml"
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objTextStream
Set objTextStream = objFSO.OpenTextFile(strFileName, 1)
RSSXML= objTextStream.ReadAll
set objFSO = nothing
set objTextStream = nothing

'TEMP WORK AROUND FOR AMPERSAND IN <fileName> TAG Feb01.2011
'RSSXML=REPLACE(RSSXML,"Law.&.Order.SVU.12x15","Law.AND.Order.SVU.12x15")


'PARSE XML
'Set xmlDOM = CreateObject("MSXML2.DomDocument.3.0")
Set xmlDOM = CreateObject("MSXML2.DomDocument.6.0")
xmlDOM.async = False
xmlDOM.validateOnParse = False
xmlDom.resolveExternals = False
xmlDom.SetProperty "ProhibitDTD", False 'THIS ALLOWS LOAD OF DTD WITH MSXML2.DomDocument.6.0


If not xmlDOM.LoadXml(RSSXML) Then
ErrorMessage = "<B>Can not load XML:" & vbCRLF & xmlDOM.parseError.reason & "</B><BR>" & ErrorMessage & "<BR><BR>XML FILE:<BR><BR>"&REPLACE(REPLACE(REPLACE(RSSXML,"<","<"),">",">"),CHR(10),"<BR>")
section1.InnerHTML = ErrorMessage
document.getElementById("PleaseWaitPage").style.visibility = "hidden"
set xmlDOM = Nothing
EXIT SUB
End If

Set RSSItems = xmlDOM.getElementsByTagName("item") ' collect all "items" from downloaded RSS
RSSItemsCount = RSSItems.Length-1

' if not <item>..</item> entries, then try to get <entry>..</entry>
if RSSItemsCount = -1 Then
Set RSSItems = xmlDOM.getElementsByTagName("entry") ' collect all "entry" (atom format) from downloaded RSS
RSSItemsCount = RSSItems.Length-1
End If

Set xmlDOM = Nothing

j = -1

For i = 0 To RSSItemsCount
Set RSSItem = RSSItems.Item(i)

RSSdescription=" "
RSSCommentsLink=" "

for each child in RSSItem.childNodes

Select case lcase(child.nodeName)
case "title"
RSStitle = child.text
case "link"
If child.Attributes.length>0 Then
RSSLink = child.GetAttribute("href")
if (RSSLink <> "") Then
if child.GetAttribute("rel") <> "alternate" Then
RSSLink = ""
End If
End If
End If ' if has attributes
If RSSLink = "" Then
RSSlink = child.text
End If
case "description"
RSSdescription = child.text
case "content" ' atom format
RSSdescription = child.text
case "published"' atom format
RSSDate = child.text
case "pubdate"
RSSDate = child.text
case "comments"
RSSCommentsLink = child.text

'ADDED WORK-AROUND FOR VERTOR.COM THAT HAS A <torrentfile> node, the link node goes to their website
case "torrentfile"
If child.text <> "" Then
RSSlink = child.text
END IF

'ADDED WORK-AROUND FOR DAILY TORRENT.COM THAT HAS A <enclosure url> node, the link node goes to their website
case "enclosure"
'If child.text <> "" Then
RSSlink = child.Attributes.GetNamedItem("url").Text
'END IF

case "category"
Set CategoryItems = RSSItem.getElementsByTagName("category")
RSSCategory = ""
for each categoryitem in CategoryItems
if RSSCategory <> "" Then
RSSCategory = RSSCategory & ", "
End If

RSSCategory = RSSCategory & categoryitem.text
Next
End Select
next

j = J+1
if J<MaxNumberOfItems then

'ADDED WORK-AROUND FOR IZRSS.IT TWITTER FEED THAT PUTS ACTUAL TORRENT LINK IN TITLE (will only work with "http://re.zoink.it/XXXXXXXX")
If RSSURL="http://twitter.com/statuses/user_timeline/37039456.rss" Then
RSSlink = Mid(RSSTitle,(Len(RSSTitle)-26))
END IF


TABLEHTML = TABLEHTML+ "<TR><TD><B><FONT SIZE=+2>"&j+1&". "&RSSTitle&"</FONT></B><BR><A HREF='"&RSSlink&"' TARGET='_BLANK'>"&RSSlink&"</A><BR>"&RSSDate&"<BR>"&RSSDescription&"<BR><CENTER><B><A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Submit ('"&RSSlink&"')""><FONT SIZE=+1>Send To <font color='#4AA02C'>µTorrent</FONT></FONT></A></B></CENTER></TD></TR>"
ItemContent = ""
RSSLink = ""
End IF


Next

if RSSItemsCount > 0 then
section1.InnerHTML = "<center><B><A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Status()""><font color='#4AA02C'>µTorrent</FONT> Status</A></B></center><TABLE BORDER=1 WIDTH=100%>"&TABLEHTML&"</TABLE>"
else
section1.InnerHTML = ErrorMessage
End If

Set RSSItems = Nothing
Set tfolder = Nothing

document.getElementById("PleaseWaitPage").style.visibility = "hidden"

End Sub


Sub uTorrent_Status

TOKEN = getTOKEN

Dim MyConnection, TheURL
TheURL="HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&list=1"
Set Http = CreateObject("MSXML2.XMLHTTP")
Http.Open "GET",TheURL,false
Http.Send
uTorrentStatus = Http.responseText

count=1
a=Split((Replace((Replace(uTorrentStatus,"[""","<br><br>""",44)),",","<br>")),"<br>")
for each x in a
IF InStr(x,"torrentc") <> 0 THEN
EXIT FOR
END IF
IF count=3 THEN
STATUSHTML = STATUSHTML + "<b>HASH: </b>" + replace(x,"""","") + "<BR>"
strHASH = replace(x,"""","")
ELSE IF count = 5 THEN
STATUSHTML = STATUSHTML + "<b>FILE: </b>" + x + "<BR>"
ELSE IF count = 7 THEN
STATUSHTML = STATUSHTML + "<b>DONE: </b>" & CInt(x)/10 & "%<BR>"
ELSE IF count = 24 THEN
STATUSHTML = STATUSHTML + "<b>STATUS: </b>" + x + "<BR>"
STATUSHTML = STATUSHTML & "<A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Remove ('"&strHASH&"')"">Remove Torrent</A><BR><BR>"
END IF
END IF
END IF
END IF

COUNT=COUNT+1
IF COUNT=25 THEN
COUNT=0
END IF
next

Set Http = Nothing

section1.InnerHTML = STATUSHTML


End Sub

Sub uTorrent_Submit(RSSlink)

TOKEN = getTOKEN

Dim MyConnection, TheURL
TheURL="HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&action=add-url&s="&Escape(RSSlink)
Set Http = CreateObject("MSXML2.XMLHTTP")
Http.Open "GET",TheURL,false
Http.Send
uTorrentResponse = Http.responseText
Set Http = Nothing
section1.InnerHTML = "<center><A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Status()""><font color='#4AA02C'>µTorrent</FONT> Status</A></center><BR><B>TORRENT: </B>"&RSSlink&"<BR><B>SUBMITTED TO <font color='#4AA02C'>µTorrent</FONT> SERVER: </B>"&uTorrentIP&"<BR><B>SERVER RESPONSE: </B>"&uTorrentResponse
Self.Scroll 0,0
End Sub

Sub uTorrent_Remove(strHASH)

TOKEN = getTOKEN

Dim MyConnection, TheURL
TheURL="HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/?token="&TOKEN&"&action=remove&hash="+strHASH
Set Http = CreateObject("MSXML2.XMLHTTP")
Http.Open "GET",TheURL,false
Http.Send
uTorrentResponse = Http.responseText
Set Http = Nothing
section1.InnerHTML = "<center><A HREF='' LANGUAGE=""VBScript"" onClick=""uTorrent_Status()""><font color='#4AA02C'>µTorrent</FONT> Status</A></center><BR><B>HASH: </B>"&strHASH&"<BR><B>REMOVED FROM <font color='#4AA02C'>µTorrent</FONT> SERVER: </B>"&uTorrentIP&"<BR><B>SERVER RESPONSE: </B>"&uTorrentResponse
Self.Scroll 0,0
End Sub


Function getTOKEN
'GO FETCH AND PARSE THE A TOKEN FROM µTorrent
'TokenURL="HTTP://"&uTorrentServerID&":"&uTorrentServerPW&"@"&uTorrentIP&":"&uTorrentPort&"/gui/token.html"
TokenURL="HTTP://"&uTorrentIP&":"&uTorrentPort&"/gui/token.html"
Set xml = CreateObject("Microsoft.XMLHTTP")
'xml.Open "GET", TokenURL, False
xml.Open "GET", TokenURL, False, uTorrentServerID, uTorrentServerPW
xml.SEND
TokenPage = xml.responseText

StartTag="<div id='token' style='display:none;'>"
EndTag="</div>"
getTOKEN = ""
lArray = Split(TokenPage, StartTag)

If IsArray(lArray) Then
Extract = lArray(1)
lArray = Split(Extract, EndTag)
If IsArray(lArray) Then
getTOKEN = lArray(0)
Else
getTOKEN = ""
End If
End If
Set xml = Nothing



End Function


</script>

<title>µTORRENT RSS READER</title>
<HTA:APPLICATION
ID="µTORRENT RSS READER"
APPLICATIONNAME="µTORRENT RSS READER"
SCROLL="auto"
SINGLEINSTANCE="no"
WINDOWSTATE="normal"
NAVIGABLE="yes"
ICON="magnify.exe"
>
</HEAD>

<BODY>
<CENTER>
<form name=select>
<select name='feed'>
<OPTION VALUE='http://ezrss.it/feed/'>EZRSS.IT</OPTION>
<OPTION VALUE='http://eztv.ptain.info/cgi-bin/eztv.pl?id='>EZRSS.IT (alt)</OPTION>
<OPTION VALUE='http://twitter.com/statuses/user_timeline/37039456.rss'>EZRSS.IT TWITTER FEED</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/207'>THE PIRATE BAY - Highres Movies</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/208'>THE PIRATE BAY - Highres TV shows</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/205'>THE PIRATE BAY - TV shows</OPTION>
<OPTION VALUE='http://rss.thepiratebay.org/405'>THE PIRATE BAY - Wii Games</OPTION>
<OPTION VALUE='http://www.dailytvtorrents.org/rss/allshows'>DAILY TORRENTS</OPTION>
<OPTION VALUE='http://rss.bt-chat.com/?group=2'>BT-CHAT</OPTION>
<OPTION VALUE='http://www.d-addicts.com/rss.xml'>D-ADDICTS</OPTION>
<OPTION VALUE='http://www.vertor.com/index.php?mod=rss_browse&id=0'>VERTOR</OPTION>
<OPTION VALUE='http://showrss.karmorra.info/feeds/all.rss'>KARMORRA</OPTION>
</select>
<P><input id="getRSS" type="button" value="GET RSS FEED" name="getRSS">
</form>


</CENTER>
<div id="section1" name="section1"></div>
<div id="PleaseWaitPage" style="position: absolute; visibility='hidden'; left:0px; top:0px; background-color: #FFFFFF; height: 1000%; width: 102%;">
<center><B>PLEASE WAIT....</B><BR><!--<img src="http://i154.photobucket.com/albums/s280/imtheone6710/please-wait-dots_3d.gif">--></center>
</div>
</BODY>
</HTML>


Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...