summaryrefslogtreecommitdiff
path: root/themes/new_theme/layouts/partials/ranklist_fts5.html
blob: 3a295071fbccb75d5ffe6169e850297c948dca44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<script src="/js/jquery.js" type="text/javascript"></script>
<script src="/js/url-search-params.js" type="text/javascript"></script>
<script src="/js/loadingoverlay.min.js" type="text/javascript"></script>
<script src="/js/sql-fts5.js" type="module"></script>

<script language="Javascript">
	function escapeHtml( text ) {
		return text.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;" );
	}

// https://gist.github.com/igorgatis/d294fe714a4f523ac3a3
function hexdump(buffer, blockSize) {
    blockSize = blockSize || 16;
    var lines = [];
    var hex = "0123456789ABCDEF";
    for (var b = 0; b < buffer.length; b += blockSize) {
        var block = buffer.slice(b, Math.min(b + blockSize, buffer.length));
        var addr = ("0000" + b.toString(16)).slice(-4);
        var codes = block.split('').map(function (ch) {
            var code = ch.charCodeAt(0);
            return " " + hex[(0xF0 & code) >> 4] + hex[0x0F & code];
        }).join("");
        codes += "   ".repeat(blockSize - block.length);
        var chars = block.replace(/[\x00-\x1F\x20]/g, '.');
        chars +=  " ".repeat(blockSize - block.length);
        lines.push(addr + " " + codes + "  " + chars);
    }
    return lines.join("\n");
}

	function executeQuery( query ) {
		$( "#query" ).LoadingOverlay( "show" );
		
		$.ajax( {
			type : 'GET',
			url : '/index/posts.db',
			cache : false,
			timeout : 5000
		} )
		.error( function( x, t, m ) {
			var html = '';
			if( x.status > 0 ) {
				msg = x.responseText;
			} else {
				msg = t;
			}
			msg = escapeHtml( msg );
			html = "<pre><font color='red'>There was an error loading the Sqlite3/FTS5 index, reason: " + msg + "</font></pre>\n";
			$( '#ranklist' ).html( html );
			
			$( "#query" ).LoadingOverlay( "hide", true );			
		} )
		.success( function( data ) {
			
			var uInt8Array = new Uint8Array( data );
			//~ var html = "<pre>" + hexdump( data , 16 ) + "</pre>";
			//~ var db = new SQL.Database(uInt8Array);
			//~ var contents = db.exec("SELECT * FROM my_table");

			var html = "<pre>ranklist" + db + "</pre>";
			
			$( '#ranklist' ).html( html );
			
			
			$( "#query" ).LoadingOverlay( "hide" );
		} );
		
		$( "#query" ).LoadingOverlay( "hide", true );			
	}

	$( window ).load( function( ) {
		var paramsString = window.location.search;
		var searchParams = new URLSearchParams( paramsString );
		if( searchParams.has( "q" ) ) {
			executeQuery( searchParams.get( "q" ) );
		} else {
			// TODO: come up with something here
		}	// Show full page LoadingOverlay
	} );
</script>
<div id="ranklist">
	ranks
</div>