Share the short link here too, and show the view count

The message under the picture now carries the tracked link rather than the raw
file, and the card reports how many times it has been opened.
This commit is contained in:
gator 2026-09-09 01:14:55 +00:00
parent 9051af0f3d
commit 755e831891

View file

@ -1141,12 +1141,9 @@ function bindShare() {
// fine, but clients that sniff the extension from the URL string are not.
// A filename query is accepted and ignored by the file service.
function named(url) {
if (!url) return "";
var pet = ((DATA && DATA.project && DATA.project.pet_name) || "video");
var t = ((DATA && DATA.script && DATA.script.title) || "");
var slug = (pet + " " + t).toLowerCase().replace(/[^a-z0-9]+/g, "-")
.replace(/^-|-$/g, "").slice(0, 40) || "video";
return url + (url.indexOf("?") < 0 ? "?" : "&") + "v=" + slug + ".mp4";
// Through our own domain so an open can be counted; a link straight to the
// file is invisible to us. 33 characters against 74.
return location.origin + "/v/" + String(pid || "").slice(0, 8);
}
function paint(r) {
@ -1169,8 +1166,16 @@ function bindShare() {
+ '<button type="button" class="btn ghost" id="sharecopy" style="margin-left:8px;margin-top:8px">Copy the message</button>'
+ '<a class="btn ghost" style="margin-left:8px;display:inline-block;text-decoration:none" '
+ 'href="' + esc(r.image) + '" download>Download the picture</a>'
+ '<p class="foot" style="margin:12px 0 0;word-break:break-all">' + esc(link) + '</p>'
+ '<p class="foot" style="margin:12px 0 0;word-break:break-all">' + esc(link)
+ '<span id="viewcount"></span></p>'
+ '</div></div>';
api("share_link", { email: email, project_id: pid }).then(function (s) {
var el = document.getElementById("viewcount");
if (el && s && s.ok) {
el.innerHTML = '<br>Opened ' + (s.views || 0) + ' time'
+ ((s.views === 1) ? '' : 's') + '.';
}
});
var sl = document.getElementById("sharelink");
if (sl) sl.onclick = async function () {
var title = (DATA && DATA.script && DATA.script.title) || "A video";