mirror of
https://github.com/aljazceru/njump.git
synced 2026-02-21 14:04:25 +01:00
162 lines
5.4 KiB
HTML
162 lines
5.4 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
{{if eq .type "profile"}}
|
|
<title>Nostr Public Key {{.npub}}</title>
|
|
<meta property="og:site_name" content="{{.npub}}" />
|
|
<meta property="og:title" content="{{.title}}" />
|
|
{{ if .metadata.Picture }}
|
|
<meta property="og:image" content="{{.metadata.Picture}}" />
|
|
<meta property="twitter:image" content="{{.proxy}}{{.metadata.Picture}}" />
|
|
{{end}} {{ if .metadata.About }}
|
|
<meta property="og:description" content="{{.metadata.About}}" />
|
|
{{end}}
|
|
<meta property="twitter:card" content="summary" />
|
|
{{end}}
|
|
<!----------->
|
|
{{ if eq .type "event" }}
|
|
<title>Nostr Event {{.nevent}}</title>
|
|
<meta property="og:site_name" content="{{.authorLong}}" />
|
|
<meta property="og:title" content="{{.title}}" />
|
|
<meta name="twitter:title" content="{{.twitterTitle}}" />
|
|
<!---->
|
|
{{ if .textImageURL }}
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
<meta name="twitter:site" content="@nostrprotocol" />
|
|
<meta property="og:image" content="{{.textImageURL}}" />
|
|
<meta name="twitter:image" content="{{.textImageURL}}" />
|
|
{{ else }}
|
|
<!---->
|
|
<meta property="twitter:card" content="summary" />
|
|
{{ if .image }}
|
|
<meta property="og:image" content="{{.image}}" />
|
|
<meta name="twitter:image" content="{{.proxy}}{{.image}}" />
|
|
{{end}} {{ if .video }}
|
|
<meta property="og:video" content="{{.video}}" />
|
|
<meta property="og:video:secure_url" content="{{.video}}" />
|
|
<meta property="og:video:type" content="video/{{.videoType}}" />
|
|
{{end}}
|
|
<!---->
|
|
{{end}}
|
|
<meta property="og:description" content="{{.description}}" />
|
|
<meta name="twitter:description" content="{{.description}}" />
|
|
{{end}}
|
|
<!----------->
|
|
{{ if eq .type "address" }}
|
|
<title>Nostr Address {{.naddr}}</title>
|
|
{{end}}
|
|
<!----------->
|
|
|
|
<link rel="stylesheet" href="/static/styles.css" />
|
|
|
|
</head>
|
|
<body>
|
|
|
|
<div class="top">
|
|
<a href="https://nostr.com" class="nostr_link">What is nostr?</a>
|
|
</div>
|
|
|
|
<div class="container_wrapper">
|
|
<div class="container profile">
|
|
<div class="column column1">
|
|
<div class="pic-wrapper">
|
|
<img class="pic" src="{{ .metadata.Picture }}" />
|
|
<svg width="0" height="0" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
|
<defs>
|
|
<clipPath id="svg-shape" clipPathUnits="objectBoundingBox">
|
|
<path
|
|
transform="scale(0.005, 0.005)"
|
|
d="M100,200c43.8,0,68.2,0,84.1-15.9C200,168.2,200,143.8,200,100s0-68.2-15.9-84.1C168.2,0,143.8,0,100,0S31.8,0,15.9,15.9C0,31.8,0,56.2,0,100s0,68.2,15.9,84.1C31.8,200,56.2,200,100,200z"
|
|
/>
|
|
</clipPath>
|
|
</defs>
|
|
</svg>
|
|
</div>
|
|
<div class="last_update">
|
|
Last update:<br/>
|
|
{{.createdAt}}
|
|
</div>
|
|
</div>
|
|
<div class="column column2">
|
|
<div class="field name">
|
|
{{.content_json.name}} <span class="display">{{.content_json.display_name}}</span>
|
|
</div>
|
|
<div class="field separator"></div>
|
|
<div class="field">
|
|
<a href="{{.content_json.website}}">{{.content_json.website}}</a>
|
|
</div>
|
|
<div class="field">
|
|
{{.content_json.about}}
|
|
</div>
|
|
<div class="field separator"></div>
|
|
<div class="field">
|
|
<div class="label">Public key</div>
|
|
{{.npub}}
|
|
</div>
|
|
<div class="field">
|
|
<div class="label">NIP-05</div>
|
|
{{.content_json.nip05}}
|
|
</div>
|
|
<div class="field">
|
|
<div class="label">LN Address</div>
|
|
{{.content_json.lud16}}
|
|
</div>
|
|
<div class="field">
|
|
<div class="label">Metadata Event</div>
|
|
{{.nevent}}
|
|
</div>
|
|
<div class="field">
|
|
<div class="label">JSON</div>
|
|
{{.eventJSON}}
|
|
</div>
|
|
<div class="field separator"></div>
|
|
</div>
|
|
<div class="column column3">
|
|
<div class="title">Open {{.type}} in</div>
|
|
<div class="clients">
|
|
{{range .clients}}
|
|
<div class="btn">
|
|
<a class="client" href="{{.url}}">{{.name}}</a>
|
|
<span></span>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- <div style="display: flex; justify-content: flex-end">
|
|
<span>
|
|
powered by <a href="https://git.fiatjaf.com/njump">njump</a>
|
|
</span>
|
|
</div> -->
|
|
|
|
<script>
|
|
const type = '{{.type}}'
|
|
let counts = []
|
|
let clients = document.querySelectorAll('.client')
|
|
for (let i = 0; i < clients.length; i++) {
|
|
let name = clients[i].innerText
|
|
let url = clients[i].href
|
|
let key = 'nj:' + type + ':' + name
|
|
let count = parseInt(localStorage.getItem(key) || 0)
|
|
clients[i].nextElementSibling.innerText = count
|
|
clients[i].addEventListener('click', () => {
|
|
localStorage.setItem(key, count + 1)
|
|
})
|
|
counts.push([count, name, url])
|
|
}
|
|
counts.sort((a, b) => b[0] - a[0])
|
|
let tailsum = counts.slice(1).reduce((acc, c) => acc + c[0], 0)
|
|
|
|
if (location.hash !== '#noredirect') {
|
|
if (counts[0][0] - tailsum > 10) {
|
|
location.href = counts[0][2]
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<div class="background"></div>
|
|
|
|
</body>
|
|
</html>
|