%@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+")");
}
%>