- Joined
- Aug 24, 2023
I keep getting "Page could not be loaded" but a quick refresh or two and the page loads right away. Dunno if it's a DNS issue on my side but if it happens to anyone else and if you have solved it let me know.
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
The certificate is not revokedI mean, effectively this disables all checking for certificate revocation for many SSL certs (for example, Harica or LetsEncrypt), because they've shut off OCSP checking.
If you only use this browser profile for Kiwifarms via Tor, potentially other Tor sites you trust, and no other web sites, this might be safe enough.
It seems like updating the cert to one that isn't revoked would be better.
VPNs continue to work through Spur and Monocle. We used Spur and Monocle on the Tartarus Captcha in order to stop child pornography spam. If we did not utilize Spur we would have been unable to open registrations and/or stop child pornography spam. I will continue to use Spur and Monocle as a service and this is non-negotiable. Right now there is a botnet attacking the site and scraping data off pages. I am experimenting to see if Spur/Monocle can be used to protect user privacy from this undeclared botnet scraping attack. The only thing that Monocle does is check your IP for being a residential VPN, which is a VPN exit point acquired from an unwitting user compromised either by using a free VPN or a phone app that sells your IP. These services are never used legitimately, they are used only to bypass legitimate forms of security. An rVPN is not the same as a VPN. I have no intentions of blocking VPNs. I am using Mullvad right now. Spur/Monocle is never loaded outside of the Tartarus PoW page. Once you complete the Tartarus PoW or Tartarus Captcha, you do not load Spur resources. An ordinary page request to the Kiwi Farms after finishing the Tartarus security challenge communicates no information to Spur. I may make the security systems the site employs flexible/tiered based on the level of threat we are under. For now, I am experimenting with stopping undeclared botnets from scraping all user data off the Kiwi Farms.
Try not holding down shift when right-clicking and select the option to download the original video.Not sure if reported yet. I can't seem to download any video file posted directly to the farms. Shift + right clicking to open a video in a new tab just gives me the background image of the site (damnatio-memoriae5.webp). Not sure what's causing this or if it's just a browser-specific bug but I'm running Librewolf 153.0.3-1.
This also happens if you quote, you can't insert anything between the quote and the image.There's this diddy ah bug when you put an image as the first element in your post, it gets stuck there. The text cursor cannot get behind it and you can't type anything before that image.
Doesn't bring up anything for me. Right-clicking anywhere else is fine, but over a video nothing comes up without hitting shift.Try not holding down shift when right-clicking
Sounds like the actual bug.Doesn't bring up anything for me. Right-clicking anywhere else is fine, but over a video nothing comes up without hitting shift.
// ==UserScript==
// @name Ephyra Player → Native Video
// @namespace https://github.com/local/userscripts
// @version 1.0.0
// @description Replaces Ephyra custom video players with plain <video> elements using hls.js.
// @author you
// @match *://kiwifarms.st/*
// @run-at document-body
// @inject-into content
// @grant GM_download
// @require https://cdn.jsdelivr.net/npm/hls.js@1.6.16/dist/hls.min.js
// @icon https://www.google.com/s2/favicons?sz=64&domain=kiwifarms.st
// ==/UserScript==
console.assert(Hls.isSupported());
(function () {
'use strict';
/**
* Replace a single .ephyra-player element with a native <video>.
* @param {HTMLElement} player
*/
const replacePlayer = player => {
const parent = player.parentElement;
if (!parent) {
console.warn('player has no parent, already removed?', player);
return;
}
const manifest = player.dataset.manifest;
if (!manifest) return;
const video = document.createElement(player.classList.contains('ephyra-player--audio') ? 'audio' : 'video');
video.controls = true;
video.preload = 'metadata';
video.poster = player.dataset.poster || player.dataset.posterFallback || '';
// Preserve the original player's layout constraints
video.style.cssText = player.style.cssText;
// Make sure the element itself fills available space
video.style.display = 'block';
video.style.maxWidth = '100%';
video.style.background = '#000';
parent.style.display = 'inline-block';
parent.style.verticalAlign = 'top';
parent.classList.remove('ephyra-media');
player.replaceWith(video);
const hls = new Hls({enableWorker:false, debug: false, capLevelToPlayerSize: true, startLevel: -1});
hls.on(Hls.Events.ERROR, console.warn);
hls.loadSource((new URL(manifest, location.href)).href);
hls.attachMedia(video);
const fallback = player.dataset.sourceFallback;
if (fallback) {
// const source = document.createElement('source');
// source.src = fallback;
// video.appendChild(source);
const dl = document.createElement('a');
const filename = player.dataset.filename || fallback.split('/').pop();
dl.href = fallback;
dl.download = filename;
dl.textContent = `⬇ Download ${filename}`;
dl.target = '_blank';
dl.style.cssText = [
'display:inline-block',
'margin-top:4px',
'font-size:0.8em',
'color:inherit',
'opacity:0.7',
'cursor:pointer'
].join(';');
video.insertAdjacentElement('afterend', dl);
dl.addEventListener('mouseover', event => event.stopImmediatePropagation(), true);
dl.onclick = e => {
e.preventDefault();
GM_download((new URL(fallback, location.href)).href, filename);
}
}
console.debug('[ephyra→video] replaced', player.id || player, Object.entries(player.dataset).map(e => e.join('=')), Array.from(video.children));
}
const selector = 'div.ephyra-player[data-manifest]';
// Run immediately on existing players
document.querySelectorAll(selector).forEach(replacePlayer);
// Also watch for players injected after page load (infinite scroll, XHR, etc.)
const observer = new MutationObserver(mutations => {
for (const { addedNodes } of mutations) {
for (const node of addedNodes) {
if (node.tagName) {
if (node.matches(selector))
replacePlayer(node);
else if (node.tagName === 'IFRAME')
node.removeAttribute('title');
}
}
}
});
for (const iframe of document.querySelectorAll('iframe[title]')) {
iframe.removeAttribute('title');
}
observer.observe(document.all?.top ?? document.body, { childList: true, subtree: true });
})();
Try switching to "bbcode" mode and editing it that way, click the 3 dots in the bar, not always needed, and then the [ ] brackets, add or remove the blank space you need to and click again to turn off.This also happens if you quote, you can't insert anything between the quote and the image.
The point was to download the underlying video file, so yes."the fix is to completely break that shit and take advantage of the fact null still exposes the underlying video file when he doesn't really have to"
Use the .onion?I seem to be unable to log in from TOR. I don't want to have my asshole shown to the world so pls fix.