damus.io

damus.io website
git clone git://jb55.com/damus.io
Log | Files | Refs | README

commit 195c9fe604e5fbc90adc5bb974f88edc6665544a
parent 5f07f022f0f3dd0fdde6fc9b36e2a8645245df29
Author: William Casarin <jb55@jb55.com>
Date:   Mon, 31 Oct 2022 09:02:25 -0700

web: update favicon when there are new notifications

handy for pinned tabs

Diffstat:
Mimg/damus.svg | 151++++++++++++++++++++++++++++++++++++++++---------------------------------------
Aimg/damus_notif.svg | 190+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mwebv2/damus.js | 19+++++++++++++++++--
Awebv2/img/favicon-notif.ico | 0
Awebv2/img/favicon.ico | 0
5 files changed, 284 insertions(+), 76 deletions(-)

diff --git a/img/damus.svg b/img/damus.svg @@ -7,8 +7,8 @@ viewBox="0 0 256 256" version="1.1" id="svg5" - inkscape:version="1.2-alpha (0bd5040e, 2022-02-05)" - sodipodi:docname="damus2.svg" + inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)" + sodipodi:docname="damus.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" @@ -26,14 +26,16 @@ inkscape:document-units="mm" showgrid="false" inkscape:zoom="0.5946522" - inkscape:cx="405.27892" - inkscape:cy="491.04334" - inkscape:window-width="1435" - inkscape:window-height="844" + inkscape:cx="406.11975" + inkscape:cy="491.88416" + inkscape:window-width="1920" + inkscape:window-height="1060" inkscape:window-x="0" - inkscape:window-y="25" + inkscape:window-y="20" inkscape:window-maximized="0" - inkscape:current-layer="layer2" /> + inkscape:current-layer="svg5" + inkscape:showpageshadow="2" + inkscape:deskcolor="#d1d1d1" /> <defs id="defs2"> <linearGradient @@ -111,71 +113,72 @@ sodipodi:insensitive="true" /> </g> <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Logo" - sodipodi:insensitive="true"> - <path - style="fill:url(#linearGradient39367);fill-opacity:1;stroke:#ffffff;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 101.1429,213.87373 C 67.104473,239.1681 67.104473,42.67112 67.104473,42.67112 135.18122,57.58146 203.25844,72.491904 203.25758,105.24181 c -8.6e-4,32.74991 -68.07625,83.33755 -102.11468,108.63192 z" - id="path253" - sodipodi:insensitive="true" /> - </g> - <g - inkscape:groupmode="layer" - id="layer3" - inkscape:label="Poly" - sodipodi:insensitive="true"> - <path - style="fill:#ffffff;fill-opacity:0.325424;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 67.32839,76.766948 112.00424,99.41949 100.04873,52.226693 Z" - id="path4648" /> - <path - style="fill:#ffffff;fill-opacity:0.274576;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 111.45696,98.998695 107.00758,142.60261 70.077729,105.67276 Z" - id="path9299" /> - <path - style="fill:#ffffff;fill-opacity:0.379661;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 111.01202,99.221164 29.14343,-37.15232 25.80641,39.377006 z" - id="path9301" /> - <path - style="fill:#ffffff;fill-opacity:0.447458;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 111.45696,99.443631 57.17452,55.172309 -2.89209,-53.17009 z" - id="path9368" /> - <path - style="fill:#ffffff;fill-opacity:0.20678;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 106.78511,142.38015 62.06884,12.68073 -57.17452,-55.617249 z" - id="path9370" /> - <path - style="fill:#ffffff;fill-opacity:0.244068;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 106.78511,142.38015 -28.47603,32.9254 62.51378,7.56395 z" - id="path9372" /> - <path - style="fill:#ffffff;fill-opacity:0.216949;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 165.96186,101.44585 195.7727,125.02756 182.64703,78.754017 Z" - id="path9374" /> - </g> - <g - inkscape:groupmode="layer" - id="layer4" - inkscape:label="Vertices"> - <circle - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path27764" - cx="106.86934" - cy="142.38014" - r="2.0022209" /> - <circle - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="circle28773" - cx="111.54119" - cy="99.221161" - r="2.0022209" /> - <circle - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="circle29091" - cx="165.90784" - cy="101.36163" - r="2.0022209" /> + id="g407" + inkscape:label="Logo"> + <g + id="layer2" + inkscape:label="LogoStroke" + style="display:inline"> + <path + style="fill:url(#linearGradient39367);fill-opacity:1;stroke:#ffffff;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 101.1429,213.87373 C 67.104473,239.1681 67.104473,42.67112 67.104473,42.67112 135.18122,57.58146 203.25844,72.491904 203.25758,105.24181 c -8.6e-4,32.74991 -68.07625,83.33755 -102.11468,108.63192 z" + id="path253" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Poly"> + <path + style="fill:#ffffff;fill-opacity:0.325424;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 67.32839,76.766948 112.00424,99.41949 100.04873,52.226693 Z" + id="path4648" /> + <path + style="fill:#ffffff;fill-opacity:0.274576;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 111.45696,98.998695 107.00758,142.60261 70.077729,105.67276 Z" + id="path9299" /> + <path + style="fill:#ffffff;fill-opacity:0.379661;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 111.01202,99.221164 29.14343,-37.15232 25.80641,39.377006 z" + id="path9301" /> + <path + style="fill:#ffffff;fill-opacity:0.447458;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 111.45696,99.443631 57.17452,55.172309 -2.89209,-53.17009 z" + id="path9368" /> + <path + style="fill:#ffffff;fill-opacity:0.20678;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 106.78511,142.38015 62.06884,12.68073 -57.17452,-55.617249 z" + id="path9370" /> + <path + style="fill:#ffffff;fill-opacity:0.244068;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 106.78511,142.38015 -28.47603,32.9254 62.51378,7.56395 z" + id="path9372" /> + <path + style="fill:#ffffff;fill-opacity:0.216949;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 165.96186,101.44585 195.7727,125.02756 182.64703,78.754017 Z" + id="path9374" /> + </g> + <g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Vertices"> + <circle + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path27764" + cx="106.86934" + cy="142.38014" + r="2.0022209" /> + <circle + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="circle28773" + cx="111.54119" + cy="99.221161" + r="2.0022209" /> + <circle + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="circle29091" + cx="165.90784" + cy="101.36163" + r="2.0022209" /> + </g> </g> </svg> diff --git a/img/damus_notif.svg b/img/damus_notif.svg @@ -0,0 +1,190 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="256mm" + height="256mm" + viewBox="0 0 256 256" + version="1.1" + id="svg5" + inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)" + sodipodi:docname="damus_notif.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview7" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:blackoutopacity="0.0" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="0.5946522" + inkscape:cx="407.8014" + inkscape:cy="491.88416" + inkscape:window-width="1920" + inkscape:window-height="1060" + inkscape:window-x="0" + inkscape:window-y="20" + inkscape:window-maximized="0" + inkscape:current-layer="svg5" + inkscape:showpageshadow="2" + inkscape:deskcolor="#d1d1d1" /> + <defs + id="defs2"> + <linearGradient + inkscape:collect="always" + id="linearGradient39361"> + <stop + style="stop-color:#0de8ff;stop-opacity:0.78082192;" + offset="0" + id="stop39357" /> + <stop + style="stop-color:#d600fc;stop-opacity:0.95433789;" + offset="1" + id="stop39359" /> + </linearGradient> + <inkscape:path-effect + effect="bspline" + id="path-effect255" + is_visible="true" + lpeversion="1" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <linearGradient + inkscape:collect="always" + id="linearGradient2119"> + <stop + style="stop-color:#1c55ff;stop-opacity:1;" + offset="0" + id="stop2115" /> + <stop + style="stop-color:#7f35ab;stop-opacity:1;" + offset="0.5" + id="stop2123" /> + <stop + style="stop-color:#ff0bd6;stop-opacity:1;" + offset="1" + id="stop2117" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2119" + id="linearGradient2121" + x1="10.067794" + y1="248.81357" + x2="246.56145" + y2="7.1864405" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient39361" + id="linearGradient39367" + x1="62.104473" + y1="128.78963" + x2="208.25758" + y2="128.78963" + gradientUnits="userSpaceOnUse" /> + </defs> + <g + inkscape:label="Background" + inkscape:groupmode="layer" + id="layer1" + sodipodi:insensitive="true"> + <rect + style="fill:url(#linearGradient2121);fill-opacity:1;stroke-width:0.264583" + id="rect61" + width="256" + height="256" + x="-5.3875166e-08" + y="-1.0775033e-07" + ry="0" + inkscape:label="Gradient" + sodipodi:insensitive="true" /> + </g> + <g + id="g407" + inkscape:label="Logo"> + <g + id="layer2" + inkscape:label="LogoStroke" + style="display:inline"> + <path + style="fill:url(#linearGradient39367);fill-opacity:1;stroke:#ffffff;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 101.1429,213.87373 C 67.104473,239.1681 67.104473,42.67112 67.104473,42.67112 135.18122,57.58146 203.25844,72.491904 203.25758,105.24181 c -8.6e-4,32.74991 -68.07625,83.33755 -102.11468,108.63192 z" + id="path253" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Poly"> + <path + style="fill:#ffffff;fill-opacity:0.325424;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 67.32839,76.766948 112.00424,99.41949 100.04873,52.226693 Z" + id="path4648" /> + <path + style="fill:#ffffff;fill-opacity:0.274576;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 111.45696,98.998695 107.00758,142.60261 70.077729,105.67276 Z" + id="path9299" /> + <path + style="fill:#ffffff;fill-opacity:0.379661;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 111.01202,99.221164 29.14343,-37.15232 25.80641,39.377006 z" + id="path9301" /> + <path + style="fill:#ffffff;fill-opacity:0.447458;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 111.45696,99.443631 57.17452,55.172309 -2.89209,-53.17009 z" + id="path9368" /> + <path + style="fill:#ffffff;fill-opacity:0.20678;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 106.78511,142.38015 62.06884,12.68073 -57.17452,-55.617249 z" + id="path9370" /> + <path + style="fill:#ffffff;fill-opacity:0.244068;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 106.78511,142.38015 -28.47603,32.9254 62.51378,7.56395 z" + id="path9372" /> + <path + style="fill:#ffffff;fill-opacity:0.216949;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 165.96186,101.44585 195.7727,125.02756 182.64703,78.754017 Z" + id="path9374" /> + </g> + <g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Vertices"> + <circle + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path27764" + cx="106.86934" + cy="142.38014" + r="2.0022209" /> + <circle + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="circle28773" + cx="111.54119" + cy="99.221161" + r="2.0022209" /> + <circle + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="circle29091" + cx="165.90784" + cy="101.36163" + r="2.0022209" /> + </g> + </g> + <circle + style="fill:#ff2a2a;stroke-width:1.5875;stroke-linejoin:round;paint-order:stroke fill markers" + id="path1029" + cx="169.51305" + cy="171.74377" + r="66.864555" /> +</svg> diff --git a/webv2/damus.js b/webv2/damus.js @@ -54,13 +54,28 @@ const BOOTSTRAP_RELAYS = [ "wss://nostr-pub.wellorder.net" ] +function update_favicon(path) +{ + let link = document.querySelector("link[rel~='icon']"); + if (!link) { + link = document.createElement('link'); + link.rel = 'icon'; + document.getElementsByTagName('head')[0].appendChild(link); + } + + link.href = path; +} + function update_title(model) { if (document.visibilityState === 'visible') model.notifications = 0 - if (model.notifications === 0) + if (model.notifications === 0) { document.title = "Damus" - else + update_favicon("img/favicon.ico") + } else { document.title = `(${model.notifications}) Damus` + update_favicon("img/favicon-notif.ico") + } } async function damus_web_init() diff --git a/webv2/img/favicon-notif.ico b/webv2/img/favicon-notif.ico Binary files differ. diff --git a/webv2/img/favicon.ico b/webv2/img/favicon.ico Binary files differ.