s1llyw0rdz/web/handler/widget_show.go

54 lines
1.5 KiB
Go

package handler
import (
"net/http"
"net/url"
)
func (h *Handler) showCurrentStatusJSView(w http.ResponseWriter, r *http.Request) {
name := r.URL.Query().Get("name")
escName := url.PathEscape(name)
w.Header().Set("Content-Type", "application/javascript")
w.Write([]byte(`
if (!document.getElementById("sillywordz")) {
document.writeln('<div id="sillywordz"><div id="sillywordz-username"></div><div id="sillywordz-number"></div><div id="sillywordz-content"></div></div>');
}
fetch("https://sillywordz.kissing.computer/users/` + escName + `/status.json")
.then(r => r.json())
.then(r => {
if (!r.number || r.number < 1) {
document.getElementById("sillywordz-number").innerHTML = "No updates yet.";
return;
}
document.getElementById("sillywordz-username").innerHTML =
'<a href="https://sillywordz.kissing.computer/users/` + escName + `" target="_blank">' +
r.author +
'</a> ' + r.face + ' ' + r.timeAgo;
document.getElementById("sillywordz-number").innerHTML =
"I wrote " + r.number + " words on my project!";
if (r.content && r.content.trim().length > 0) {
document.getElementById("sillywordz-content").innerHTML =
"And I had this to say about it: " + r.content;
}
});
`))
}
func (h *Handler) showCurrentStatusView(w http.ResponseWriter, r *http.Request) {
logged, _ := h.getUser(r)
name := r.URL.Query().Get("name")
if name == "" {
name = logged
}
h.renderLayout(w, "current_status", map[string]interface{}{
"name": name,
}, logged)
}