+
+
Start time and end time specify the time range.
+
Text search supports quotes ("word1 and word2") to search phrases with those words in order. The word "or" works
+ as an or operator. Dash "-" works as a not operator.
+
+
+
+
+
\ No newline at end of file
diff --git a/buscribe/buscribe-web/line.less b/buscribe/buscribe-web/line.less
new file mode 100644
index 0000000..3ec1cad
--- /dev/null
+++ b/buscribe/buscribe-web/line.less
@@ -0,0 +1,81 @@
+@import "constants";
+
+.line {
+ display: grid;
+
+ grid-template-columns: [times] max-content [text] auto;
+ grid-template-rows: minmax(1.36em, max-content) min-content;
+ align-items: start;
+
+ margin-bottom: 0.1em;
+ padding: 0.3em;
+ max-width: 50em;
+
+ background: #606060;
+
+ .line_start_time {
+ color: lightgray;
+ font-family: monospace;
+ font-size: smaller;
+
+ margin-top: 1.5ex;
+
+ grid-column: times;
+ align-self: start;
+ }
+
+ .line_start_bus_time {
+ font-family: @sans-serif;
+
+ text-align: right;
+
+ grid-column: times;
+
+ padding: 0.2em;
+ align-self: start;
+ }
+
+ .line_text {
+ font-family: @serif;
+
+ padding: 0.2em;
+
+ margin-left: 0.3em;
+
+ grid-column: text;
+ //grid-row: span 2;
+ span.highlight {
+ font-weight: bold;
+ color: powderblue;
+ }
+ }
+
+ .line_speakers {
+ font-family: @sans-serif;
+ font-size: small;
+
+ padding: 0.2em;
+ margin-left: 0.3em;
+ margin-top: 0.2em;
+
+ grid-column: text;
+ }
+
+ .line_links {
+ text-align: right;
+ grid-column: times;
+
+ a {
+ margin-left: 0.5em;
+
+ font-size: small;
+ font-family: @sans-serif;
+ color: lightgray;
+ text-align: right;
+ }
+ }
+}
+
+.line.verified {
+ background: #575757;
+}
\ No newline at end of file
diff --git a/buscribe/buscribe-web/script.js b/buscribe/buscribe-web/script.js
new file mode 100644
index 0000000..6f61206
--- /dev/null
+++ b/buscribe/buscribe-web/script.js
@@ -0,0 +1,102 @@
+function onSiteLoad(e) {
+
+ document.getElementById("search_tools").addEventListener("keydown",
+ function (event) {
+ if (event.key === 'Enter') doSearch()
+ });
+
+ doSearch();
+}
+
+function query(text, start_time, end_time) {
+ let query_string = ""
+
+ const time_type = document.getElementById("UTC_time_radio").checked ? "" : "bus_";
+
+ if (start_time !== "") {
+ query_string += `${time_type}start_time=${start_time}`;
+ }
+ if (end_time !== "") {
+ query_string += `&${time_type}end_time=${end_time}`;
+ }
+ if (text !== "") {
+ query_string += `&query=${text}`
+ }
+
+ query_string += "&limit=30";
+
+ const channel = document.getElementById("channel_select").value;
+
+ fetch(`https://wubloader.raptorpond.com/buscribe/${channel}/json?${query_string}`)
+ .then(response => response.json())
+ .then(fillResults)
+
+}
+
+function doSearch() {
+ query(
+ document.getElementById("search_text").value,
+ document.getElementById("start_time").value,
+ document.getElementById("end_time").value
+ )
+}
+
+function fillResults(results) {
+ const results_element = document.getElementById("results")
+ results_element.innerHTML = ""
+
+ const channel = document.getElementById("channel_select").value;
+
+ for (const line of results) {
+ const line_div = document.createElement("div");
+
+ line_div.classList.add("line");
+ if (line.verifier) {
+ line_div.classList.add("verified");
+ }
+
+
+ line_div.innerHTML = `
+