<%@language=javascript%> <% //http://zanstra.com/my/RegexMate/LinkThing/linkthing.asp?usr=doekman&pwd=geheim&dir=apps if(httpMethod()!='POST') { %> Linkthing

Linkthing




<% } else { try { frm_req("dir","usr","pwd"); if(frm("usr")!="doekman" || frm("pwd")!="geheim") { throw new Error("Not authorized."); } var dir=Server.MapPath(frm("dir")); var fso = Server.CreateObject("Scripting.FileSystemObject"); var FSO = { forReading:1, forWriting:2, forAppending:8}; if(!fso.FolderExists(dir)) throw new Error("The folder '{0}' doesn't exist".format(dir)); var prj=ReadJson(dir+"\\linkthing.json"); var baseUrl="http://feeds.delicious.com/feeds/json/"+prj.account+"/{0}?raw&count=100"; var menu=[], siteUrl=Request.ServerVariables("URL").Item().replace('linkthing.asp', frm("dir")+'/'); CreateMenu:for(var i=0; iError"+ex.message); } } //--| functions |--------------------------------------------------------------------------------- function EntryTemplate(obj){ // u: url, n: description(O), d: title, t: tags return tag("h2", tag("a", HtmlEncode(obj.d), {href: HtmlEncode(obj.u)})) + ("n" in obj ? htmlize(obj.n) : "

No description available

"); } function htmlize(s) { return '

'+String(s).replace(/(\r\n){2,}/g, '

').replace(/\r\n/g, '
')+'

'; } function ReadJson(filename) { return eval("("+ReadAll(filename)+")"); } function ReadAll(filename) { var f; if(!fso.FileExists(filename)) throw new Error("The file '{0}' doesn't exist".format(filename)); try { f = fso.OpenTextFile(filename, FSO.forReading, true); return f.ReadAll(); } finally { if(f) f.Close(); } } function WriteAll(filename, content) { write("Writing '"+filename+"'"); var f = fso.OpenTextFile(filename, FSO.forWriting, true, true); f.Write(content); f.Close(); writeln("; written
"); } function FetchJson(url) { var http = Server.CreateObject("MSXML2.ServerXMLHTTP"); http.open("GET", url, false); http.send(null); return eval("("+http.responseText+")"); } %>