all repos — honk @ master

my fork of honk

views/wonk.js (view raw)

 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
export function addguesscontrols(elem, word, wordlist, xid) {
	var host = elem.parentElement
	elem.innerHTML = "loading..."

	host.correctAnswer = word
	host.guesses = []
	host.xid = xid
	var xhr = new XMLHttpRequest()
        xhr.open("GET", "/bloat/wonkles?w=" + escape(wordlist))
        xhr.responseType = "json"
        xhr.onload = function() { 
		var wordlist = xhr.response.wordlist
		var validguesses = {}
		console.log("valid " + wordlist.length)
		for (var i = 0; i < wordlist.length; i++) {
			validguesses[wordlist[i]] = true
		}
		host.validGuesses = validguesses
		var div = document.createElement( 'div' );
		div.innerHTML = "<p><input> <button onclick='return makeaguess(this)'>guess</button>"
		host.append(div)
		elem.remove()
	}
        xhr.send()
}
export function makeaguess(btn) {
	var host = btn.parentElement.parentElement.parentElement
	var correct = host.correctAnswer
	var valid = host.validGuesses
	var inp = btn.previousElementSibling
	var g = inp.value.toLowerCase()
	var res = ""
	if (valid[g]) {
		var letters = {}
		var obfu = ""
		for (var i = 0; i < correct.length; i++) {
			var l = correct[i]
			letters[l] = (letters[l] | 0) + 1
		}
		for (var i = 0; i < g.length && i < correct.length; i++) {
			if (g[i] == correct[i]) {
				letters[g[i]] = letters[g[i]] - 1
			}
		}
		for (var i = 0; i < g.length; i++) {
			if (i < correct.length && g[i] == correct[i]) {
				res += g[i].toUpperCase()
				obfu += "&#129001;"
			} else if (letters[g[i]] > 0) {
				res += g[i]
				obfu += "&#129000;"
				letters[g[i]] = letters[g[i]] - 1
			} else {
				obfu += "&#11035;"
				res += "."
			}
		}

		var div = document.createElement( 'div' );
		div.innerHTML = "<p style='font-family: monospace'>" + res
		host.append(div)
		host.guesses.push(obfu)
	} else {
		var div = document.createElement( 'div' );
		div.innerHTML = "<p> invalid guess"
		host.append(div)
	}
	var div = document.createElement( 'div' );
	if (res == correct.toUpperCase()) {
		var mess = "<p>you are very smart!"
		mess += "<p>" + host.xid
		for (var i = 0; i < host.guesses.length; i++) {
			mess += "<p>" + host.guesses[i]
		}
		div.innerHTML = mess
		if (typeof(csrftoken) != "undefined")
			post("/zonkit", encode({"CSRF": csrftoken, "wherefore": "wonk", "guesses": host.guesses.join("<p>"), "what": host.xid}))
	} else {
		div.innerHTML = "<p><input> <button onclick='return makeaguess(this)'>guess</button>"
	}
	host.append(div)
	btn.parentElement.remove()
}