initial commit
This commit is contained in:
260
config/plausible.yml
Normal file
260
config/plausible.yml
Normal file
@@ -0,0 +1,260 @@
|
||||
- type: custom-api
|
||||
title: Site Statistics
|
||||
hide-header: true
|
||||
cache: 1m
|
||||
subrequests:
|
||||
# aveminakarabudak.com
|
||||
a1:
|
||||
url: ${PLAUSIBLE_BASE_URL}/api/v1/stats/realtime/visitors?site_id=aveminakarabudak.com
|
||||
headers: { Authorization: "Bearer ${PLAUSIBLE_TOKEN}" }
|
||||
s1:
|
||||
url: ${PLAUSIBLE_BASE_URL}/api/v1/stats/aggregate?site_id=aveminakarabudak.com&period=day&metrics=visitors,pageviews,visits
|
||||
headers: { Authorization: "Bearer ${PLAUSIBLE_TOKEN}" }
|
||||
# ayrisapart.com
|
||||
a2:
|
||||
url: ${PLAUSIBLE_BASE_URL}/api/v1/stats/realtime/visitors?site_id=ayrisapart.com
|
||||
headers: { Authorization: "Bearer ${PLAUSIBLE_TOKEN}" }
|
||||
s2:
|
||||
url: ${PLAUSIBLE_BASE_URL}/api/v1/stats/aggregate?site_id=ayrisapart.com&period=day&metrics=visitors,pageviews,visits
|
||||
headers: { Authorization: "Bearer ${PLAUSIBLE_TOKEN}" }
|
||||
# ayris.tech
|
||||
a3:
|
||||
url: ${PLAUSIBLE_BASE_URL}/api/v1/stats/realtime/visitors?site_id=ayris.tech
|
||||
headers: { Authorization: "Bearer ${PLAUSIBLE_TOKEN}" }
|
||||
s3:
|
||||
url: ${PLAUSIBLE_BASE_URL}/api/v1/stats/aggregate?site_id=ayris.tech&period=day&metrics=visitors,pageviews,visits
|
||||
headers: { Authorization: "Bearer ${PLAUSIBLE_TOKEN}" }
|
||||
# irisiptv.online
|
||||
a4:
|
||||
url: ${PLAUSIBLE_BASE_URL}/api/v1/stats/realtime/visitors?site_id=irisiptv.online
|
||||
headers: { Authorization: "Bearer ${PLAUSIBLE_TOKEN}" }
|
||||
s4:
|
||||
url: ${PLAUSIBLE_BASE_URL}/api/v1/stats/aggregate?site_id=irisiptv.online&period=day&metrics=visitors,pageviews,visits
|
||||
headers: { Authorization: "Bearer ${PLAUSIBLE_TOKEN}" }
|
||||
# screencapr.com
|
||||
a5:
|
||||
url: ${PLAUSIBLE_BASE_URL}/api/v1/stats/realtime/visitors?site_id=screencapr.com
|
||||
headers: { Authorization: "Bearer ${PLAUSIBLE_TOKEN}" }
|
||||
s5:
|
||||
url: ${PLAUSIBLE_BASE_URL}/api/v1/stats/aggregate?site_id=screencapr.com&period=day&metrics=visitors,pageviews,visits
|
||||
headers: { Authorization: "Bearer ${PLAUSIBLE_TOKEN}" }
|
||||
template: |
|
||||
<div class="plausible-multi-site">
|
||||
<style>
|
||||
.plausible-site-row {
|
||||
display: grid;
|
||||
grid-template-columns: auto 1fr auto;
|
||||
gap: 16px;
|
||||
padding: 16px;
|
||||
border-bottom: 1px solid var(--color-widget-content-border);
|
||||
align-items: center;
|
||||
}
|
||||
.plausible-site-row:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
.site-icon {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.site-icon img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
.site-info {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 2px;
|
||||
}
|
||||
.site-domain {
|
||||
font-weight: 800;
|
||||
color: var(--color-highlight);
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
.site-metrics {
|
||||
display: flex;
|
||||
gap: 12px;
|
||||
font-size: 0.85rem;
|
||||
color: var(--color-subdue);
|
||||
font-family: var(--font-family-mono);
|
||||
}
|
||||
.metric-item b {
|
||||
color: var(--color-primary);
|
||||
}
|
||||
.realtime-badge {
|
||||
background: rgba(34, 197, 94, 0.15);
|
||||
color: #22c55e;
|
||||
padding: 2px 10px;
|
||||
border-radius: 20px;
|
||||
font-size: 0.8rem;
|
||||
font-weight: 700;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
}
|
||||
.realtime-dot {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
background: currentColor;
|
||||
border-radius: 50%;
|
||||
animation: pulse 1.5s infinite;
|
||||
}
|
||||
@keyframes pulse {
|
||||
0% { opacity: 1; transform: scale(1); }
|
||||
50% { opacity: 0.4; transform: scale(1.2); }
|
||||
100% { opacity: 1; transform: scale(1); }
|
||||
}
|
||||
</style>
|
||||
|
||||
{{ $sites := . }}
|
||||
|
||||
<!-- Site Block 1 -->
|
||||
{{ $a1 := .Subrequest "a1" }}
|
||||
{{ $s1 := .Subrequest "s1" }}
|
||||
<div class="plausible-site-row">
|
||||
<div class="site-icon">
|
||||
<img src="https://icon.horse/icon/aveminakarabudak.com" alt="" />
|
||||
</div>
|
||||
<div class="site-info">
|
||||
<span class="site-domain">aveminakarabudak.com</span>
|
||||
<div class="site-metrics">
|
||||
{{ if eq $s1.Response.StatusCode 200 }}
|
||||
<span class="metric-item">Visitors: <b>{{ $s1.JSON.Get "results.visitors.value" }}</b></span>
|
||||
<span class="metric-item">Views: <b>{{ $s1.JSON.Get "results.pageviews.value" }}</b></span>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-status">
|
||||
{{ if eq $a1.Response.StatusCode 200 }}
|
||||
{{ $c1 := $a1.JSON.Raw }}
|
||||
{{ if ne $c1 "0" }}
|
||||
<div class="realtime-badge">
|
||||
<span class="realtime-dot"></span>
|
||||
{{ $c1 }} Active
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Site Block 2 -->
|
||||
{{ $a2 := .Subrequest "a2" }}
|
||||
{{ $s2 := .Subrequest "s2" }}
|
||||
<div class="plausible-site-row">
|
||||
<div class="site-icon">
|
||||
<img src="https://icon.horse/icon/ayrisapart.com" alt="" />
|
||||
</div>
|
||||
<div class="site-info">
|
||||
<span class="site-domain">ayrisapart.com</span>
|
||||
<div class="site-metrics">
|
||||
{{ if eq $s2.Response.StatusCode 200 }}
|
||||
<span class="metric-item">Visitors: <b>{{ $s2.JSON.Get "results.visitors.value" }}</b></span>
|
||||
<span class="metric-item">Views: <b>{{ $s2.JSON.Get "results.pageviews.value" }}</b></span>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-status">
|
||||
{{ if eq $a2.Response.StatusCode 200 }}
|
||||
{{ $c2 := $a2.JSON.Raw }}
|
||||
{{ if ne $c2 "0" }}
|
||||
<div class="realtime-badge">
|
||||
<span class="realtime-dot"></span>
|
||||
{{ $c2 }} Active
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Site Block 3 -->
|
||||
{{ $a3 := .Subrequest "a3" }}
|
||||
{{ $s3 := .Subrequest "s3" }}
|
||||
<div class="plausible-site-row">
|
||||
<div class="site-icon">
|
||||
<img src="https://icon.horse/icon/ayris.tech" alt="" />
|
||||
</div>
|
||||
<div class="site-info">
|
||||
<span class="site-domain">ayris.tech</span>
|
||||
<div class="site-metrics">
|
||||
{{ if eq $s3.Response.StatusCode 200 }}
|
||||
<span class="metric-item">Visitors: <b>{{ $s3.JSON.Get "results.visitors.value" }}</b></span>
|
||||
<span class="metric-item">Views: <b>{{ $s3.JSON.Get "results.pageviews.value" }}</b></span>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-status">
|
||||
{{ if eq $a3.Response.StatusCode 200 }}
|
||||
{{ $c3 := $a3.JSON.Raw }}
|
||||
{{ if ne $c3 "0" }}
|
||||
<div class="realtime-badge">
|
||||
<span class="realtime-dot"></span>
|
||||
{{ $c3 }} Active
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Site Block 4 -->
|
||||
{{ $a4 := .Subrequest "a4" }}
|
||||
{{ $s4 := .Subrequest "s4" }}
|
||||
<div class="plausible-site-row">
|
||||
<div class="site-icon">
|
||||
<img src="https://icon.horse/icon/irisiptv.online" alt="" />
|
||||
</div>
|
||||
<div class="site-info">
|
||||
<span class="site-domain">irisiptv.online</span>
|
||||
<div class="site-metrics">
|
||||
{{ if eq $s4.Response.StatusCode 200 }}
|
||||
<span class="metric-item">Visitors: <b>{{ $s4.JSON.Get "results.visitors.value" }}</b></span>
|
||||
<span class="metric-item">Views: <b>{{ $s4.JSON.Get "results.pageviews.value" }}</b></span>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-status">
|
||||
{{ if eq $a4.Response.StatusCode 200 }}
|
||||
{{ $c4 := $a4.JSON.Raw }}
|
||||
{{ if ne $c4 "0" }}
|
||||
<div class="realtime-badge">
|
||||
<span class="realtime-dot"></span>
|
||||
{{ $c4 }} Active
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Site Block 5 -->
|
||||
{{ $a5 := .Subrequest "a5" }}
|
||||
{{ $s5 := .Subrequest "s5" }}
|
||||
<div class="plausible-site-row">
|
||||
<div class="site-icon">
|
||||
<img src="https://icon.horse/icon/screencapr.com" alt="" />
|
||||
</div>
|
||||
<div class="site-info">
|
||||
<span class="site-domain">screencapr.com</span>
|
||||
<div class="site-metrics">
|
||||
{{ if eq $s5.Response.StatusCode 200 }}
|
||||
<span class="metric-item">Visitors: <b>{{ $s5.JSON.Get "results.visitors.value" }}</b></span>
|
||||
<span class="metric-item">Views: <b>{{ $s5.JSON.Get "results.pageviews.value" }}</b></span>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-status">
|
||||
{{ if eq $a5.Response.StatusCode 200 }}
|
||||
{{ $c5 := $a5.JSON.Raw }}
|
||||
{{ if ne $c5 "0" }}
|
||||
<div class="realtime-badge">
|
||||
<span class="realtime-dot"></span>
|
||||
{{ $c5 }} Active
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user