Feedback Technical Grievances

  • 🏰 Deploying update to the Tatarus security page. If you encounter issues, post here.
  • Want to keep track of this thread?
    Accounts can bookmark posts, watch threads for updates, and jump back to where you stopped reading.
    Create account
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.
 
I can't connect to the site on my computer. I get an error saying "Browser verification could not complete. Check script blocking and reload the page." Even though I've disabled Ublock Origin. I am using Firefox. This is the same error I get trying to post on 4chan, I don't know what's wrong with spur.
 
I 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.
The certificate is not revoked
 
FYI, I had to unblock two new scripts/sites in NoScript to get the captcha solved after the recent update.
 
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.
 
Something I just encountered is the homepage and watched threads page both use 90%+ of my CPU when they're open, but the threads themselves work fine. Using Brave on a pretty crappy computer, but my browser usually only uses around 5% with several tabs open.
 
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.
 
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.
Try not holding down shift when right-clicking and select the option to download the original video.
 
Doesn't bring up anything for me. Right-clicking anywhere else is fine, but over a video nothing comes up without hitting shift.
Sounds like the actual bug.

As a workaround here's the userscript I use to replace the fancy player with a simpler one:

JavaScript:
// ==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 });
})();
 
"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"
 
This also happens if you quote, you can't insert anything between the quote and the image.
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.
 
"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"
The point was to download the underlying video file, so yes.

Most of the script is just using HLS, not the original video file, but with the native <video> player because I hate change (like unfamiliar playback controls).
 
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.
1786477837572.png
 
Back
Top Bottom