Merge pull request 'Update Landing and README' (#81) from Korbs/poke:main into main

Reviewed-on: https://codeberg.org/ashley/poke/pulls/81
This commit is contained in:
Ashley //// 2024-05-01 06:25:18 +00:00
commit 11e0cf2580
11 changed files with 431 additions and 138 deletions

View file

@ -37,28 +37,23 @@ Stallman though poke was GNU poke lmaoooo
<img src="https://shields.tosdr.org/en_7114.svg"/>
</a>
<img src="https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg"> <a href="./LICENSE"><img src="https://img.shields.io/badge/License-GPL--3-FF6666" alt="License - GPL-3"></a>
<a href="https://ci.poketube.fun/ashley/poke">
<img src="https://ci.poketube.fun/api/badges/ashley/poke/status.svg" />
</a>
</div>
![Preview](./css/README_Preview.png)
## Welcome!
This is the source code of Poke (formerly PokeTube), the privacy-friendly youtube front-end built with the InnerTube API!
# Features
<h1>Features</h1>
<h3>Return Youtube Dislikes Built-in </h3>
<img src="https://autumn.revolt.chat/attachments/0JlGwlnJdMcQwc6qzoo2qpmMAOWbrYMZ9vDX50l80r/resim.png">
<p>See the dislikes from returnyoutubedislike!</p>
| <img width="100%" style="border-radius: 24px" src="./css/README_RYD.png"> | <div style="text-align: left"><h3>Return YouTube Dislikes Built-In</h3> Dislikes are viewable thanks to the Return YouTube Dislikes API.</div> |
| - | - |
| <div style="text-align: right"><h3>PWA Support</h3> With PWA Support, you can install Poke on your mobile device.</div> | <img width="100%" style="border-radius: 24px" src="./css/README_PWA.jpg"> |
<h3>Customize</h3>
Customize Poketube However you want :3
<h3>PWA</h3>
Install PokeTube as a pwa on your mobile device :3
<h3>Accounts </h3>
Suscribe (yes Suscribe hehe sussy baka) to whaever channel you want!
@ -89,28 +84,50 @@ PLEASE NOTE THAT THIS SOFTWARE MAY INCULUDE CODECS THAT IN CERTAIN COUNTRIES MAY
Before you host, if ur server is in usa, set the proxylocation to `USA` (which is the default) - if you use any eu server set it to `EU` instead to make videos load faster
### With NodeJS
- To self host your own Poke instance, you'll need the following:
To self host your own Poke instance, you'll need some packages installed on your Linux install.
- [Node.js](https://nodejs.org/en/download/)
- [npm](http://npmjs.com) (Included with Node.js)
<details>
<summary>For Fedora/RHEL/Rocky/CentOS</summary>
<br/>
```
sudo dnf install git make gcc libcurl nodejs python libcurl4 g++
```
</details>
<details>
<summary>For Debian/Ubuntu</summary>
<br/>
```
sudo apt install git make gcc libcurl4-openssl-dev nodejs npm python g++
```
</details>
<br/>
Once you have everything, clone our repo:
<details open>
<summary>Clone via Codeberg</summary>
<br/>
```
git clone https://codeberg.org/ashley/poke.git
```
You can also clone using our Github mirror if you'd prefer:
</details>
<details>
<summary>Clone via GitHub</summary>
<br/>
```
git clone https://github.com/ashley0143/poke.git
```
Or you can use our forgejo instance:
```
git clone https://git.poketube.fun/ashley/poke.git
```
</details>
<br/>
Now, install the needed dependencies within the Poke folder:
( go to the folder by running cd poke)

BIN
css/Poke-Mobile.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 KiB

BIN
css/README_PWA.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB

BIN
css/README_Preview.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,000 KiB

BIN
css/README_RYD.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 489 KiB

View file

@ -719,76 +719,12 @@ li > a {cursor: var(--pointer-cursor)}
.btn {cursor: var(--pointer-cursor) !important}
@font-face {
font-family: "PokeTube Flex";
src: url("https://p.poketube.fun/https://cdn.glitch.global/43b6691a-c8db-41d4-921c-8cf6aa0d9108/robotoflex.ttf?v=16683434286881");
font-family: "PokeTube Flex";
font-style: normal;
font-stretch: 1% 800%;
font-display: swap;
}
blockquote {
background: #f2dda8;
margin: 0;
padding: 6px 12px;
border-radius: 4px;
color: #000;
position: sticky;
top: 12px;
z-index: 5;
}
.header-content {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
height: 100px;
}
.header-content-start img {
width: 140px;
}
.header-content-end a {
color: #fff;
padding: 10px 12px;
border-radius: 50px;
}
.header-content-end a:hover {
background: #ffffff2e;
}
#fname {
background: #331a22;
border: 2px #612153 solid;
padding: 8px 16px;
border-radius: 24px;
color: #fff;
margin-right: 6px;
}
#fname:focus {
outline: 0;
}
button[type="submit"] {
color: #fff;
background: #331a22;
border: 2px #612153 solid;
border-radius: 24px;
padding: 8px 10px;
cursor: var(--pointer-cursor);
}
button[type="submit"]:hover {
background: #ffffff2e;
}
.footer {
border-top: 1px #ffffff1f solid;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
height: 100px;
margin-top: auto;
}
.footer a {
color: #fff;
margin-left: 12px;
text-decoration: none;
}
@media only screen and (max-width: 1328px) {
body {
padding: 0 48px !important;
@ -823,20 +759,20 @@ button[type="submit"]:hover {
}
}
.landing {
text-align: center;
margin: auto;
position: relative;
margin-top: 240px;
max-width: 1200px;
}
.landing h1 {
font-size: xxx-large;
font-family: "PokeTube flex";
font-stretch: ultra-expanded;
font-weight: 1000;
text-align: center;
}
.landing img {
width: 100%;
margin-top: 48px;
height: 700px;
height: 503px;
object-fit: cover;
object-position: top;
mask-image: linear-gradient(#5315ff,#0000);
@ -854,7 +790,6 @@ button[type="submit"]:hover {
}
.features {
display: flex;
justify-content: center;
}
.features p {
border-radius: 48px;
@ -870,6 +805,53 @@ button[type="submit"]:hover {
border-radius: 24px;
margin: -10px 10px -10px -24px;
}
img[src="/static/poke-chan-outfit-a.png"] {
height: 400px;
width: 369px;
mask-image: none;
z-index: 5;
transform: scaleX(1);
float: right;
display: flex;
position: absolute;
right: 10px;
margin: -237px -60px 0px 0px;
}
.new-feature-set {
display: grid;
margin: 54px 0px 24px 0px;
max-width: 1200px;
grid-template-columns: repeat(auto-fit,minmax(350px,1fr));
text-align: left;
}
.feature-set {
padding: 32px;
}
.feature-set p {
text-align: left;
}
.feature-set svg {
width: 32px;
height: 32px;
border-radius: 5rem;
padding: 6px;
}
.feature-set-title {
display: flex;
align-items: center;
gap: 12px;
justify-content: left;
}
.feature-set-title h2 {
font-family: "PokeTube flex";
font-stretch: ultra-expanded;
font-weight: 1000;
margin: 0px;
}
@media only screen and (max-width: 1420px) {
.landing {
width: calc(100% - 24px);
@ -911,3 +893,12 @@ video {
display: none;
}
}
.adaptive-grid {
display: grid;
grid-template-columns: repeat(auto-fit,minmax(350px,1fr));
max-width: 1200px;
margin: auto;
grid-gap: 12px;
}

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 2.4 MiB

View file

@ -2,7 +2,7 @@
This Source Code Form is subject to the terms of the GNU General Public License:
Copyright (C) 2021-2024 POKETUBE (https://codeberg.org/Ashley/poketube)
Copyright (C) 2021-2024 Poke (https://codeberg.org/Ashley/poke)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -18,6 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see https://www.gnu.org/licenses/.
--->
<!DOCTYPE html>
<html lang="en">
@ -29,6 +30,7 @@
<meta name="viewport" content="width=device-1200px, initial-scale=1.0, shrink-to-fit=yes, viewport-fit=cover">
<link rel="stylesheet" href="/css/landing.css?v=244">
<link rel="stylesheet" href="/css/snow.css">
<link rel="stylesheet" href="/css/app.main.css">
<link href=/css/yt-ukraine.svg?v=6 rel=icon>
<link rel="manifest" href="/manifest.json">
<meta name="darkreader-lock"> <!-- tells dark reader that the site has a dark theme and to turn itself off -->
@ -84,28 +86,10 @@
</head>
<body>
<%- include('./partials/header.ejs') %>
<video id="HD-BG" playsinline autoplay muted loop><source src="/bg-full.webm" type="video/webm"/></video>
<video id="SD-BG" playsinline autoplay muted loop><source src="/bg-480.webm" type="video/webm"/></video>
<div class="header">
<div class="header-content">
<div class="header-content-start">
<a href="/" style="text-decoration:none;"><img style="width: 130px;" src="/css/logo-poke.svg" />
<p class="subtitle"> <%- random %></p>
</a>
</div>
<div class="header-content-center" style="margin-left: -30px;">
<form action=/search><input class=search-bar autocomplete="on" id=fname name=query><button
class="btn btn-success" type=submit><i class="fa-light fa-search"></i></button></form>
</div>
<div class="header-content-end">
<a href="https://codeberg.org/Ashley/poketube/src/branch/main/instances.json"><i
class="fa-sharp fa-solid fa-server"></i></a>
<a href="/apps"><i class="fa-sharp fa-solid fa-grid-2"></i></a>
<a href="/game-hub"><i class="fa-sharp fa-solid fa-gamepad-modern"></i></a>
</div>
</div>
</div>
<div class="features">
<!-- <div class="features">
<a style="color: white; text-decoration: none;" href="https://war.ukraine.ua/donate/">
<p><i class="fa-duotone fa-handshake-angle"></i> Support Ukraine </p>
</a>
@ -113,24 +97,102 @@
href="https://buildpalestine.com/2021/05/15/trusted-organizations-to-donate-to-palestine/">
<p><i class="fa-duotone fa-handshake-angle"></i> Support Palestine</p>
</a>
</div>
</div> -->
<div class="landing">
<h1>The Ultimate Privacy App</h1>
<p style="max-width: 800px; text-align: center; margin: 20px auto;"> Be Anonymous watching epic videos, searching
<p style="max-width: 800px;"> Be Anonymous watching epic videos, searching
thingys on the interwebs and listening to music on poketube - the free yt front end thats focused on ur privacy!!
</p>
<div class="features">
<p><i class="fa-sharp fa-solid fa-eye-low-vision"></i> No Tracking & Ads</p>
<p><i class="fa-sharp fa-solid fa-rabbit-running"></i>Very Fast</p>
<p><i class="fa-sharp fa-solid fa-download"></i>Built-in video downloader</p>
<p><i class="fa-sharp fa-solid fa-search"></i>Web Search</p>
</p><br>
<a href="https://buildpalestine.com/2021/05/15/trusted-organizations-to-donate-to-palestine">Help & Support Palestine</a> - <a href="https://war.ukraine.ua/donate"> Donate to Ukraine </a>
<img src="/static/poke-chan-outfit-a.png" title="Poke-chan sitting :3">
<div style="display: flex; gap: 12px;">
<img src="/static/poke-screnshot-a.png" />
<img src="/static/Poke-Mobile.jpg" />
</div>
<!-- Icons are from Iconoir -->
<div class="new-feature-set">
<div class="feature-set">
<div class="feature-set-title">
<?xml version="1.0" encoding="UTF-8"?><svg style="background: #ea6d6d;" width="24px" height="24px" viewBox="0 0 24 24" stroke-width="1.5" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff" style="--darkreader-inline-color: #e8e6e3;" data-darkreader-inline-color=""><path d="M19.5 16L17.0248 12.6038" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M12 17.5V14" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M4.5 16L6.96895 12.6124" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M3 8C6.6 16 17.4 16 21 8" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path></svg>
<h2>No Tracking and Ads</h2>
</div>
<p> Poke Has no Trackers or ads - we dont and we wont see the vids ur watching :3</p>
</div>
<div class="feature-set">
<div class="feature-set-title">
<?xml version="1.0" encoding="UTF-8"?><svg style="background: #6d8cea;" width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff" style="--darkreader-inline-color: #e8e6e3;" data-darkreader-inline-color=""><path d="M15 7C16.1046 7 17 6.10457 17 5C17 3.89543 16.1046 3 15 3C13.8954 3 13 3.89543 13 5C13 6.10457 13.8954 7 15 7Z" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M12.6133 8.26691L9.30505 12.4021L13.4403 16.5374L11.3727 21.0861" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M6.4104 9.5075L9.79728 6.19931L12.6132 8.26692L15.508 11.5752H19.2297" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M8.89152 15.7103L7.65095 16.5374H4.34277" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path></svg>
<h2>Very Fast</h2>
</div>
<p> Poke is really ligthweight (both on server and client :3) so you can still use it on poor connections :3</p>
</div>
<div class="feature-set">
<div class="feature-set-title">
<?xml version="1.0" encoding="UTF-8"?><svg style="background: #519355;" width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff" style="--darkreader-inline-color: #e8e6e3;" data-darkreader-inline-color=""><path d="M12 8V16M12 16L15.5 12.5M12 16L8.5 12.5" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path></svg>
<h2>Downloader</h2>
</div>
<p>You wouldnt download a car - welp i would :D u can download videos from poke for 0$!</p>
</div>
<div class="feature-set">
<div class="feature-set-title">
<?xml version="1.0" encoding="UTF-8"?><svg style="background: #ea6ddc;" width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff" style="--darkreader-inline-color: #e8e6e3;" data-darkreader-inline-color=""><path d="M21 12V10C21 7.23858 18.7614 5 16 5H8C5.23858 5 3 7.23858 3 10V10C3 12.7614 5.23858 15 8 15H12" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M20.1241 19.1185C20.6654 18.5758 21 17.827 21 17C21 15.3431 19.6569 14 18 14C16.3431 14 15 15.3431 15 17C15 18.6569 16.3431 20 18 20C18.8299 20 19.581 19.663 20.1241 19.1185ZM20.1241 19.1185L22 21" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path></svg>
<h2>Web Search</h2>
</div>
<p>u can search the interwebs for anything that u wan!! (ik wha ur gonna search :p) </p>
</div>
<div class="feature-set">
<div class="feature-set-title">
<?xml version="1.0" encoding="UTF-8"?><svg style="background: #b7a358;" width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff" style="--darkreader-inline-color: #e8e6e3;" data-darkreader-inline-color=""><path d="M4.62323 5.24841C2.99408 7.02743 2 9.39765 2 12C2 17.5229 6.47715 22 12 22C14.5361 22 16.8517 21.0559 18.6146 19.5" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M21.3021 15.6775C21.7525 14.5392 22 13.2985 22 12C22 6.47715 17.5228 2 12 2C10.7687 2 9.58934 2.22255 8.5 2.62961" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M9 15C9.64448 15.8593 10.8428 16.3494 12 16.391C13.1141 16.431 14.1901 16.0554 14.6973 15.1933" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M12 16.391V18.5" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M9.5 9.5C9.5 10.6811 10.3525 11.1647 11.3862 11.5" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M15 8.5C14.315 7.81501 13.1087 7.33855 12 7.30872V5.5" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M3 3L21 21" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path></svg>
<h2>DRM Free</h2>
</div>
<p> Poke comes without digital restrictions management - poke is free software :3</p>
</div>
<div class="feature-set">
<div class="feature-set-title">
<?xml version="1.0" encoding="UTF-8"?><svg style="background: #886dea;" width="24px" height="24px" viewBox="0 0 24 24" stroke-width="1.5" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff"><path d="M17.5 17.5C20 21 23.9486 18.4151 23 15C21.5753 9.87113 20.8001 7.01556 20.3969 5.50793C20.1597 4.62136 19.3562 4 18.4384 4L5.56155 4C4.64382 4 3.844 4.62481 3.62085 5.515C2.7815 8.86349 2.0326 11.8016 1.14415 15C0.195501 18.4151 4.14415 21 6.64415 17.5" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M16 4V6C16 7.10457 15.1046 8 14 8H10C8.89543 8 8 7.10457 8 6L8 4" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M8 16C9.10457 16 10 15.1046 10 14C10 12.8954 9.10457 12 8 12C6.89543 12 6 12.8954 6 14C6 15.1046 6.89543 16 8 16Z" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M16 16C17.1046 16 18 15.1046 18 14C18 12.8954 17.1046 12 16 12C14.8954 12 14 12.8954 14 14C14 15.1046 14.8954 16 16 16Z" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
<h2>Games Included</h2>
</div>
<p> U can play funnie games on poke! </p>
</div>
</div>
<div class="adaptive-grid">
<%- include('./partials/card',
icon_background='transparent',
icon="none",
title='Join Us',
description='join our community if you want to! :3',
actions='true',
has_secondary_action='true',
secondary_icon='<svg width="35" height="37" viewBox="0 0 35 37" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_108_2)"><path d="M24.979 12.562C24.979 15.349 23.459 17.022 20.215 17.022H14.844V8.20296H20.216C23.459 8.20296 24.979 9.92596 24.979 12.562ZM0.979004 1.00696L6.179 8.21996V36.58H14.845V23.153H16.923L24.323 36.583H34.104L25.894 22.494C28.1862 21.9361 30.2192 20.6123 31.6566 18.7416C33.0939 16.8709 33.8494 14.5655 33.798 12.207C33.798 6.02396 29.44 1.00696 20.723 1.00696H0.979004Z" fill="white" stroke="white"/></g><defs><clipPath id="clip0_108_2"><rect width="35" height="37" fill="white"/></clipPath></defs></svg>',
secondary_text='Revolt',
secondary_link='https://rvlt.gg/poketube',
primary_icon='<svg version="1.1" viewBox="0 0 27.9 32" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><g transform="translate(-.095 .005)" fill="#040404"><path d="m27.1 31.2v-30.5h-2.19v-0.732h3.04v32h-3.04v-0.732z"/><path d="m8.23 10.4v1.54h0.044c0.385-0.564 0.893-1.03 1.49-1.37 0.58-0.323 1.25-0.485 1.99-0.485 0.72 0 1.38 0.14 1.97 0.42 0.595 0.279 1.05 0.771 1.36 1.48 0.338-0.5 0.796-0.941 1.38-1.32 0.58-0.383 1.27-0.574 2.06-0.574 0.602 0 1.16 0.074 1.67 0.22 0.514 0.148 0.954 0.383 .32 0.707 0.366 0.323 0.653 0.746 0.859 1.27 0.205 0.522 0.308 1.15 0.308 1.89v7.63h-3.13v-6.46c0-0.383-0.015-0.743-0.044-1.08-0.0209-0.307-0.103-0.607-0.242-0.882-0.133-0.251-0.336-0.458-0.584-0.596-0.257-0.146-0.606-0.22-1.05-0.22-0.44 0-0.796 0.085-1.07 0.253-0.272 0.17-0.485 0.39-0.639 0.662-0.159 0.287-0.264 0.602-0.308 0.927-0.052 0.347-0.078 0.697-0.078 1.05v6.35h-3.13v-6.4c0-0.338-7e-3 -0.673-0.021-1-0.0114-0.314-0.0749-0.623-0.188-0.916-0.108-0.277-0.3-0.512-0.55-0.673-0.258-0.168-0.636-0.253-1.14-0.253-0.198 0.0083-0.394 0.042-0.584 0.1-0.258 0.0745-0.498 0.202-0.705 0.374-0.228 0.184-0.422 0.449-0.584 0.794-0.161 0.346-0.242 0.798-0.242 1.36v6.62h-3.13v-11.4z"/><path d="m0.936 0.732v30.5h2.19v0.732h-3.04v-32h3.03v0.732z"/></g></svg>',
primary_text='Matrix',
primary_link='https://matrix.to/#/%23poke:vern.cc'
)%>
<%- include('./partials/card',
icon_background='transparent',
icon="none",
title='Free and libre',
description='Poke is free and libre software! u can view, edit and redistribute under GNU GPL 3 or later :3',
actions='true',
has_secondary_action='true',
secondary_icon='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>',
secondary_text='GitHub',
secondary_link='https://github.com/ashley0143/poke',
primary_icon='<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg1468" version="1.1" viewBox="0 0 4.233 4.233"><title id="title16">Codeberg logo</title><defs id="defs1462"><linearGradient id="linearGradient6918" x1="42519.285" x2="42575.336" y1="-7078.789" y2="-6966.931" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient6924"></linearGradient><linearGradient id="linearGradient6924"><stop style="stop-color:#2185d0;stop-opacity:0" id="stop6920" offset="0"></stop><stop id="stop6926" offset=".495" style="stop-color:#000000;stop-opacity:.48923996"></stop><stop style="stop-color:#000000;stop-opacity:.63279623" id="stop6922" offset="1"></stop></linearGradient><linearGradient id="linearGradient6918-3" x1="42519.285" x2="42575.336" y1="-7078.789" y2="-6966.931" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient6924-6"></linearGradient><linearGradient id="linearGradient6924-6"><stop style="stop-color:#000000;stop-opacity:0" id="stop6920-7" offset="0"></stop><stop id="stop6926-5" offset=".495" style="stop-color:#000000;stop-opacity:.30000001"></stop><stop style="stop-color:#000000;stop-opacity:.30000001" id="stop6922-3" offset="1"></stop></linearGradient></defs><metadata id="metadata1465"></metadata><g id="g370484" transform="matrix(0.06551432,0,0,0.06551432,-2.232417,-1.431776)"><path id="path6733-5" style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient6918-3);fill-opacity:1;stroke:none;stroke-width:3.67846;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000;stop-opacity:1" d="m 42519.285,-7078.7891 a 0.76086879,0.56791688 0 0 0 -0.738,0.6739 l 33.586,125.8886 a 87.182358,87.182358 0 0 0 39.381,-33.7636 l -71.565,-92.5196 a 0.76086879,0.56791688 0 0 0 -0.664,-0.2793 z" transform="matrix(0.37058478,0,0,0.37058478,-15690.065,2662.0533)"></path><path id="path360787" style="opacity:1;fill:#000000;fill-opacity:1;stroke-width:17.0055;paint-order:markers fill stroke;stop-color:#000" d="m 11249.461,-1883.6961 c -12.74,0 -23.067,10.3275 -23.067,23.0671 0,4.3335 1.22,8.5795 3.522,12.2514 l 19.232,-24.8636 c 0.138,-0.1796 0.486,-0.1796 0.624,0 l 19.233,24.8646 c 2.302,-3.6721 3.523,-7.9185 3.523,-12.2524 0,-12.7396 -10.327,-23.0671 -23.067,-23.0671 z" transform="matrix(1.4006354,0,0,1.4006354,-15690.065,2662.0533)"></path></g></svg>',
primary_text='Codeberg',
primary_link='https://codeberg.org/ashley/poke'
)%>
</div>
<!-- source: https://picrew.me/share?cd=GD9wwCo5YY -->
<img src="/static/poke-chan-outfit-a.png"
style="height: 400px;width: 369px;mask-image: none;margin-top: -14em;margin-left: -2em;margin-bottom: -13em;z-index: 999;position: absolute;-webkit-transform: scaleX(-1);transform: scaleX(-1);border-radius: 0px;"
title="Poke-chan sitting :3">
<img src="/static/poke-screnshot-a.png" />
<style>
@import url(https://ka-p.fontawesome.com/releases/v6.4.2/css/pro.min.css?token=fe06fc099b);
@import url(https://ka-p.fontawesome.com/releases/v6.4.2/css/pro-v4-shims.min.css?token=fe06fc099b);

71
html/partials/card.ejs Normal file
View file

@ -0,0 +1,71 @@
<div class="card">
<div class="card-title">
<div class="card-icon" style="background: <%= icon_background %>;">
<% if(icon="none"){ %><% } else{ %> <%- icon %><% } %>
</div>
<h2><%= title %></h2>
</div>
<p><%= description %></p>
<% if (actions=="true") { %>
<div class="card-actions">
<% if (has_secondary_action=="true") { %>
<a class="card-secondary" href="<%= secondary_link %>"><%- secondary_icon %> <%= secondary_text %></a>
<% } %>
<a class="card-primary" href="<%= primary_link %>"><%- primary_icon %> <%= primary_text %></a>
</div>
<% }%>
</div>
<style>
.card {
padding: 24px;
}
.card-title {
display: flex;
align-items: center;
}
.card-title h2 {
font-family: "PokeTube flex";
font-stretch: ultra-expanded;
font-weight: 1000;
margin: 0px;
}
.card-title svg {
width: 32px;
height: 32px;
margin-right: 12px;
}
.card-actions {
display: flex;
align-items: center;
justify-content: right;
gap: 12px;
}
.card-actions a {
color: white;
border: 2px white solid;
border-radius: 3rem;
padding: 12px 24px 12px 12px;
display: flex;
align-items: center;
}
.card-actions a:hover {
filter: brightness(0.8);
text-decoration: nones;
}
.card-actions svg {
width: 24px !important;
height: 24px !important;
margin-right: 6px;
}
.card-actions .card-primary {
background: white;
color: black;
}
.card-actions .card-primary svg {
fill: black;
}
.card-actions .card-secondary svg {
fill: white;
}
</style>

154
html/partials/header.ejs Normal file
View file

@ -0,0 +1,154 @@
<!--
This Source Code Form is subject to the terms of the GNU General Public License:
Copyright (C) 2021-2024 Poke (https://codeberg.org/Ashley/poke)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see https://www.gnu.org/licenses/.
--->
<!-- Global Header-->
<!-- This should be inserted as a component/partial -->
<!-- Eventfully, this should be used on ALL pages, to keep things -->
<!-- things consistant across Poke. -->
<header>
<div class="header-content">
<div class="header-start">
<a title="Poke Homepage" href="/">
<img src="/css/logo-poke.svg?v=5"/>
<p class="subtitle"> <%- random %></p>
</a>
<% if (secure) { %>
<i style="margin-left: 12px;" class="fa-light fa-lock"
title="
This is a secure and/or offical instance!
you can trust this instance becuase:
- its a offical instance (offical instances have the max. privacy rules )
- logs are kept closed
if you see this lock icon, you can trust the instance!!
But Please note that unofficial instances can add the same lock icon, so please be careful about dad :D!
To verfiy u cab use this hashed code on SHA-265
d312fe1994124e29478
caaddefabec047746608
b8ef09b69b3ac2f63f4
e53a4a
if your domain matches this code you are probably in poketube.fun owo:3
"></i>
<% } %>
<% if (verify) { %>
<i style="margin-left: 12px;" class="fa-light fa-badge-check"
title="
This is a veried instance!
this instance was verified to be fast and secure!
"></i>
<% } %>
</div>
<div class="header-center">
<form action="/search">
<input/ class="search-bar" autocomplete="on" id="fname" name="query" data-ddg-inputtype="identities.firstName">
<button><?xml version="1.0" encoding="UTF-8"?><svg width="24px" height="24px" viewBox="0 0 24 24" stroke-width="1.5" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff"><path d="M17 17L21 21" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M3 11C3 15.4183 6.58172 19 11 19C13.213 19 15.2161 18.1015 16.6644 16.6493C18.1077 15.2022 19 13.2053 19 11C19 6.58172 15.4183 3 11 3C6.58172 3 3 6.58172 3 11Z" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button>
</form>
</div>
<div class="header-end">
<a href="https://codeberg.org/Ashley/poketube/src/branch/main/instances.json"><?xml version="1.0" encoding="UTF-8"?><svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff" style="--darkreader-inline-color: #e8e6e3;" data-darkreader-inline-color=""><path d="M6 18.01L6.01 17.9989" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M6 6.01L6.01 5.99889" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M2 9.4V2.6C2 2.26863 2.26863 2 2.6 2H21.4C21.7314 2 22 2.26863 22 2.6V9.4C22 9.73137 21.7314 10 21.4 10H2.6C2.26863 10 2 9.73137 2 9.4Z" stroke="#ffffff" stroke-width="1.5" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path><path d="M2 21.4V14.6C2 14.2686 2.26863 14 2.6 14H21.4C21.7314 14 22 14.2686 22 14.6V21.4C22 21.7314 21.7314 22 21.4 22H2.6C2.26863 22 2 21.7314 2 21.4Z" stroke="#ffffff" stroke-width="1.5" style="--darkreader-inline-stroke: #ffffff;" data-darkreader-inline-stroke=""></path></svg></a>
<a href="/apps"><?xml version="1.0" encoding="UTF-8"?><svg width="24px" height="24px" viewBox="0 0 24 24" stroke-width="1.5" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff"><path d="M17.5 17.5C20 21 23.9486 18.4151 23 15C21.5753 9.87113 20.8001 7.01556 20.3969 5.50793C20.1597 4.62136 19.3562 4 18.4384 4L5.56155 4C4.64382 4 3.844 4.62481 3.62085 5.515C2.7815 8.86349 2.0326 11.8016 1.14415 15C0.195501 18.4151 4.14415 21 6.64415 17.5" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M16 4V6C16 7.10457 15.1046 8 14 8H10C8.89543 8 8 7.10457 8 6L8 4" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M8 16C9.10457 16 10 15.1046 10 14C10 12.8954 9.10457 12 8 12C6.89543 12 6 12.8954 6 14C6 15.1046 6.89543 16 8 16Z" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M16 16C17.1046 16 18 15.1046 18 14C18 12.8954 17.1046 12 16 12C14.8954 12 14 12.8954 14 14C14 15.1046 14.8954 16 16 16Z" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a>
<a href="/account-create"><?xml version="1.0" encoding="UTF-8"?><svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#ffffff"><path d="M12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2Z" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M4.271 18.3457C4.271 18.3457 6.50002 15.5 12 15.5C17.5 15.5 19.7291 18.3457 19.7291 18.3457" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M12 12C13.6569 12 15 10.6569 15 9C15 7.34315 13.6569 6 12 6C10.3431 6 9 7.34315 9 9C9 10.6569 10.3431 12 12 12Z" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg> Account</a>
</div>
</div>
</header>
<style>
header {
position: absolute;
top: 0px;
left: 0px;
width: 100%;
padding: 12px 0px;
background: rgb(0, 0, 0, 0.5);
}
.header-content {
display: flex;
align-items: center;
justify-content: space-between;
max-width: 1264px;
margin: auto;
}
.header-start {
display: flex;
align-items: center;
}
.header-start img {
height: 32px;
}
form[action="/search"] {
display: flex
}
.header-center #fname {
background: rgba(255, 255, 255, 0.2);
border: 1px #605e5e solid;
border-radius: 6px 0px 0px 6px;
color: white;
font-size: 14px;
padding: 6px 12px;
border-right: none;
cursor: default;
width: 300px;
}
.header-center button {
background: rgba(255, 255, 255, 0.2);
border: 1px #605e5e solid;
border-radius: 0px 6px 6px 0px;
color: white;
border-left: none;
cursor: pointer;
}
.header-center #fname:focus {
outline: none;
border-color: #8a8a8a;
}
.header-center button svg {
width: 18px;
}
.header-end {
display: flex;
align-items: center;
gap: 6px;
}
.header-end a {
/* border: 2px #605e5e solid; */
border-radius: 3rem;
display: flex;
align-items: center;
padding: 6px;
color: white;
gap: 6px;
}
</style>

View file

@ -117,12 +117,24 @@ module.exports = function (app, config, renderTemplate) {
const browser = req.useragent.browser;
const isOldWindows = (uaos === "Windows 7" || uaos === "Windows 8") && browser === "Firefox";
const secure = [
"poketube.fun",
"localhost" // Testing purposes
].includes(req.hostname);
const verify = [
"poketube.fun",
"poke.ashley0143.xyz",
"localhost"
].includes(req.hostname);
const rendermainpage = () => {
if (req.useragent.isMobile) {
return res.redirect("/app");
}
return renderTemplate(res, req, "landing.ejs", {
secure,
verify,
isOldWindows,
random
});