allow tor-only services

This commit is contained in:
pluja 2024-03-04 08:51:34 +01:00
parent 5a74906fc7
commit 45f44acfc7
2 changed files with 141 additions and 302 deletions

View File

@ -1,27 +1,10 @@
<section class="p-2 mt-8 mb-2"> <section class="p-2 mt-8 mb-2">
<!-- Pending Approval Notice --> <!-- Pending Approval Notice -->
{{if .Service.Pending}} {{if .Service.Pending}}
<div <div class="flex justify-center items-center my-4 font-bold text-md md:text-md">
class="flex justify-center items-center my-4 font-bold text-md md:text-md"
>
<div class="flex justify-center items-center"> <div class="flex justify-center items-center">
<a <a href="#" target="_blank" class="flex justify-center items-center px-2 py-1 m-1 space-x-2 text-center text-yellow-500 rounded border border-yellow-600 transition duration-300 bg-zinc-900 hover:border-yellow-600 hover:text-yellow-600">
href="#" <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 text-yellow-600 tabler-alert" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
target="_blank"
class="flex justify-center items-center px-2 py-1 m-1 space-x-2 text-center text-yellow-500 rounded border border-yellow-600 transition duration-300 bg-zinc-900 hover:border-yellow-600 hover:text-yellow-600"
>
<svg
xmlns="http://www.w3.org/2000/svg"
class="w-4 h-4 text-yellow-600 tabler-alert"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<circle cx="12" cy="12" r="9"></circle> <circle cx="12" cy="12" r="9"></circle>
<line x1="12" y1="8" x2="12" y2="12"></line> <line x1="12" y1="8" x2="12" y2="12"></line>
@ -35,27 +18,12 @@
<!-- Service Header --> <!-- Service Header -->
<div class="flex justify-center items-center space-x-4"> <div class="flex justify-center items-center space-x-4">
<img <img class="rounded-full size-10 md:size-14 bg-white/25" src="/api/g/picture/{{.Service.ID}}" alt="" />
class="rounded-full size-10 md:size-14 bg-white/25"
src="/api/g/picture/{{.Service.ID}}"
alt=""
/>
<span class="flex justify-center items-center capitalize"> <span class="flex justify-center items-center capitalize">
<span class="text-xl font-bold md:text-2xl">{{.Service.Name}}</span> <span class="text-xl font-bold md:text-2xl">{{.Service.Name}}</span>
{{if .Service.Verified}} {{if .Service.Verified}}
<a href="/about#verified"> <a href="/about#verified">
<svg <svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6 ml-1 {{if .Service.Verified}}text-blue-400/80{{else}} text-white/20 {{end}} discount-check-filled" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
xmlns="http://www.w3.org/2000/svg"
class="w-6 h-6 ml-1 {{if .Service.Verified}}text-blue-400/80{{else}} text-white/20 {{end}} discount-check-filled"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path <path
d="M12.01 2.011a3.2 3.2 0 0 1 2.113 .797l.154 .145l.698 .698a1.2 1.2 0 0 0 .71 .341l.135 .008h1a3.2 3.2 0 0 1 3.195 3.018l.005 .182v1c0 .27 .092 .533 .258 .743l.09 .1l.697 .698a3.2 3.2 0 0 1 .147 4.382l-.145 .154l-.698 .698a1.2 1.2 0 0 0 -.341 .71l-.008 .135v1a3.2 3.2 0 0 1 -3.018 3.195l-.182 .005h-1a1.2 1.2 0 0 0 -.743 .258l-.1 .09l-.698 .697a3.2 3.2 0 0 1 -4.382 .147l-.154 -.145l-.698 -.698a1.2 1.2 0 0 0 -.71 -.341l-.135 -.008h-1a3.2 3.2 0 0 1 -3.195 -3.018l-.005 -.182v-1a1.2 1.2 0 0 0 -.258 -.743l-.09 -.1l-.697 -.698a3.2 3.2 0 0 1 -.147 -4.382l.145 -.154l.698 -.698a1.2 1.2 0 0 0 .341 -.71l.008 -.135v-1l.005 -.182a3.2 3.2 0 0 1 3.013 -3.013l.182 -.005h1a1.2 1.2 0 0 0 .743 -.258l.1 -.09l.698 -.697a3.2 3.2 0 0 1 2.269 -.944zm3.697 7.282a1 1 0 0 0 -1.414 0l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.32 1.497l2 2l.094 .083a1 1 0 0 0 1.32 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z" d="M12.01 2.011a3.2 3.2 0 0 1 2.113 .797l.154 .145l.698 .698a1.2 1.2 0 0 0 .71 .341l.135 .008h1a3.2 3.2 0 0 1 3.195 3.018l.005 .182v1c0 .27 .092 .533 .258 .743l.09 .1l.697 .698a3.2 3.2 0 0 1 .147 4.382l-.145 .154l-.698 .698a1.2 1.2 0 0 0 -.341 .71l-.008 .135v1a3.2 3.2 0 0 1 -3.018 3.195l-.182 .005h-1a1.2 1.2 0 0 0 -.743 .258l-.1 .09l-.698 .697a3.2 3.2 0 0 1 -4.382 .147l-.154 -.145l-.698 -.698a1.2 1.2 0 0 0 -.71 -.341l-.135 -.008h-1a3.2 3.2 0 0 1 -3.195 -3.018l-.005 -.182v-1a1.2 1.2 0 0 0 -.258 -.743l-.09 -.1l-.697 -.698a3.2 3.2 0 0 1 -.147 -4.382l.145 -.154l.698 -.698a1.2 1.2 0 0 0 .341 -.71l.008 -.135v-1l.005 -.182a3.2 3.2 0 0 1 3.013 -3.013l.182 -.005h1a1.2 1.2 0 0 0 .743 -.258l.1 -.09l.698 -.697a3.2 3.2 0 0 1 2.269 -.944zm3.697 7.282a1 1 0 0 0 -1.414 0l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.32 1.497l2 2l.094 .083a1 1 0 0 0 1.32 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z"
@ -69,34 +37,20 @@
</div> </div>
<!-- Links --> <!-- Links -->
<div <div class="flex justify-center items-center mt-4 text-sm font-bold md:text-md">
class="flex justify-center items-center mt-4 text-sm font-bold md:text-md" <div class="flex flex-wrap justify-center items-center space-x-2">
> {{if ne (len .Service.Urls) 0}}
<div class="flex flex-wrap justify-center items-center"> <div class="inline-flex">
<a <a href="{{randomElem .Service.Urls}}{{.Service.Referral}}" target="_blank"
href="{{randomElem .Service.Urls}}{{.Service.Referral}}" class="flex justify-center items-center px-2 py-1 text-center text-gray-300
target="_blank" {{if ne .Service.Referral ""}}rounded-l{{else}}rounded{{end}}
class="flex justify-center items-center px-2 py-1 m-1 space-x-2 text-center text-gray-300 rounded border border-gray-600 transition duration-300 bg-zinc-900 hover:border-lime-600 hover:text-lime-600" border border-gray-600 transition duration-300 bg-zinc-900 hover:border-lime-600 hover:text-lime-600">
> <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 tabler-world-www" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<svg
xmlns="http://www.w3.org/2000/svg"
class="w-4 h-4 tabler-world-www"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M19.5 7a9 9 0 0 0 -7.5 -4a8.991 8.991 0 0 0 -7.484 4"></path> <path d="M19.5 7a9 9 0 0 0 -7.5 -4a8.991 8.991 0 0 0 -7.484 4"></path>
<path d="M11.5 3a16.989 16.989 0 0 0 -1.826 4"></path> <path d="M11.5 3a16.989 16.989 0 0 0 -1.826 4"></path>
<path d="M12.5 3a16.989 16.989 0 0 1 1.828 4"></path> <path d="M12.5 3a16.989 16.989 0 0 1 1.828 4"></path>
<path <path d="M19.5 17a9 9 0 0 1 -7.5 4a8.991 8.991 0 0 1 -7.484 -4"></path>
d="M19.5 17a9 9 0 0 1 -7.5 4a8.991 8.991 0 0 1 -7.484 -4"
></path>
<path d="M11.5 21a16.989 16.989 0 0 1 -1.826 -4"></path> <path d="M11.5 21a16.989 16.989 0 0 1 -1.826 -4"></path>
<path d="M12.5 21a16.989 16.989 0 0 0 1.828 -4"></path> <path d="M12.5 21a16.989 16.989 0 0 0 1.828 -4"></path>
<path d="M2 10l1 4l1.5 -4l1.5 4l1 -4"></path> <path d="M2 10l1 4l1.5 -4l1.5 4l1 -4"></path>
@ -105,111 +59,75 @@
</svg> </svg>
<span>Website</span> <span>Website</span>
</a> </a>
{{if ne (len .Service.TosUrls) 0}}
<a {{if ne .Service.Referral ""}}
href="{{index .Service.TosUrls 0}}" <a href="{{randomElem .Service.Urls}}" class="flex justify-center items-center px-2 py-1 text-center text-gray-300 rounded-r border border-gray-600 transition duration-300 bg-zinc-900 hover:border-lime-600 hover:text-lime-600">
target="_blank" <svg xmlns="http://www.w3.org/2000/svg" class="size-5 link-off" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
class="flex justify-center items-center px-2 py-1 m-1 space-x-2 text-center text-gray-300 rounded border border-gray-600 transition duration-300 bg-zinc-900 hover:border-lime-600 hover:text-lime-600"
>
<svg
xmlns="http://www.w3.org/2000/svg"
class="w-4 h-4 tabler-report-search"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M8 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h5.697"></path>
<path d="M18 12v-5a2 2 0 0 0 -2 -2h-2"></path>
<path
d="M8 3m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v0a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z"
></path>
<path d="M8 11h4"></path>
<path d="M8 15h3"></path>
<path
d="M16.5 17.5m-2.5 0a2.5 2.5 0 1 0 5 0a2.5 2.5 0 1 0 -5 0"
></path>
<path d="M18.5 19.5l2.5 2.5"></path>
</svg>
<span>ToS</span>
</a>
{{end}} {{if ne .Service.Referral ""}}
<a
href="{{randomElem .Service.Urls}}"
class="flex justify-center items-center px-2 py-1 m-1 space-x-2 text-center text-gray-300 rounded border border-gray-600 transition duration-300 bg-zinc-900 hover:border-lime-600 hover:text-lime-600"
>
<svg
xmlns="http://www.w3.org/2000/svg"
class="size-5 link-off"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M9 15l3 -3m2 -2l1 -1" /> <path d="M9 15l3 -3m2 -2l1 -1" />
<path d="M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464" /> <path d="M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464" />
<path d="M3 3l18 18" /> <path d="M3 3l18 18" />
<path <path d="M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463" />
d="M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463"
/>
</svg> </svg>
</a> </a>
{{end}} {{if ne (len .Service.OnionUrls) 0}} {{end}}
<a </div>
href="{{randomElem .Service.OnionUrls}}" {{end}}
target="_blank"
class="flex justify-center items-center px-2 py-1 m-1 space-x-2 text-center text-purple-600 rounded border border-purple-900 transition duration-300 bg-zinc-900 hover:border-lime-600 hover:text-lime-600" {{if ne (len .Service.OnionUrls) 0}}
> <div class="inline-flex">
<svg <a href="{{randomElem .Service.OnionUrls}}{{.Service.Referral}}" target="_blank"
xmlns="http://www.w3.org/2000/svg" class="flex justify-center items-center px-2 py-1 text-center text-purple-600
class="w-4 h-4 tabler-target" {{if ne .Service.Referral ""}}rounded-l{{else}}rounded{{end}}
width="24" border border-purple-900 transition duration-300 bg-zinc-900 hover:border-lime-600 hover:text-lime-600">
height="24" <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 tabler-target" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path> <path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path>
<path d="M12 12m-5 0a5 5 0 1 0 10 0a5 5 0 1 0 -10 0"></path> <path d="M12 12m-5 0a5 5 0 1 0 10 0a5 5 0 1 0 -10 0"></path>
<path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path> <path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path>
</svg> </svg>
{{if eq (len .Service.Urls) 0}}
<span>Tor Only</span>
{{else}}
<span>Tor</span> <span>Tor</span>
{{end}}
{{if ne .Service.Referral ""}}
<a href="{{randomElem .Service.OnionUrls}}" class="flex justify-center items-center px-2 py-1 text-center text-purple-600 rounded-r border border-purple-900 transition duration-300 bg-zinc-900 hover:border-lime-600 hover:text-lime-600">
<svg xmlns="http://www.w3.org/2000/svg" class="size-5 link-off" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M9 15l3 -3m2 -2l1 -1" />
<path d="M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464" />
<path d="M3 3l18 18" />
<path d="M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463" />
</svg>
</a> </a>
{{end}} {{end}}
<a </a>
href="#discuss" </div>
class="hidden justify-center items-center px-2 py-1 m-1 space-x-2 text-center text-sky-400 rounded border border-sky-700 transition duration-300 md:flex bg-zinc-900 hover:border-lime-600 hover:text-lime-600" {{end}}
>
<svg {{if ne (len .Service.TosUrls) 0}}
xmlns="http://www.w3.org/2000/svg" <a href="{{index .Service.TosUrls 0}}" target="_blank" class="flex justify-center items-center px-2 py-1 m-1 space-x-2 text-center text-gray-300 rounded border border-gray-600 transition duration-300 bg-zinc-900 hover:border-lime-600 hover:text-lime-600">
class="w-5 h-5 messages" <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 tabler-report-search" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path <path d="M8 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h5.697"></path>
d="M21 14l-3 -3h-7a1 1 0 0 1 -1 -1v-6a1 1 0 0 1 1 -1h9a1 1 0 0 1 1 1v10" <path d="M18 12v-5a2 2 0 0 0 -2 -2h-2"></path>
></path> <path d="M8 3m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v0a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z"></path>
<path d="M8 11h4"></path>
<path d="M8 15h3"></path>
<path d="M16.5 17.5m-2.5 0a2.5 2.5 0 1 0 5 0a2.5 2.5 0 1 0 -5 0"></path>
<path d="M18.5 19.5l2.5 2.5"></path>
</svg>
<span>ToS</span>
</a>
{{end}}
<a href="#discuss" class="hidden justify-center items-center px-2 py-1 m-1 space-x-2 text-center text-sky-400 rounded border border-sky-700 transition duration-300 md:flex bg-zinc-900 hover:border-lime-600 hover:text-lime-600">
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 messages" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M21 14l-3 -3h-7a1 1 0 0 1 -1 -1v-6a1 1 0 0 1 1 -1h9a1 1 0 0 1 1 1v10"></path>
<path d="M14 15v2a1 1 0 0 1 -1 1h-7l-3 3v-10a1 1 0 0 1 1 -1h2"></path> <path d="M14 15v2a1 1 0 0 1 -1 1h-7l-3 3v-10a1 1 0 0 1 1 -1h2"></path>
</svg> </svg>
</a> </a>
@ -234,73 +152,41 @@
<!-- Icons --> <!-- Icons -->
<div class="flex justify-center items-center mt-2 mb-4"> <div class="flex justify-center items-center mt-2 mb-4">
<a href="/about#icons" class="max-w-md text-xs"> <a href="/about#icons" class="max-w-md text-xs"> {{partial "partials/service_icons" .Service}} </a>
{{partial "partials/service_icons" .Service}}
</a>
</div> </div>
<!-- Description --> <!-- Description -->
<div class="flex justify-center items-center mt-4"> <div class="flex justify-center items-center mt-4">
<p <p class="p-4 max-w-lg text-sm rounded-lg border md:text-base border-white/20 bg-gray-500/10">{{if ne .Service.Description ""}} {{.Service.Description | safe}} {{else}} This {{.Service.Type}} does not have a description. {{end}}</p>
class="p-4 max-w-lg text-sm rounded-lg border md:text-base border-white/20 bg-gray-500/10"
>
{{if ne .Service.Description ""}} {{.Service.Description | safe}} {{else}}
This {{.Service.Type}} does not have a description. {{end}}
</p>
</div> </div>
</section> </section>
<!-- KYC Level --> <!-- KYC Level -->
<section class="flex justify-center items-center px-2 mb-2"> <section class="flex justify-center items-center px-2 mb-2">{{partial "partials/kyc_level" .Service.KycLevel}}</section>
{{partial "partials/kyc_level" .Service.KycLevel}}
</section>
<!-- Attributes --> <!-- Attributes -->
<section class="flex flex-col justify-center items-center p-4"> <section class="flex flex-col justify-center items-center p-4">
{{if .Attributes}} {{if .Attributes}}
<div class="grid grid-cols-1 auto-cols-max gap-2 md:grid-cols-2"> <div class="grid grid-cols-1 auto-cols-max gap-2 md:grid-cols-2">{{range .Attributes}} {{partial "partials/attribute_line" .}} {{end}}</div>
{{range .Attributes}} {{partial "partials/attribute_line" .}} {{end}}
</div>
{{end}} {{if .Service.Comments}} {{end}} {{if .Service.Comments}}
<div class="my-2 space-y-1.5 max-w-lg"> <div class="my-2 space-y-1.5 max-w-lg">
{{range .Service.Comments}} {{range .Service.Comments}}
<p <p class="block px-3 py-1.5 text-sm font-bold text-center rounded-lg border transition duration-300 border-white/30 bg-white/10 hover:bg-white/20 hover:border-white">* {{.}}</p>
class="block px-3 py-1.5 text-sm font-bold text-center rounded-lg border transition duration-300 border-white/30 bg-white/10 hover:bg-white/20 hover:border-white"
>
* {{.}}
</p>
{{end}} {{end}}
</div> </div>
{{end}} {{end}}
<span class="mt-6 text-xs text-white/20"> <span class="mt-6 text-xs text-white/20"> (updated {{humanizePbTimeString .Service.Updated}}) </span>
(updated {{humanizePbTimeString .Service.Updated}})
</span>
</section> </section>
<div <div class="my-2 w-full border-t-2 border-opacity-50 border-dashed border-t-lime-400/10"></div>
class="my-2 w-full border-t-2 border-opacity-50 border-dashed border-t-lime-400/10"
></div>
<!-- ToS Checker --> <!-- ToS Checker -->
<section class="flex flex-col justify-center items-center p-4" id="tos"> <section class="flex flex-col justify-center items-center p-4" id="tos">
<a href="/about#tos-checker" class="text-xl font-bold"> <a href="/about#tos-checker" class="text-xl font-bold">
<svg <svg xmlns="http://www.w3.org/2000/svg" class="inline-block w-4 h-4 calendar-cog" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
xmlns="http://www.w3.org/2000/svg"
class="inline-block w-4 h-4 calendar-cog"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path <path d="M12 21h-6a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v5"></path>
d="M12 21h-6a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v5"
></path>
<path d="M16 3v4"></path> <path d="M16 3v4"></path>
<path d="M8 3v4"></path> <path d="M8 3v4"></path>
<path d="M4 11h16"></path> <path d="M4 11h16"></path>
@ -315,99 +201,48 @@
<span>ToS Review</span> <span>ToS Review</span>
<span class="text-xs text-white/30">?</span> <span class="text-xs text-white/30">?</span>
</a> </a>
<p class="max-w-sm text-xs text-center text-gray-500 text-opacity-75"> <p class="max-w-sm text-xs text-center text-gray-500 text-opacity-75">Automated, ai-driven monthly ToS reviews.</p>
Automated, ai-driven monthly ToS reviews. <p class="mt-1 max-w-sm text-xs text-center text-gray-600 text-opacity-75">Last Check: {{ dateString .Service.LastTosReview }}</p>
</p>
<p class="mt-1 max-w-sm text-xs text-center text-gray-600 text-opacity-75">
Last Check: {{ dateString .Service.LastTosReview }}
</p>
{{if .Service.TosReviews}} {{if .Service.TosReviews}}
<div class="max-w-lg"> <div class="max-w-lg">
{{if eq 0 (len .Service.TosReviews)}} {{if eq 0 (len .Service.TosReviews)}}
<p <p class="mt-2 max-w-md font-bold text-center text-amber-400 text-opacity-75 text-md">Not ToS reviews for this service (yet).</p>
class="mt-2 max-w-md font-bold text-center text-amber-400 text-opacity-75 text-md"
>
Not ToS reviews for this service (yet).
</p>
{{else if eq (len .Service.TosUrls) 0}} {{else if eq (len .Service.TosUrls) 0}}
<p <p class="mt-2 max-w-md font-bold text-center text-amber-400 text-opacity-75 text-md">This service has no ToS.</p>
class="mt-2 max-w-md font-bold text-center text-amber-400 text-opacity-75 text-md" {{else}} {{range .Service.TosReviews}} {{if .Warning}} {{partial "partials/tos_check" .}} {{end}} {{end}}
>
This service has no ToS.
</p>
{{else}} {{range .Service.TosReviews}} {{if .Warning}} {{partial
"partials/tos_check" .}} {{end}} {{end}}
<details class="py-2"> <details class="py-2">
<summary <summary class="mt-2 max-w-md text-lg font-bold text-center text-blue-400 text-opacity-75 cursor-pointer">Show non-conflictive ToS reviews</summary>
class="mt-2 max-w-md text-lg font-bold text-center text-blue-400 text-opacity-75 cursor-pointer" {{range .Service.TosReviews}} {{if ne .Warning true}} {{partial "partials/tos_check" .}} {{end}} {{end}}
>
Show non-conflictive ToS reviews
</summary>
{{range .Service.TosReviews}} {{if ne .Warning true}} {{partial
"partials/tos_check" .}} {{end}} {{end}}
</details> </details>
{{end}} {{end}}
</div> </div>
{{else}} {{else}}
<p <p class="mt-2 max-w-md font-bold text-center text-amber-400 text-opacity-75 text-md">Not ToS reviews for this service (yet).</p>
class="mt-2 max-w-md font-bold text-center text-amber-400 text-opacity-75 text-md"
>
Not ToS reviews for this service (yet).
</p>
{{end}} {{end}}
</section> </section>
<div <div class="my-2 w-full border-t-2 border-opacity-50 border-dashed border-t-lime-400/10"></div>
class="my-2 w-full border-t-2 border-opacity-50 border-dashed border-t-lime-400/10"
></div>
<!-- Comments --> <!-- Comments -->
<section <section class="flex flex-col justify-center items-center p-4 mb-16" id="discuss">
class="flex flex-col justify-center items-center p-4 mb-16"
id="discuss"
>
<a href="/about#nostr-comments" target="_blank" class="text-xl font-bold"> <a href="/about#nostr-comments" target="_blank" class="text-xl font-bold">
<svg <svg xmlns="http://www.w3.org/2000/svg" class="inline-block w-4 h-4 messages" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
xmlns="http://www.w3.org/2000/svg"
class="inline-block w-4 h-4 messages"
width="24"
height="24"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path <path d="M21 14l-3 -3h-7a1 1 0 0 1 -1 -1v-6a1 1 0 0 1 1 -1h9a1 1 0 0 1 1 1v10"></path>
d="M21 14l-3 -3h-7a1 1 0 0 1 -1 -1v-6a1 1 0 0 1 1 -1h9a1 1 0 0 1 1 1v10"
></path>
<path d="M14 15v2a1 1 0 0 1 -1 1h-7l-3 3v-10a1 1 0 0 1 1 -1h2"></path> <path d="M14 15v2a1 1 0 0 1 -1 1h-7l-3 3v-10a1 1 0 0 1 1 -1h2"></path>
</svg> </svg>
<span>Nostr Comments</span> <span>Nostr Comments</span>
<span class="text-xs text-white/30">?</span> <span class="text-xs text-white/30">?</span>
</a> </a>
<h2 class="text-xl font-bold"></h2> <h2 class="text-xl font-bold"></h2>
<p <p class="pb-4 mt-1 max-w-sm text-xs text-center text-gray-500 text-opacity-75">Beware of fake reviews and accounts. Verify user profiles and conduct your own research.</p>
class="pb-4 mt-1 max-w-sm text-xs text-center text-gray-500 text-opacity-75"
>
Beware of fake reviews and accounts. Verify user profiles and conduct your
own research.
</p>
<!-- div with the ID disgus where you would like to display the comments & form --> <!-- div with the ID disgus where you would like to display the comments & form -->
<div id="disgus" class="w-full max-w-xl"> <div id="disgus" class="w-full max-w-xl">
<noscript> <noscript>
<p class="font-bold text-center text-yellow-300"> <p class="font-bold text-center text-yellow-300">
You must have JavaScript enabled to see and use comments. It just will You must have JavaScript enabled to see and use comments. It just will load a 200kb script to interact with Nostr. The source code is available
load a 200kb script to interact with Nostr. The source code is available <a target="_blank" class="underline" href="https://github.com/carlitoplatanito/disgus">here</a>.
<a
target="_blank"
class="underline"
href="https://github.com/carlitoplatanito/disgus"
>here</a
>.
</p> </p>
</noscript> </noscript>
</div> </div>

View File

@ -60,7 +60,11 @@ func (s *Server) handleApiPicture(c iris.Context) {
req, _ := http.NewRequest("GET", service.LogoURL, nil) req, _ := http.NewRequest("GET", service.LogoURL, nil)
req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.3") req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.3")
if len(service.Urls) > 0 {
req.Header.Set("Referer", service.Urls[0]) req.Header.Set("Referer", service.Urls[0])
} else if len(service.OnionUrls) > 0 {
req.Header.Set("Referer", service.OnionUrls[0])
}
resp, err := s.HttpClient.Do(req) resp, err := s.HttpClient.Do(req)
if err != nil || resp.StatusCode != http.StatusOK { if err != nil || resp.StatusCode != http.StatusOK {