forked from Infrastructure/4get
update
This commit is contained in:
parent
4b0d8f75dc
commit
35cf01e3e0
7 changed files with 126 additions and 34 deletions
11
Dockerfile
11
Dockerfile
|
@ -1,6 +1,17 @@
|
|||
FROM alpine:latest
|
||||
WORKDIR /var/www/html/4get
|
||||
|
||||
# Metadata
|
||||
## This modified version of 4get is pushed to SudoVanilla's OCI registry.
|
||||
## These labels will make the correct information is shown on the registry.
|
||||
LABEL org.opencontainers.image.title="4get"
|
||||
LABEL org.opencontainers.image.vendor="lolcat"
|
||||
LABEL org.opencontainers.image.description="4get is a proxy search engine that doesn't suck"
|
||||
LABEL org.opencontainers.image.licenses="AGPL-3.0-or-later"
|
||||
LABEL org.opencontainers.image.url="https://4get.sudovanilla.org/"
|
||||
LABEL org.opencontainers.image.source="https://ark.sudovanilla.org/Korbs/4get-patches"
|
||||
LABEL org.opencontainers.image.version="8"
|
||||
|
||||
RUN apk update && apk upgrade
|
||||
RUN apk add php apache2-ssl php83-fileinfo php83-openssl php83-iconv php83-common php83-dom php83-sodium php83-curl curl php83-pecl-apcu php83-apache2 imagemagick php83-pecl-imagick php-mbstring imagemagick-webp imagemagick-jpeg
|
||||
|
||||
|
|
17
TODO.md
Normal file
17
TODO.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
# TODO
|
||||
|
||||
> This TODO list is not by the developer of 4get, but by SudoVanilla.
|
||||
|
||||
- [ ] mCaptcha
|
||||
- [ ] Make it show after a certain amount of request, to remove annoyance of it showing it up everytime
|
||||
- [ ] Apply to other pages such as `/web`
|
||||
- [ ] Integrate instance into Docker as example
|
||||
- [ ] Overhaul Designs
|
||||
- [ ] Round out corners more
|
||||
- [ ] Text Result
|
||||
- Convert favicon and site name into a chip
|
||||
- Move date next to website chip
|
||||
- Increase top-bottom margins of main title
|
||||
- Header
|
||||
- Update design
|
||||
- Change tab buttons tohave a highlighted rounded background, not bottom border
|
|
@ -87,33 +87,17 @@ class config{
|
|||
// Known 4get instances. MUST use the https protocol if your instance uses
|
||||
// it. Is used to generate a distributed list of instances.
|
||||
// To appear in the list of an instance, contact the host and if everyone added
|
||||
// eachother your serber should appear everywhere.
|
||||
// eachother your server should appear everywhere.
|
||||
const INSTANCES = [
|
||||
"https://4get.ca",
|
||||
"https://4get.sudovanilla.org",
|
||||
"https://4get.zzls.xyz",
|
||||
"https://4getus.zzls.xyz",
|
||||
"https://4get.silly.computer",
|
||||
"https://4get.konakona.moe",
|
||||
"https://4get.lvkaszus.pl",
|
||||
"https://4g.ggtyler.dev",
|
||||
"https://4get.perennialte.ch",
|
||||
"https://4get.sijh.net",
|
||||
"https://4get.hbubli.cc",
|
||||
"https://4get.plunked.party",
|
||||
"https://4get.seitan-ayoub.lol",
|
||||
"https://4get.etenie.pl",
|
||||
"https://4get.lunar.icu",
|
||||
"https://4get.dcs0.hu",
|
||||
"https://4get.kizuki.lol",
|
||||
"https://4get.psily.garden",
|
||||
"https://search.milivojevic.in.rs",
|
||||
"https://4get.snine.nl",
|
||||
"https://4get.datura.network",
|
||||
"https://4get.neco.lol",
|
||||
"https://4get.lol",
|
||||
"https://4get.ch",
|
||||
"https://4get.edmateo.site",
|
||||
"https://4get.sudovanilla.org",
|
||||
"https://search.mint.lgbt"
|
||||
];
|
||||
|
||||
|
|
|
@ -3,10 +3,10 @@ version: "3.7"
|
|||
|
||||
services:
|
||||
fourget:
|
||||
image: luuul/4get:latest
|
||||
image: 4get
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- FOURGET_SERVER_NAME=4get.ca
|
||||
- FOURGET_SERVER_NAME=silly-website.org
|
||||
|
||||
ports:
|
||||
- "80:80"
|
||||
|
|
|
@ -241,8 +241,6 @@ h3,h4,h5,h6{
|
|||
.home{
|
||||
min-height:100vh;
|
||||
margin:0 auto;
|
||||
display:table;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.home .logo{
|
||||
|
@ -267,12 +265,25 @@ h3,h4,h5,h6{
|
|||
display:table-cell;
|
||||
vertical-align:middle;
|
||||
width:500px;
|
||||
position: fixed;
|
||||
top: 44%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
.home .searchbox{
|
||||
width:100%;
|
||||
text-align:left;
|
||||
margin-bottom:20px;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.home .searchbox button {
|
||||
width: 90px;
|
||||
border: none;
|
||||
background: none;
|
||||
color: var(--comment);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.home a{
|
||||
|
@ -285,6 +296,47 @@ h3,h4,h5,h6{
|
|||
font-size:12px;
|
||||
}
|
||||
|
||||
#mcaptcha__widget-container {
|
||||
width: 300px;
|
||||
height: 90px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.footer {
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
left: 0px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
width: calc(100% - 48px);
|
||||
padding: 0px 24px;
|
||||
}
|
||||
.footer-start p, .footer-end p {
|
||||
display: flex;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 930px) {
|
||||
.footer {
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
padding-bottom: 24px;
|
||||
}
|
||||
.footer p {
|
||||
margin: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 570px) {
|
||||
.footer p {
|
||||
display: flow-root;
|
||||
gap: 6px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
WEB
|
||||
|
|
|
@ -24,7 +24,7 @@ Once you're there, click the pencil on the last entry under "Search engines" (it
|
|||
</tr>
|
||||
<tr>
|
||||
<td>URL with %s in place of query</td>
|
||||
<td>https://4get.ca/web?s=%s</td>
|
||||
<td>{%server_name%}/web?s=%s</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
|
||||
<title>{%server_name%}</title>
|
||||
<link title="{%server_name%}" href="/opensearch{%ac%}" rel="search" type="application/opensearchdescription+xml">
|
||||
<link title="{%server_name%}" href="/opensearch{%ac%}" rel="search" type="application/opensearchdescription+xml">
|
||||
<link rel="sitemap" type="application/xml" title="Sitemap" href="/sitemap">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<link rel="stylesheet" href="/static/style.css?v{%version%}">
|
||||
|
@ -21,20 +21,48 @@
|
|||
</a>
|
||||
</div>
|
||||
<div class="searchbox">
|
||||
<input type="submit" value="Search" tabindex="-1">
|
||||
<div class="wrapper">
|
||||
<input type="text" maxlength="500" name="s" placeholder="Proxy search..." required autofocus>
|
||||
</div>
|
||||
<div class="autocomplete"></div>
|
||||
<input type="text" maxlength="500" name="s" placeholder="Proxy search..." required autofocus/>
|
||||
<button type="submit" class="sitekey-form__submit">Search</button>
|
||||
</div>
|
||||
|
||||
<!-- mCaptcha -->
|
||||
<!-- <label data-mcaptcha_url="https://captcha.sudovanilla.org/widget?sitekey=ytMknsUDlvsqXVzA51tawxkr2ACqE8y2" for="mcaptcha__token" id="mcaptcha__token-label"><input type="text" name="mcaptcha__token" id="mcaptcha__token" /></label> -->
|
||||
<!-- <div id="mcaptcha__widget-container"></div> -->
|
||||
<!-- <span style="max-width: 300px; margin: auto;width: 100%;display: block;text-align: right;font-size: 12px;opacity: 0.75;" id="mc_beta">Beta | <a href="https://mcaptcha.org/">mCaptcha</a></span> -->
|
||||
</form>
|
||||
<a href="settings">Settings</a> • <a href="instances">Instances</a> • <a href="https://git.lolcat.ca/lolcat/4get_news">News</a> • <a href="api.txt">API</a> • <a href="about">About</a> • <a href="https://git.lolcat.ca/lolcat/4get">Source</a><br>
|
||||
<a href="/donate"><b>Donate to the project</b></a>
|
||||
<div class="subtext">
|
||||
<a href="https://4get.ca">Clearnet</a> • <a href="http://4getwebfrq5zr4sxugk6htxvawqehxtdgjrbcn2oslllcol2vepa23yd.onion">Tor</a> • <a href="https://lolcat.ca">Report a problem</a><br>
|
||||
Running on <b>v{%version%}</b>!!
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="footer-start">
|
||||
<p>
|
||||
<span>v{%version%}</span>
|
||||
|
|
||||
<a title="https://4get.ch/" href="https://4get.ch/">Clearnet</a>
|
||||
|
|
||||
<a title="ducks.party Tor Instance" href="http://2cacklzoqtb3nhug4n3hizwxupqreekbeu5c2swachpmefvehvwz5nyd.onion/">Tor</a>
|
||||
|
|
||||
<a target="_blank" href="https://git.lolcat.ca/lolcat/4get.git">Report Issue</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="footer-end">
|
||||
<p>
|
||||
<a href="/about">About</a>
|
||||
|
|
||||
<a target="_blank" href="https://git.lolcat.ca/lolcat/4get_news/src/branch/master/README.md#latest-entries">News</a>
|
||||
|
|
||||
<a href="/instances">Instances</a>
|
||||
|
|
||||
<a target="_blank" href="https://ark.sudovanilla.org/Korbs/4get-patches">Modified Source Code</a>
|
||||
|
|
||||
<a target="_blank" href="https://4get.api.sudovanilla.org/api/">API</a>
|
||||
|
|
||||
<a target="_blank" href="/settings">Settings</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/static/client.js?v{%version%}"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<!-- mCaptcha JavaScript -->
|
||||
<!-- Use without JavaScript: https://mcaptcha.org/docs/user-manual/how-to-mcaptcha-without-js -->
|
||||
<!-- <script type="module">!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.mcaptchaGlue=t():e.mcaptchaGlue=t()}(self,(()=>{return e={545:function(e){var t;t=()=>(()=>{"use strict";var e={};return{166:function(e,t){var n,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0}),t.ConfigurationError=void 0;var r=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.message="Provide either widget link or site key to display mCaptcha widget",t}return i(t,e),t}(Error);t.ConfigurationError=r;var o=function(){function e(e,t){var n=this;if(this.handle=function(e){console.log("message received from ".concat(e.origin," with data: ").concat(e.data.token)),new URL(e.origin).host==n.widgetLink.host?n.updateState(e.data.token):console.error("expected message from ".concat(n.widgetLink.host," but received message from ").concat(e.origin,". Aborting."))},this.updateState=t,e.widgetLink&&e.siteKey)throw new r;if(e.widgetLink)this.widgetLink=e.widgetLink;else{if(!e.siteKey)throw new r;e.siteKey.instanceUrl?(this.widgetLink=e.siteKey.instanceUrl,this.widgetLink.pathname="/widget/",this.widgetLink.search="?sitekey=".concat(e.siteKey.key)):this.widgetLink=new URL("https://captacha.sudovanilla.org/widget/?sitekey=".concat(e.siteKey.key))}}return e.prototype.listen=function(){window.addEventListener("message",this.handle)},e.prototype.destroy=function(){window.removeEventListener("message",this.handle)},e}();t.default=o}}[166](0,e),e})(),e.exports=t()},942:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ID=t.INPUT_LABEL_ID=t.INPUT_NAME=void 0,t.INPUT_NAME="mcaptcha__token",t.INPUT_LABEL_ID="mcaptcha__token-label",t.ID="mcaptcha__widget-container"},166:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConfigurationError=void 0;var r=n(545);Object.defineProperty(t,"ConfigurationError",{enumerable:!0,get:function(){return r.ConfigurationError}});var o=i(n(695));(0,n(695).run)(),t.default=o.default},695:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.run=void 0;var r=i(n(545)),o=n(942),a=function(e){var t=this;this.setToken=function(e){return t.inputElement.value=e},this.receiver=new r.default(e,this.setToken),this.receiver.listen();var n=document.getElementById(o.ID);if(null==n)throw new Error("Element ".concat(o.ID,"'s parent element is undefined"));var i=document.getElementById(o.INPUT_LABEL_ID);null!==i&&(i.style.display="none"),this.inputElement=document.getElementById(o.INPUT_NAME),this.inputElement.id=o.INPUT_NAME,this.inputElement.name=o.INPUT_NAME,this.inputElement.hidden=!0,this.inputElement.required=!0,this.inputElement.style.display="none",n.appendChild(this.inputElement);var a="mcaptcha-widget__iframe",s=document.createElement("iframe");s.title="mCaptcha",s.src=this.receiver.widgetLink.toString(),s.ariaRoleDescription="presentation",s.name=a,s.id=a,s.scrolling="no";try{s.sandbox="allow-same-origin allow-scripts allow-popups"}catch(e){try{s.sandbox.add("allow-same-origin"),s.sandbox.add("allow-scripts"),s.sandbox.add("allow-popups")}catch(e){s.setAttribute("sandbox","allow-same-origin allow-scripts allow-popups")}}s.width="100%",s.height="100%",s.frameBorder="0",n.appendChild(s)};t.run=function(){var e=document.getElementById(o.INPUT_LABEL_ID);if(null===e||!e.dataset.mcaptcha_url)throw new Error('Couldn\'t find "mcaptcha_url" dataset in elmement (ID='.concat(o.INPUT_LABEL_ID,")"));var t={widgetLink:new URL(e.dataset.mcaptcha_url)};new a(t)},t.default=a}},t={},function n(i){var r=t[i];if(void 0!==r)return r.exports;var o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,n),o.exports}(166);var e,t}));</script> -->
|
Loading…
Add table
Reference in a new issue