func Pages.Account(ctx) { var name = ctx.QueryParams.TryGetFirst("name"); if(TypeOf(name) != "String") name = ""; var active = DB.LoginButton(ctx,false,name); var pages = [ { active = false, route = "/packages", text = "Packages" }, { active = false, route = "/upload", text = "Upload" }, active ]; var user = DB.GetAccountInfo(name); var motto_ta = TypeOf(user.motto) == "String" ? user.motto : ""; //var motto=Net.Http.HtmlEncode(motto_ta).Replace("\r","").Replace("\n","
"); var motto = ""; if(!active.active) { var builder = ""; func flush() { if(builder.Length > 0) { if(builder.StartsWith("http://") || builder.StartsWith("https://") || builder.StartsWith("ftp://") || builder.StartsWith("ftps://") || builder.StartsWith("magnet:")) { motto += {builder}; } else if(builder.StartsWith("mailto:")) { motto += {builder.Substring(7)}; } else if(builder.StartsWith("tel:")) { motto += {builder.Substring(4)}; } else { motto += Net.Http.HtmlEncode(builder); } builder=""; } } each(var item : motto_ta) { switch(item) { case ' ': flush(); motto += " "; break; case '\n': flush(); motto += "
"; break; case '\t': flush(); motto+= "&tab;"; break; case '\r': flush(); break; default: builder += item; break; } } flush(); } var html =

{user.accountName}

Packages|Reserved Prefixes
Logout

{user}
; return Shell($"Account {name}", pages,html); }