alphaland JS html parser slight cleanup

This commit is contained in:
Austin 2021-11-19 00:42:49 -05:00
parent 39e1d5001a
commit 065eec5f22
3 changed files with 30 additions and 29 deletions

View File

@ -26,34 +26,35 @@ function parseHtml(html, limit, object, message, singleObject=false) {
}
for (var pos = 0; pos <= html.length; pos++) {
if (html.charAt(pos) == "{") { //first position
var firstFound = false;
var functionCall = false;
var secondPositionIdentifier = "";
if (html.charAt(pos) == "{") {
firstFound = true;
secondPositionIdentifier = "}";
} else if (html.charAt(pos) == "[") {
firstFound = true;
functionCall = true;
secondPositionIdentifier = "]";
}
if (firstFound) { //first position
for (var len = pos; len; len++) {
if (html.charAt(len) == "}") { //second position
if (html.charAt(len) == secondPositionIdentifier) {
var marker = "";
for (var d = pos; d < len+1; d++) { //data between the two positions
marker += html.charAt(d);
}
buffer = buffer.replace(marker, objectData[marker.substring(1, marker.length - 1)]); //using replace instead of replaceAll for compatibility
break;
}
}
}
else if (html.charAt(pos) == "[") { //first position
for (var len = pos; len; len++) {
if (html.charAt(len) == "]") { //second position
var marker = "";
for (var d = pos; d < len+1; d++) { //data between the two positions
marker += html.charAt(d);
}
var call = marker.substring(1, marker.length - 1); //grab the function name we wanna call
try {
call = window[call](objectData) //call the function with the object passed as a parameter
buffer = buffer.replace(marker, call); //replace the marker with the data returned from the call //using replace instead of replaceAll for compatibility
}
catch (error) {
//do nothing
if (!functionCall) {
buffer = buffer.replace(marker, objectData[marker.substring(1, marker.length - 1)]); //using replace instead of replaceAll for compatibility
} else {
try {
buffer = buffer.replace(marker, window[marker.substring(1, marker.length - 1)](objectData)); //replace the marker with the data returned from the call //using replace instead of replaceAll for compatibility
}
catch (error) {
//do nothing
}
}
break;
}

View File

@ -25,7 +25,7 @@ try
$pdo = new PDO("mysql:host=localhost;dbname=alphalanddatabase", "aa9205c5b776b2368833bec1e8b34e1c", "68adae776e087fb1b34baf439710cf94", $pdoOptions);
//general vars
$jsversion = "3.04"; //update this after updating JS, this will re-cache the latest js for users
$jsversion = "3.07"; //update this after updating JS, this will re-cache the latest js for users
$cssversion = "3.02"; //update this after updating CSS, this will re-cache the latest css for users
$siteName = "Alphaland"; //site name

View File

@ -1,9 +1,9 @@
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}};$jscomp.arrayIterator=function(a){return{next:$jscomp.arrayIteratorImpl(a)}};$jscomp.makeIterator=function(a){var b="undefined"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];return b?b.call(a):$jscomp.arrayIterator(a)};
function parseHtml(a,b,c,f,p){p=void 0===p?!1:p;for(var l="",m,d=0;d<b;d++){var n=p?c:c[d];m=a;if(void 0===n)break;for(var g=0;g<=a.length;g++)if("{"==a.charAt(g))for(var e=g;e;e++){if("}"==a.charAt(e)){for(var h="",k=g;k<e+1;k++)h+=a.charAt(k);m=m.replace(h,n[h.substring(1,h.length-1)]);break}}else if("["==a.charAt(g))for(e=g;e;e++)if("]"==a.charAt(e)){h="";for(k=g;k<e+1;k++)h+=a.charAt(k);e=h.substring(1,h.length-1);try{e=window[e](n),m=m.replace(h,e)}catch(u){}break}l+=m}""==l&&(l=f);return l}
function getJSON(a){return $.getJSON(a)}function getJSONCDS(a){return $.ajax(a,{xhrFields:{withCredentials:!0},crossDomain:!0})}function postJSONCDS(a,b){return $.ajax({type:"POST",url:a,xhrFields:{withCredentials:!0},crossDomain:!0,data:b,dataType:"json"})}function parseArrayArgs(a){var b=",";a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())c=c.value,b="string"==typeof c?b+("'"+c+"',"):b+(c+",");return b.substring(0,b.length-1)}
function staticPageHelper(a,b,c,f,p,l,m,d,n){n=void 0===n?"":n;""!==b&&(b='<div class="text-center"><img src="'+(b+'" class="loading-rotate" width="250" height="250" /></div>'),$(c).html(b));getJSONCDS(a+"?limit="+l+"&page="+p+"&keyword="+m+n).done(function(g){$(c).html(parseHtml(f,l,g,d))})}
function multiPageHelper(a,b,c,f,p,l,m,d,n,g,e,h){h=void 0===h?"":h;""!==f&&(f='<div class="text-center"><img src="'+(f+'" class="loading-rotate" width="250" height="250" /></div>'),$(p).html(f));var k="";b&&b.constructor===Array&&(k=parseArrayArgs(b));$(l).html("");getJSONCDS(c+"?limit="+n+"&page="+d+"&keyword="+g+h).done(function(u){var r=!1,t="",q=u.pageCount,y=u.pageResults,w=d+1,v=d-1;var x=d+3;w>q&&(w=q);0==v&&(v=1);1<q&&(r=!0);if(r){5>q?(r=1,x=q):v==d-1?(r=d>=q-2?q-3:d-1,--x):r=d;t+='<button type="button" onclick="'+
a+"(1"+k+')" class="btn btn-danger">\u00ab</button>';t+='<button type="button" onclick="'+a+"("+v+k+')" class="btn btn-danger">\u2039</button>';for(i=r;i<=x;i++)i<=q&&(t+='<button type="button" onclick="'+a+"("+i+k+')" '+(i==d?'style="background-color: #c82333;"':"")+'class="btn btn-danger">'+i+"</button>");t+='<button type="button" onclick="'+a+"("+w+k+')" class="btn btn-danger">\u203a</button>';t+='<button type="button" onclick="'+a+"("+q+k+')" class="btn btn-danger">\u00bb</button>'}$(p).html(parseHtml(m,
y,u,e));$(l).html(t)})}var Comments=function(a,b,c,f,p,l,m,d,n){this.assetid=a;this.commentsid=b;this.commentscontainer=c;this.buttonscontainer=f;this.successid=p;this.errorid=l;this.inputid=m;this.messageDelay=d;this.newObject=n;var g=this;getJSONCDS("https://api.alphaland.cc/game/info?id="+this.assetid).done(function(e){e.CommentsEnabled&&($(g.commentsid).show(),g.commentsPage())})};
function parseHtml(a,b,c,f,n){n=void 0===n?!1:n;for(var h="",k,e=0;e<b;e++){var l=n?c:c[e];k=a;if(void 0===l)break;for(var g=0;g<=a.length;g++){var m=!1,q=!1,d="";"{"==a.charAt(g)?(m=!0,d="}"):"["==a.charAt(g)&&(q=m=!0,d="]");if(m)for(m=g;m;m++)if(a.charAt(m)==d){d="";for(var r=g;r<m+1;r++)d+=a.charAt(r);if(q)try{k=k.replace(d,window[d.substring(1,d.length-1)](l))}catch(t){}else k=k.replace(d,l[d.substring(1,d.length-1)]);break}}h+=k}""==h&&(h=f);return h}function getJSON(a){return $.getJSON(a)}
function getJSONCDS(a){return $.ajax(a,{xhrFields:{withCredentials:!0},crossDomain:!0})}function postJSONCDS(a,b){return $.ajax({type:"POST",url:a,xhrFields:{withCredentials:!0},crossDomain:!0,data:b,dataType:"json"})}function parseArrayArgs(a){var b=",";a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())c=c.value,b="string"==typeof c?b+("'"+c+"',"):b+(c+",");return b.substring(0,b.length-1)}
function staticPageHelper(a,b,c,f,n,h,k,e,l){l=void 0===l?"":l;""!==b&&(b='<div class="text-center"><img src="'+(b+'" class="loading-rotate" width="250" height="250" /></div>'),$(c).html(b));getJSONCDS(a+"?limit="+h+"&page="+n+"&keyword="+k+l).done(function(g){$(c).html(parseHtml(f,h,g,e))})}
function multiPageHelper(a,b,c,f,n,h,k,e,l,g,m,q){q=void 0===q?"":q;""!==f&&(f='<div class="text-center"><img src="'+(f+'" class="loading-rotate" width="250" height="250" /></div>'),$(n).html(f));var d="";b&&b.constructor===Array&&(d=parseArrayArgs(b));$(h).html("");getJSONCDS(c+"?limit="+l+"&page="+e+"&keyword="+g+q).done(function(r){var t=!1,u="",p=r.pageCount,y=r.pageResults,w=e+1,v=e-1;var x=e+3;w>p&&(w=p);0==v&&(v=1);1<p&&(t=!0);if(t){5>p?(t=1,x=p):v==e-1?(t=e>=p-2?p-3:e-1,--x):t=e;u+='<button type="button" onclick="'+
a+"(1"+d+')" class="btn btn-danger">\u00ab</button>';u+='<button type="button" onclick="'+a+"("+v+d+')" class="btn btn-danger">\u2039</button>';for(i=t;i<=x;i++)i<=p&&(u+='<button type="button" onclick="'+a+"("+i+d+')" '+(i==e?'style="background-color: #c82333;"':"")+'class="btn btn-danger">'+i+"</button>");u+='<button type="button" onclick="'+a+"("+w+d+')" class="btn btn-danger">\u203a</button>';u+='<button type="button" onclick="'+a+"("+p+d+')" class="btn btn-danger">\u00bb</button>'}$(n).html(parseHtml(k,
y,r,m));$(h).html(u)})}var Comments=function(a,b,c,f,n,h,k,e,l){this.assetid=a;this.commentsid=b;this.commentscontainer=c;this.buttonscontainer=f;this.successid=n;this.errorid=h;this.inputid=k;this.messageDelay=e;this.newObject=l;var g=this;getJSONCDS("https://api.alphaland.cc/game/info?id="+this.assetid).done(function(m){m.CommentsEnabled&&($(g.commentsid).show(),g.commentsPage())})};
Comments.prototype.commentsPage=function(a){multiPageHelper(this.newObject+".commentsPage",[],"https://api.alphaland.cc/comments/","https://api.alphaland.cc/logo",this.commentscontainer,this.buttonscontainer,'<div class="row mb-2"><div class="card w-100"><div class="card-body"><h6>Comment by <a class="red-a" href="/profile/view?id={userid}">{username}</a> : <a style="color:grey;">{date}</a></h6><div class="row marg-bot-15"><div class="col-sm-1"><a href="/profile/view?id={userid}"><img class="card-img-top marg-bot-15" src="{thumbnail}" style="width:4rem;border-radius:100%;"></a></div><div class="col-sm" style="overflow:hidden;"><p>{comment}</p></div></div></div></div></div>',
void 0===a?1:a,10,"","No comments","&assetId="+this.assetid)};Comments.prototype.submitComment=function(a){var b=this;postJSONCDS("https://api.alphaland.cc/comments/newcomment?assetId="+this.assetid,JSON.stringify({comment:a})).done(function(c){c=c.alert;var f=b.errorid;"Comment Placed"==c&&(f=b.successid,$(b.inputid).val(""),b.commentsPage());$(f).text(c);$(f).show();window.scrollTo({top:0,behavior:"smooth"});setTimeout(function(){$(f).hide()},b.messageDelay)})};