RingoTheDog Posted January 25, 2011 Report Share Posted January 25, 2011 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.htaRingo<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 VARIABLESuTorrentIP="192.168.1.100" 'THIS MUST BE CHANGED TO MATCH YOUR uTORRENT CLIENT/NAS...WHATEVER IT IS!!!!uTorrentPort="9090"uTorrentServerID="ADMIN"uTorrentServerPW=""MaxNumberOfItems = 25Filter1 = "" 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 SubSub 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 Ifsection1.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 More sharing options...
RingoTheDog Posted January 26, 2011 Author Report Share Posted January 26, 2011 VER 1.1Let me know if you have issues (technical only pls)Ringo<html><head><script language="vbscript">'EDIT THESE VARIABLESuTorrentIP="192.168.1.100" 'THIS MUST BE CHANGED TO MATCH YOUR µTORRENT CLIENT/NAS...WHATEVER IT IS!!!!uTorrentPort="9090"uTorrentServerID="ADMIN"uTorrentServerPW=""MaxNumberOfItems = 100VERBOSITY = 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 SubSub 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 More sharing options...
RingoTheDog Posted January 28, 2011 Author Report Share Posted January 28, 2011 Ver 1.2Same 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 goesRingo(afraid the forum 'code' tags are not workin' for me..sry)<html><head><script language="vbscript">'EDIT THESE VARIABLESuTorrentIP="192.168.1.100" 'THIS MUST BE CHANGED TO MATCH YOUR µTORRENT CLIENT/NAS...WHATEVER IT IS!!!!uTorrentPort="9090"uTorrentServerID="ADMIN"uTorrentServerPW=""MaxNumberOfItems = 100Sub Window_OnLoad self.ResizeTo 800,500 self.MoveTo 10,10 section1.InnerHTML = "<center><b>SELECT AN RSS TORRENT FEED</b></center>"End SubSub 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 SubSub 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 = STATUSHTMLEnd SubSub 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,0End 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 More sharing options...
RingoTheDog Posted January 30, 2011 Author Report Share Posted January 30, 2011 Ver 1.3Maybe 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 VARIABLESuTorrentIP="192.168.1.100" 'THIS MUST BE CHANGED TO MATCH YOUR µTORRENT CLIENT/NAS...WHATEVER IT IS!!!!uTorrentPort="9090"uTorrentServerID="ADMIN"uTorrentServerPW=""MaxNumberOfItems = 100Sub Window_OnLoad self.ResizeTo 800,500 self.MoveTo 10,10 section1.InnerHTML = "<center><b>SELECT AN RSS TORRENT FEED</b></center>"End SubSub 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 SubSub 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 = STATUSHTMLEnd SubSub 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,0End SubFunction 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 = NothingEnd 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 More sharing options...
Ultima Posted January 30, 2011 Report Share Posted January 30, 2011 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. Link to comment Share on other sites More sharing options...
RingoTheDog Posted January 30, 2011 Author Report Share Posted January 30, 2011 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 hintRingoHere is ver 1.4Works now with the vertor rss feed thanks to Ultima <HTML><HEAD><script language="vbscript">'EDIT THESE VARIABLESuTorrentIP="192.168.1.100" 'THIS MUST BE CHANGED TO MATCH YOUR µTORRENT CLIENT/NAS...WHATEVER IT IS!!!!uTorrentPort="9090"uTorrentServerID="ADMIN"uTorrentServerPW=""MaxNumberOfItems = 100Sub Window_OnLoad self.ResizeTo 800,500 self.MoveTo 10,10 section1.InnerHTML = "<center><b>SELECT AN RSS TORRENT FEED</b></center>"End SubSub 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 SubSub 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 = STATUSHTMLEnd SubSub 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,0End SubFunction 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 = NothingEnd 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 More sharing options...
RingoTheDog Posted March 10, 2011 Author Report Share Posted March 10, 2011 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 VARIABLESuTorrentIP="192.168.1.100" 'THIS MUST BE CHANGED TO MATCH YOUR µTORRENT CLIENT/NAS...WHATEVER IT IS!!!!uTorrentPort="9090"uTorrentServerID="ADMIN"uTorrentServerPW=""MaxNumberOfItems = 100Sub 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 SubSub 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 SubSub 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 = STATUSHTMLEnd SubSub 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,0End SubSub 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,0End SubFunction 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 = NothingEnd 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 More sharing options...
RingoTheDog Posted July 15, 2012 Author Report Share Posted July 15, 2012 I am using:HTTP://uTorrentIP:9090/gui/?token=TokenGoesHere&action=add-url&s=EscapedUrlGoesHereThis 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 VARIABLESuTorrentIP="192.168.0.100" 'THIS MUST BE CHANGED TO MATCH YOUR µTORRENT CLIENT/NAS...WHATEVER IT IS!!!!uTorrentPort="9090"uTorrentServerID="admin"uTorrentServerPW=""MaxNumberOfItems = 100Sub 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 SubSub 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 SubSub 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 = STATUSHTMLEnd SubSub 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,0End SubSub 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,0End SubFunction 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 = NothingEnd 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 More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.