Last active
May 16, 2019 23:45
-
-
Save jrfondren/e9d60761ce727acabc6256ebd22e6115 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func ternary(a, b, c: bool): range[0..7] = | |
int(a) shl 2 and int(b) shl 1 and int(c) | |
proc renderVisibleRows(db: DbConn): string = | |
template rows(query: varargs[untyped]): untyped = | |
for row in db.fastRows(query): | |
result.add renderVisibleRow(row) | |
when defined(samplever): | |
rows(sql"SELECT * FROM domains WHERE rowid in (SELECT rowid FROM domains WHERE ruling IS NULL ORDER BY RANDOM() LIMIT 25) ORDER BY HOST ASC, OWNER ASC, USER ASC, DOMAIN ASC") | |
return | |
case ternary(config.skipDecided, config.limit > 0, config.filter != "") | |
of 0b000: rows(sql"SELECT * FROM domains ORDER BY HOST ASC, OWNER ASC, USER ASC, DOMAIN ASC") | |
of 0b001: rows(sql"SELECT * FROM domains WHERE domain LIKE ? ORDER BY HOST ASC, OWNER ASC, USER ASC, DOMAIN ASC", config.filter) | |
of 0b010: rows(sql"SELECT * FROM domains ORDER BY HOST ASC, OWNER ASC, USER ASC, DOMAIN ASC LIMIT ?", config.limit) | |
of 0b011: rows(sql"SELECT * FROM domains WHERE domain LIKE ? ORDER BY HOST ASC, OWNER ASC, USER ASC, DOMAIN ASC LIMIT ?", config.filter, config.limit) | |
of 0b100: rows(sql"SELECT * FROM domains WHERE ruling IS NULL ORDER BY HOST ASC, OWNER ASC, USER ASC, DOMAIN ASC") | |
of 0b101: rows(sql"SELECT * FROM domains WHERE domain LIKE ? AND ruling IS NULL ORDER BY HOST ASC, OWNER ASC, USER ASC, DOMAIN ASC", config.filter) | |
of 0b110: rows(sql"SELECT * FROM domains WHERE ruling IS NULL ORDER BY HOST ASC, OWNER ASC, USER ASC, DOMAIN ASC LIMIT ?", config.limit) | |
of 0b111: rows(sql"SELECT * FROM domains WHERE domain LIKE ? AND ruling IS NULL ORDER BY HOST ASC, OWNER ASC, USER ASC, DOMAIN ASC LIMIT ?", config.filter, config.limit) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment