Compare commits

...

5 Commits

Author SHA1 Message Date
1515a0067a Minor fixes, edge cases analysis, filter addition and update to transfem webring source and my ID.
All checks were successful
Website Sync / website-sync (push) Successful in 5s
2026-03-21 11:14:08 -03:00
775641dc36 Small fixes to improve memory performance, temporary code deletion and small typo in img file location.
All checks were successful
Website Sync / website-sync (push) Successful in 4s
2026-03-16 17:10:25 -03:00
eeefee56ac Forgotten changes made to webring addition
All checks were successful
Website Sync / website-sync (push) Successful in 4s
2026-03-15 22:04:09 -03:00
75655be103 Preliminary adition to transing the internet webring, and tweaks and optimization to previous code regarding javascript to php rewrite, more concise and legible code functions.
All checks were successful
Website Sync / website-sync (push) Successful in 5s
2026-03-15 21:59:05 -03:00
ccaf930265 (tentative) addition to transfem webring, this includes a write to the original javascript script to php (currently using local information for performance reasons). Have to update ID when properly accepted into the webring!
All checks were successful
Website Sync / website-sync (push) Successful in 5s
2026-03-14 15:17:37 -03:00
30 changed files with 1382 additions and 16 deletions

View File

@@ -17,7 +17,7 @@
<img src="../img/blinkies/dontfeedtheai.gif" alt="">
<img src="../img/blinkies/firefox_user.gif" alt="">
<img src="../img/blinkies/firefoxget.gif" alt="">
<img src="../img/blinkies/html junkie.gif" alt="">
<img src="../img/blinkies/htmljunkie.gif" alt="">
<div class="spacer"></div>
</div>
<?php } ?>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -58,22 +58,28 @@ img { image-rendering: pixelated;}
font-weight: normal;
font-style: normal;}
@font-face {
font-family: 'basiic';
src: url('../fonts/basiic.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'molecule31';
src: url('../fonts/molecule31_font.ttf') format('truetype');
font-weight: normal;
font-style: normal;}
@font-face {
font-family: 'beefont';
src: url('../fonts/beefont.ttf') format('truetype');
font-family: 'ms pgothic';
src: url('../fonts/ms_pgothic.ttf') format('truetype');
font-weight: normal;
font-style: normal;}
* { text-align: center; }
body { font-family: 'special elite', honyaji, basiic, monospace, serif, sans-serif; }
body { font-family: 'special elite', monospace, serif, sans-serif; }
/* ----------------- Color -------------------- */

View File

@@ -81,15 +81,24 @@
align-content: center;}
.webrings .auto-scroll {
height: 65%;
width: fit-content;
flex-direction: row;
animation-name: scroll-webring-mobile;}
.webrings .scroll_one, .webrings .scroll_two {
gap: 2em;
flex-direction: row;}
.webrings .scroll_one > div , .webrings .scroll_two > div {
flex-shrink: 0;
height: 100%;
width: fit-content;
}
.webrings .auto-scroll > * > div img {
height: 60px;
width: auto;}
height: 100%;
width: auto;}
.scroll_below-clip-box {
position: absolute;
@@ -127,6 +136,10 @@
from {transform: translateX(calc(-50%));}
to {transform: translateX(0%);}}
.webrings .auto-scroll {
animation-duration: 25s;
}
/* Vertical scroll text */
.verticalscroll .auto-scroll {
animation-name: scroll-vertical;

Binary file not shown.

After

Width:  |  Height:  |  Size: 875 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 946 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 906 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 919 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 863 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 610 B

View File

@@ -0,0 +1,45 @@
<?php
// Gets a file given an array with sources
function getFile(array $source){
$selected_source = $source["sources"][$source["selected_source"]];
if ($selected_source["source"] === "local") {
$file = file_get_contents(__DIR__ . $selected_source["url"]);
} else if ($selected_source["source"] === "internet") {
$curl = curl_init($selected_source["url"]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$file = curl_exec($curl);
if ($file === false) {
echo "Error: " . curl_error($curl);
exit;
}
curl_close($curl);
}
unset($selected_source,$curl);
return $file;
}
// Returns the given sub-string given a initial search pattern, and a final end pattern.
function extractString(string $string,string $start_pattern, string $end_pattern) {
$start_pos = strpos($string,$start_pattern,strlen($start_pattern)) + strlen($start_pattern);
$end_pos = strpos($string,$end_pattern, $start_pos);
$extracted_string = substr($string, $start_pos, $end_pos - $start_pos);
unset($start_pos,$end_pos);
return $extracted_string;
}
// Self-explanatory
function scrapeWebsiteSites(array $source,string $start_pattern, string $end_pattern) {
$script = getFile($source);
$websites = extractString($script,$start_pattern,$end_pattern);
unset($script);
return $websites;
}

View File

@@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
require_once("common_webrings.inc.php");
require_once('transfemwebring_contr.inc.php');
require_once('transfemwebring_view.inc.php');
FEMRINGrender();

View File

@@ -0,0 +1,73 @@
// based again off https://transring.neocities.org/ring.js :)
// which is based off https://juneish.neocities.org/resources/webstring/
{
const VALID_WIDGET_TYPES = ["transgender", "nonbinary"]
let transfemring = {
// sitelist (oldest to newest)
// strip the protocol off
sites: [{"id":1,"description":"You're here!","site_link":"fem.nz","author":"me","in_the_ring":true,"notes":"","created_at":"2025-10-07T08:10:09.659Z","updated_at":"2025-10-07T08:10:09.659Z"},{"id":2,"description":"transfem webdev :p","site_link":"skyler.lol","author":"Skyler!","in_the_ring":false,"notes":"","created_at":"2025-10-07T08:10:35.275Z","updated_at":"2025-10-07T08:10:35.275Z"},{"id":3,"description":"just a personal site for music, musings, and blog posts! ran by a transfem enby :)","site_link":"transferns.neocities.org","author":"Andie/Fern","in_the_ring":true,"notes":"","created_at":"2025-10-07T08:10:57.429Z","updated_at":"2025-12-11T02:14:39.833Z"},{"id":4,"description":"the most evil and repulsive website on planet earth","site_link":"cresentri.com","author":"cresentri","in_the_ring":true,"notes":"","created_at":"2025-10-07T08:11:30.742Z","updated_at":"2025-10-07T08:11:30.883Z"},{"id":5,"description":"i'm messing around with trying to learn how to use html for somewhat interesting things i guess","site_link":"iseel.neocities.org","author":"IseeL","in_the_ring":true,"notes":"","created_at":"2025-10-07T08:12:18.126Z","updated_at":"2025-10-07T08:29:03.148Z"},{"id":6,"description":"Just a place for me to share info about my projects and talk about things i enjoy \u003c3","site_link":"vivslakes.moe","author":"Viv","in_the_ring":true,"notes":"","created_at":"2025-10-07T08:13:05.476Z","updated_at":"2025-10-07T08:13:05.567Z"},{"id":7,"description":"all kinds of things!","site_link":"fionaruthbo.neocities.org","author":"Fiona Ruthbo","in_the_ring":true,"notes":"","created_at":"2025-10-07T08:14:16.412Z","updated_at":"2025-10-07T08:14:16.428Z"},{"id":8,"description":"Poetry, halftones, and Twitchy.","site_link":"klara.nz","author":"me!","in_the_ring":true,"notes":"","created_at":"2025-10-07T08:39:07.132Z","updated_at":"2025-10-07T08:57:26.399Z"},{"id":9,"description":"a little birdie on the internet :)","site_link":"kestrel.pet","author":"Kestrel","in_the_ring":true,"notes":"","created_at":"2025-11-15T06:57:16.625Z","updated_at":"2025-11-15T06:57:26.268Z"},{"id":10,"description":"autistic artist musician webdev dragon(girl?)thing; very gay; rawr","site_link":"ytd.wtf","author":"Yuri the Dragon","in_the_ring":true,"notes":"","created_at":"2025-12-30T09:57:00.232Z","updated_at":"2025-12-30T11:19:58.022Z"},{"id":11,"description":"This website runs on my living room heater","site_link":"izzy.kiwi","author":"Just Izzy","in_the_ring":false,"notes":"","created_at":"2025-12-30T11:19:12.953Z","updated_at":"2026-01-01T02:54:57.059Z"},{"id":12,"description":"a dump for all of my projects and adhd thoughts","site_link":"ikelene.dev","author":"Ikelene","in_the_ring":true,"notes":"","created_at":"2026-01-23T01:52:44.443Z","updated_at":"2026-01-23T01:52:44.463Z"},{"id":13,"description":"contains my mind space, which includes gaming, references, easter eggs, art, programming, etc!","site_link":"theabsoluterealm.com","author":"ezra","in_the_ring":true,"notes":"","created_at":"2026-01-23T01:54:27.672Z","updated_at":"2026-01-23T01:56:27.520Z"},{"id":14,"description":"Just a trans girl that likes radios, computers, creative freedom, art, etc not much more to it!","site_link":"cafepots.neocities.org","author":"Cafe_Pots","in_the_ring":true,"notes":"","created_at":"2026-01-30T08:36:39.133Z","updated_at":"2026-01-30T08:36:51.946Z"},{"id":15,"description":"Extension of my cute, sparkley, sprinkle filled transfem brain! ദ്ദി◝ ⩊ ◜)","site_link":"winzpir.neocities.org","author":"Winzpir/Angel","in_the_ring":true,"notes":"","created_at":"2026-02-20T01:31:47.843Z","updated_at":"2026-02-20T01:31:47.843Z"},{"id":16,"description":"Personal site - my ttrpg's, writing and other experiment","site_link":"tiiimezombie.neocities.org","author":"Val","in_the_ring":true,"notes":"","created_at":"2026-03-19T05:48:10.093Z","updated_at":"2026-03-19T05:48:10.115Z"},{"id":17,"description":"my little cozy place on the internet :p","site_link":"ethernal.win","author":"masiv_","in_the_ring":false,"notes":"","created_at":"2026-03-19T05:49:01.290Z","updated_at":"2026-03-19T05:55:08.612Z"}],
root: "https://fem.nz"
}
console.log(transfemring)
transfemring.index = location.href.startsWith("file://") ? 0 : transfemring.sites.findIndex((entry) => location.href.includes("://" + entry.site_link));
let widget = document.currentScript.dataset.widget ?? "transgender";
function urlWithWidget(path) {
return `${transfemring.root}/ring/${widget}/${path}`
}
if (!VALID_WIDGET_TYPES.includes(widget)) {
console.log("To web admin: transfem webring widget should have data-widget set to one of the following if configured (attribute will default to 'transgender'):", VALID_WIDGET_TYPES)
console.log(`data-widget currently set to: ${widget}`)
widget = "transgender"
}
if (transfemring.index === -1) {
document.currentScript.outerHTML = `
<div>
<div class="transfem-ring" style="display: flex; justify-content: center; align-items: center; gap: 3.278%; max-width: 244px; image-rendering: pixelated">
<a href="${transfemring.root}" target="_top"><img width="168" height="61" src="${urlWithWidget("banner.png")}"></a>
</div>
(not yet, but maybe soon!)
</div>
`;
} else {
function nextActive() {
let currentIndex = transfemring.index + 1
while (!location.href.includes(transfemring.sites[currentIndex % transfemring.sites.length].site_link)) {
if (transfemring.sites[currentIndex % transfemring.sites.length].in_the_ring) {
return transfemring.sites[currentIndex % transfemring.sites.length]
}
currentIndex++
}
return transfemring.sites[currentIndex % transfemring.sites.length]
}
function previousActive() {
let currentIndex = transfemring.index - 1
while (!location.href.includes(transfemring.sites.at(currentIndex).site_link)) {
if (transfemring.sites.at(currentIndex).in_the_ring) {
return transfemring.sites.at(currentIndex)
}
currentIndex--
}
return transfemring.sites[currentIndex % transfemring.sites.length]
}
let next = "https://" + nextActive().site_link
let prev = "https://" + previousActive().site_link;
document.currentScript.outerHTML = `
<div class="transfem-ring" style="display: flex; justify-content: center; align-items: center; gap: 3.278%; max-width: 244px; image-rendering: pixelated">
<a href="${prev}" target="_top" style="width: 12.295%">
<img width="30" height="32" src="${urlWithWidget("arrow.png")}" alt="previous site">
</a>
<a href="${transfemring.root}" target="_top" style="width: 68.852%">
<img width="168" height="61" src="${urlWithWidget("banner.png")}" alt="transfem webring">
</a>
<a href="${next}" target="_top" style="width: 12.295%">
<img width="30" height="32" src="${urlWithWidget("arrow.png")}" alt="next site" style="transform: scaleX(-1);">
</a>
</div>
`;
}
}

View File

@@ -0,0 +1,132 @@
<?php
declare(strict_types=1);
// File sources, images & scripts
$TRANSFEMRING_FILES = [
"nonbinary" => [
"arrow_path" => "../../../img/webrings/transfem_enby_arrow.png",
"banner_path" => "../../../img/webrings/transfem_enby_banner.png"
],
"transgender" => [
"arrow_path" => "../../../img/webrings/transfem_trans_arrow.png",
"banner_path" => "../../../img/webrings/transfem_trans_banner.png"
]
];
$TRANSFEMRING_SCRIPT_SOURCE = [
"selected_source" => 1,
"sources" =>
[["url" => "https://fem.nz/ring/transfemring.js",
"source" => "internet"],
["url" => "/transfemwebring.js",
"source" => "local"]]
];
// Specific variables for script
$TRANSFEMRING_ROOT = "https://fem.nz";
$TRANSFEMRING_VALID_WIDGET_TYPES = ["transgender", "nonbinary"];
// Personal identifiers/choices
$TRANSFEMRING_WIDGET_TYPE = $TRANSFEMRING_VALID_WIDGET_TYPES[1];
$TRANSFEMRING_ID = 16;
// Functions
function primarySplit(string $array) {
$i = 0;
while (strlen($array) !== 0) {
// Strip coma if found
if (str_starts_with($array,',')) {
$array = substr($array,1);
}
// Get substring position and length
$start_pos = 1;
$end_pos = strpos($array,"}",1);
$item_len = $end_pos - $start_pos;
// Save website into array, and strip array
$return_array[$i] = substr($array,$start_pos,$item_len);
$array = substr($array,$item_len+2); // +2 from { and }
$i++;
}
unset($array,$start_pos,$end_pos,$item_len,$array);
return $return_array;
}
function secondarySplit(string $sub_array) {
while (strlen($sub_array) !== 0){
if (str_starts_with($sub_array,',')) {
$sub_array = substr($sub_array,1);
}
$key_start_pos = 1;
$key_end_pos = strpos($sub_array,"\"",1);
$key_len = $key_end_pos - $key_start_pos;
$key = substr($sub_array,$key_start_pos,$key_len);
$value_start_pos = $key_len + 3; // +3 from " , " and :
// Check if key is quoted
if (strpos($sub_array,"\"",$value_start_pos) != $value_start_pos) {
$keyhasQuotes = FALSE;
$value_end_pos = strpos($sub_array,",");
} else {
$value_start_pos++; // +1 from "
$value_end_pos = strpos($sub_array,"\"",$value_start_pos);
$keyhasQuotes = TRUE;
}
$value_len = $value_end_pos - $value_start_pos;
$value = substr($sub_array,$value_start_pos,$value_len);
$return_sub_array[$key] = $value;
$sub_sub_array_len = $key_len + $value_len + 3; // +3 from " , " and :
if ($keyhasQuotes) {
$sub_sub_array_len = $sub_sub_array_len + 2; // +2 from " and "
}
$sub_array = substr($sub_array,$sub_sub_array_len);
}
unset($sub_array, $value, $value_len, $value_start_pos, $value_end_pos, $key, $key_len, $key_start_pos, $key_end_pos, $keyhasQuotes, $sub_sub_array_len);
return $return_sub_array;
}
function excludeNonactive(array $sites) {
for ($i = 1; $i < count($sites); $i++){
if ($sites[$i]['in_the_ring'] === "false") {
array_splice($sites,$i,1);
}
}
return $sites;
}
function addEdge(array $array) {
$array[count($array)] = $array[0];
return $array;
}
$transfemring_sites = scrapeWebsiteSites($TRANSFEMRING_SCRIPT_SOURCE,'sites: [',']');
$transfemring_sites = primarySplit($transfemring_sites);
for ($i = 0; $i < sizeof($transfemring_sites); $i++) {
$depured_transfemring_sites[$i] = secondarySplit($transfemring_sites[$i]);
}
$depured_transfemring_sites = excludeNonactive($depured_transfemring_sites);
$depured_transfemring_sites = addEdge($depured_transfemring_sites);
$transfemring_sites = $depured_transfemring_sites;
unset($depured_transfemring_sites);
for ($i = 1; $i < count($transfemring_sites); $i++){
if ($transfemring_sites[$i]['id'] == $TRANSFEMRING_ID) {
$transfem_prev = 'https://' . $transfemring_sites[($i-1)]["site_link"];
$transfem_current = 'https://' . $transfemring_sites[($i)]["site_link"];
$transfem_next = 'https://' . $transfemring_sites[($i+1)]["site_link"];
$found = TRUE;
}
}
if (!isset($found)) {
echo ("ERROR ID NOT FOUND");
}

View File

@@ -0,0 +1,20 @@
<?php
declare(strict_types=1);
function FEMRINGrender(){
global $TRANSFEMRING_ROOT, $TRANSFEMRING_FILES, $TRANSFEMRING_WIDGET_TYPE, $transfem_prev, $transfem_next;
?>
<div class="transfem-ring" style="display: flex; justify-content: center; align-items: center; image-rendering: pixelated;">
<a href="<?php echo $transfem_prev ?>" target="_top" style="height: 100%; width: 15.574%;">
<img src="<?php echo $TRANSFEMRING_FILES[$TRANSFEMRING_WIDGET_TYPE]["arrow_path"]; ?>" alt="previous site" style="vertical-align: middle; height: 100%;">
</a>
<a href="<?php echo $TRANSFEMRING_ROOT ?>" target="_top" style="height: 100%; width: 68.852%;">
<img src="<?php echo $TRANSFEMRING_FILES[$TRANSFEMRING_WIDGET_TYPE]["banner_path"]; ?>" alt="transfem webring" style="vertical-align: middle; height: 100%;">
</a>
<a href="<?php echo $transfem_next ?>" target="_top" style="height: 100%; width: 15.574%;">
<img src="<?php echo $TRANSFEMRING_FILES[$TRANSFEMRING_WIDGET_TYPE]["arrow_path"]; ?>" alt="next site" style="transform: scaleX(-1); vertical-align: middle; height: 100%;">
</a>
</div>
<?php
}

View File

@@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
require_once("common_webrings.inc.php");
require_once('transingtheinternet_contr.inc.php');
require_once('transingtheinternet_view.inc.php');
TRANSINGrender();

View File

@@ -0,0 +1,926 @@
// webstring by june @ juneish.neocities.org
{
let webring = {
// sites in the ring
// remove the https://
sites: [
//"elijahposttrash.neocities.org",
"napkinonline.nekoweb.org",
"cossechan.nekoweb.org",
"rainfrog.nekoweb.org",
"lotusmoonstart.neocities.org",
"foxlore.neocities.org",
"butterfly3000.neocities.org",
"zimawtf.neocities.org",
"princesschainsaw.neocities.org",
"homopile.neocities.org",
"ruitherga.neocities.org",
"tudorcottage.neocities.org",
"jorse.neocities.org",
"the-ivesofmarch.neocities.org",
"pombogay.neocities.org",
"ries.neocities.org",
"coffeeplant.neocities.org",
"eviltmasccatboypili.neocities.org",
"kiwiandoesthings.place",
"liquid-sunshine.neocities.org",
"winchuckster.neocities.org",
"marlena.app",
"clare.nekoweb.org",
"lexthesilly.neocities.org",
"giantmolecular.cloud",
"caterpillarangel.neocities.org",
"quinnbozon.nekoweb.org",
"endy-boi.neocities.org",
"thelostsignal.neocities.org",
"tesseractcube.neocities.org",
"americanachronism.neocities.org",
"attissillies.neocities.org",
"chirpylaura.neocities.org",
"xenon-starz.neocities.org",
"yoyle.city",
"julians-art.neocities.org",
"djsng.neocities.org",
"maehat.neocities.org",
"plaguecore.neocities.org",
"enteragoodnamehere.neocities.org",
"brooklynights.nekoweb.org",
"5k1n3473r.neocities.org",
"loserlost.neocities.org",
"knife-in-the-coffee.neocities.org",
"wheel-of-fortune.neocities.org",
"starboystation.neocities.org",
"lemonsprout.neocities.org",
"bloodbathspite.neocities.org",
"stargazing.nekoweb.org",
"b1temark.neocities.org",
"vinventolin.neocities.org",
"mfdook.neocities.org",
"conners1corner.neocities.org",
"backtick.nekoweb.org",
"odriscoll.neocities.org",
"fireye.coffee",
"iso-bel.computer",
"xpvm.net",
"jaennymorton.neocities.org",
"flimsknoght.neocities.org",
"www.honeyteaaa.art",
"androbohij.cc",
"nickyturner.neocities.org",
"colgator.neocities.org",
"vabu.nekoweb.org",
"the-disorganized-mind-palace.neocities.org",
"clementinesyumehaven.neocities.org",
"shittymeat999.neocities.org",
"starfield.nekoweb.org",
"weban3e1.neocities.org",
"kaidoesartzz.nekoweb.org",
"natsfixations.neocities.org",
"bensect.space",
"wackysworld.neocities.org",
"webgutter.neocities.org",
"iseel.neocities.org",
"samsolarsystem.neocities.org",
"thestrangeemporium.neocities.org",
"chromix.nekoweb.org",
"eonsadrift.nekoweb.org",
"juliesqueaks.neocities.org",
"danzig.nekoweb.org",
"barkode.neocities.org",
"mustymixtape.neocities.org",
"charmiesworld.neocities.org",
"kadyjerry.neocities.org",
"notes-from-michaels-desk.neocities.org",
"sleeping-satan.neocities.org",
"integratedvoices.neocities.org",
"ephesusmoon.neocities.org",
"aglovale.nekoweb.org",
"friendshapedplant.neocities.org",
"animalgirlssanctuary.neocities.org",
"cynderthekitsune.nekoweb.org",
"spaceblog.neocities.org",
"skyllrk.neocities.org",
"femtanyl03.neocities.org",
"jennie-archives.neocities.org",
"mcdougmuffin.neocities.org",
"bunnyboyblog.neocities.org",
"wizardhell.neocities.org",
"mightbemod.neocities.org",
"esiacannotforget.neocities.org",
"skyler.lol",
"pokeymanatee4.xyz",
"hereafterlaughter.neocities.org",
"fresh1219.neocities.org",
"letsgoleelee.neocities.org",
"rue04.neocities.org",
"cubething.dev",
"mostsilliest.nekoweb.org",
"mavisdeluna.art",
"somebit.neocities.org",
"themarshe.neocities.org",
"cryotato.github.io",
"girlboybird.hotglue.me",
"crowguinisonline.neocities.org",
"daisybells.neocities.org",
"crypticamanita.neocities.org",
"orbitt.sbs",
"0ldw3bl0v3r.neocities.org",
"socsie.space",
"exclave.city",
"michoislost.nekoweb.org",
"kero.net",
"musicalmatchalatte.gay",
"somewhere-city.neocities.org",
"bellpepperfan.neocities.org",
"ancientangel333.neocities.org",
"thealleyway.neocities.org",
"maycithegal.nekoweb.org",
"ikelene.nekoweb.org",
"jackpurrin.me",
"angelnetcast.com",
"ourfriendsplace.neocities.org",
"ceefax.nekoweb.org",
"mrwrzr.neocities.org",
"darxori.neocities.org",
"sugarsamu.neocities.org",
"leonie.lgbt",
"april.nekoweb.org",
"computersoda.neocities.org",
"neonspiral.neocities.org",
"werewiire.neocities.org",
"ollie-okay.neocities.org",
"csarhere.nekoweb.org",
"mezbezls.neocities.org",
"playoffs-nem.neocities.org",
"peppers-wasteland.neocities.org",
"wlodekm.nekoweb.org",
"barkingdead.neocities.org",
"myepicsite424.neocities.org",
"ridvenge.neocities.org",
"digitaldoggi.com",
"goodgirl.dev",
"mossyscorner.neocities.org",
"dospuntostr.es",
"rakii0zuu.neocities.org",
"the-icarus-archive.neocities.org",
"kaiswonderland.nekoweb.org",
"crowpunk.co",
"gl1tz1.monster",
"itztheo.neocities.org",
"deadvenge.neocities.org",
"thoushallkill.neocities.org",
"gwurb.neocities.org",
"starsforthelivinganddead.neocities.org",
"livvy94.neocities.org",
"mocha8686.neocities.org",
"ancientcrypt.neocities.org",
"jaspertheepic.neocities.org",
"crazed4sallymanders.neocities.org",
"summer-slushpups-hut.neocities.org",
"applejuicey.neocities.org",
"guzu2squared.neocities.org",
"martin-is-a-real-person.neocities.org",
"cosm-os.neocities.org",
"decomdiatom.neocities.org",
"mistakemp4.neocities.org",
"pogmom.me",
"masterluuc.neocities.org",
"cyntheticgal.neocities.org",
"moths-clubhouse.neocities.org",
"smoothscallywag.neocities.org",
"cwd.moe",
"korumeow.dev",
"cascaria.neocities.org",
"roguepebble.neocities.org",
"lizzardencounter.neocities.org",
"jamie.monster",
"natthecat.net",
"laprogrammatriceverde.crabdance.com",
"nathanntan.neocities.org",
"softfuzzycedar.neocities.org",
"didelphidae.neocities.org",
"darkxwolf17.nekoweb.org",
"wateringfruits.neocities.org",
"boredhobo.neocities.org",
"furbycoven.neocities.org",
"darkmomokocore.neocities.org",
"lilys-place.nekoweb.org",
"calzonie.neocities.org",
"jesterknight.neocities.org",
"lorekeeping.neocities.org",
"yokosplace.xyz",
"kris-scapes.neocities.org",
"digitalvenus.neocities.org",
"mewardgay.neocities.org",
"candyteeth.neocities.org",
"futch.nekoweb.org",
"okaynana.neocities.org",
"artielas.neocities.org",
"pucha1985.neocities.org",
"alienspaceinvader.neocities.org",
"smugwolf.neocities.org",
"nilistisk.neocities.org",
"dyingsignals.love",
"bananasplit.nekoweb.org",
"twinkpad.neocities.org",
"deadon.rip",
"icarusdean.neocities.org",
"estivalbloom.neocities.org",
"nightmarefish.neocities.org",
"planthouse.neocities.org",
"emo-mruczek.pet",
"mechagic.party",
"yuros-nest.neocities.org",
"carrick-pre.github.io",
"orlandoscoffee.neocities.org",
"bonesdale.neocities.org",
"elu-isa.neocities.org",
"cult.ist",
"killanova.neocities.org",
"usahanaa.neocities.org",
"necrodancing.neocities.org",
"enderwebs.neocities.org",
"p1xieparadis3.neocities.org",
"wyrppad.neocities.org",
"sluglife.neocities.org",
"elixirical.nekoweb.org",
"ghostingpen.neocities.org",
"cindyblossom.neocities.org",
"www.bearadactyl.net",
"lerariemann.nekoweb.org",
"mayonmnnaise.nekoweb.org",
"defoko-mp3.neocities.org",
"dipschitt.neocities.org",
"wanwanworld.neocities.org",
"chrysallis.neocities.org",
"plushcowz.neocities.org",
"sugarangel.neocities.org",
"toonilumi.neocities.org",
"tohellwithit.nekoweb.org",
"paulsworld.neocities.org",
"teddys-grove.neocities.org",
"simplyjason.neocities.org",
"cadapra.neocities.org",
"avaforward.neocities.org",
"toribytez.neocities.org",
"sudo.pink",
"jello01000101.neocities.org",
"rollergirlz.nekoweb.org",
"voidway.nekoweb.org",
"vanillachai42.neocities.org",
"snailburger.neocities.org",
"angelchime.neocities.org",
"verzephobe.neocities.org",
"happigreencactus.neocities.org",
"kaijukity.moe",
"dexterdaybreaker.neocities.org",
"celest3.neocities.org",
"branchlines.neocities.org",
"musubi.nekoweb.org",
"cutsfrombrokenglass.neocities.org",
"cherryangel.neocities.org",
"kid-koda.neocities.org",
"basophie.neocities.org",
"maddisonstoff.neocities.org",
"justpattie.neocities.org",
"toothspit.neocities.org",
"winteryear.neocities.org",
"neurasun.neocities.org",
"https://jackpurrin.me/",
"victrix.neocities.org",
"autostereogrammusic.com",
"ananotsocute.neocities.org",
"honeyedcharlatan.neocities.org",
"fleasonrats.neocities.org",
"oozy.neocities.org",
"dustbunnybedroom.neocities.org",
"siffarooni.neocities.org",
"blanche.nekoweb.org",
"follyfox.neocities.org",
"mothpup.pet",
"thicccatz.neocities.org",
"lucky-goose.neocities.org",
"betty-plays-bass.neocities.org",
"karchah.neocities.org",
"psyclone.nekoweb.org",
"gojidragon.com",
"atomicgothic.neocities.org",
"morocerasus.neocities.org",
"otto-the-coolest.neocities.org",
"citadark.neocities.org",
"fish.golf",
"glyph555.neocities.org",
"cmbcoldspot.neocities.org",
"feelingmachine.moe",
"dollblooms.neocities.org",
"max-iwtaco.neocities.org",
"roxsquires.gay",
"natural-stupidity.neocities.org",
"mothinary.neocities.org",
"invadergvim.neocities.org",
"pastel-skies.nekoweb.org",
"zaytnzcity.neocities.org",
"aria.coffee",
"melody-is.gay",
"gatorboi.neocities.org",
"disctwo.net",
"xduskashesreal.neocities.org",
"toasty.place",
"loserr-blog.neocities.org",
"puka-muriska.neocities.org",
"dynazenta.neocities.org",
"sea-angel-blu.neocities.org",
"form-and-thearchive.neocities.org",
"ann-html.neocities.org",
"lamebrain.neocities.org",
"calicocamcorders.neocities.org",
"mammifereaile.nekoweb.org",
"deyx.neocities.org",
"witchesbrew.nekoweb.org",
"possiblyaxolotl.com",
"onemoredoughnut.neocities.org",
"pudo.neocities.org",
"wizardzz.neocities.org",
"parkerspixels.neocities.org",
"coffeeknife.nekoweb.org",
"bearsjunkjournal.neocities.org",
"benitengu.neocities.org",
"mjdxp.neocities.org",
"floraltriptych.nekoweb.org",
"upsidedownhourglass.neocities.org",
"hello-m00n.github.io/personal_website",
"chanteryuutai.neocities.org",
"blobii.neocities.org",
"sillygirlclub.neocities.org",
"heyitsrksmith.com",
"skyla.moe",
"l0bst3rf4c3.neocities.org",
"flowergarden-cafe.neocities.org",
"byteemily.nekoweb.org",
"chrysalis.nehulus-vagus.com",
"ruby-makes-bad-games.neocities.org",
"dreamvalley.nekoweb.org",
"axelotl3001.neocities.org",
"www.callistoashley.dev",
"minonii.neocities.org",
"elfwyn.neocities.org",
"jessieisironicallym3.neocities.org",
"quaggos.neocities.org",
"centipederot.neocities.org",
"blinkie-net.neocities.org",
"rainbowgirl.neocities.org",
"skelenby.neocities.org",
"crowycawcaw.neocities.org",
"marcypink.neocities.org",
"kickaha.neocities.org",
"cyberfangz.site",
"deadraccoon.neocities.org",
"auroradynia.com",
"rubisdubis.nekoweb.org",
"moonflyxspace.neocities.org",
"luka-the-normal-boy.neocities.org",
"cobwebears.neocities.org",
"sophiebites.me",
"kimn.neocities.org",
"jupy.wtf",
"nerdforeternity.neocities.org",
"liliancipher.neocities.org",
"luvrksknskyejourney.org",
"starry622.neocities.org",
"sapphic-cafe.net",
"orcassiea.nekoweb.org",
"possumlark.org",
"captainicarus.neocities.org",
"mossmurder.neocities.org",
"dreamsofvinushka.neocities.org",
"r1xstixx420.neocities.org",
"aevuslabyrinth.neocities.org",
"smyrlok.neocities.org",
"thejay-ester.neocities.org",
"femboy.art",
"computerguts.gay",
"hench4life.neocities.org",
"hexate.neocities.org",
"oyasumihologram.nekoweb.org",
"voltdrake.neocities.org",
"insqueeration.neocities.org",
"stylrtechnologies.com",
"fruitycircus.com",
"nepetaquest.nekoweb.org",
"adilene.net",
"ivycryptid.nekoweb.org",
"bride2be.neocities.org",
"e10.neocities.org",
"alcatrazisland.neocities.org",
"aetherie-99.neocities.org",
"eringrimalkin.neocities.org",
"mortland.neocities.org",
"mintchipdotcom.neocities.org",
"cake.moe",
"sillyhearts.neocities.org",
"bscit.dev",
"ultrakill.nekoweb.org",
"chimerathing.neocities.org",
"catatonia.neocities.org",
"b1ttersw33t.neocities.org",
"stars-sys.neocities.org",
"remnantmaru.neocities.org",
"rainmirage.art",
"mettatons-fan-corner.neocities.org",
"postalbutch.neocities.org",
"illomen.neocities.org",
"rainparade.nekoweb.org",
"bramblingaround.neocities.org",
"columbiasthoughts.neocities.org",
"sunnishinez.neocities.org",
"alyxia.dev",
"sugrstrz.com",
"acidicalchemist.nekoweb.org",
"weatherchannel.neocities.org",
"electro-magnets.neocities.org",
"leamsiwl.nekoweb.org",
"asterhalloween.neocities.org",
"analoguecatalogue.neocities.org",
"sorrowshowers.neocities.org",
"stelfield.neocities.org",
"sepharia.neocities.org",
"sleepycircus.neocities.org",
"aestuarium.me",
"asmodeusvulcan.neocities.org",
"ender-the-phantom.neocities.org",
"multicolor-anarchist.neocities.org",
"beaus-silly-folder.nekoweb.org",
"ivyswell-tavern.neocities.org",
"tilde-os.neocities.org",
"din0r4wr.neocities.org",
"astracelestine.nekoweb.org",
"rockseize.neocities.org",
"breaker-one.neocities.org",
"oceansandy02.nekoweb.org",
"rawrware.neocities.org",
"octopen.neocities.org",
"lupinus.neocities.org",
"terrorbabs.neocities.org",
"zenithtrajectory.neocities.org",
"usprisoner.neocities.org",
"pentumbra.neocities.org",
"twitch.cymru",
"scenemime.neocities.org",
"chromaeleon.neocities.org",
"mossypawprints.neocities.org",
"columbidaes.neocities.org",
"hammerheader.neocities.org",
"simpolomeo.neocities.org",
"p1n4.neocities.org",
"felixtheghost.neocities.org",
"bushdoctor.neocities.org",
"cresentri.com",
"wallgof.neocities.org",
"kitnomaly.neocities.org",
"sunkissed-feathers.neocities.org",
"t-hates-you.neocities.org",
"iodatalog.neocities.org",
"disasterpiece.neocities.org",
"therianava.li",
"dragonworld.neocities.org",
"cosyivy.xyz",
"traversetown.neocities.org",
"wriorango.neocities.org",
"gh0sted.neocities.org",
"dqs114.neocities.org",
"serasworld.neocities.org",
"starhaven.neocities.org",
"nickolox.com",
"fawn.nekoweb.org",
"liondrakes.neocities.org",
"crowsite.neocities.org",
"euclids-exception.neocities.org",
"wrldrevolving.neocities.org",
"strawberryysnow.neocities.org",
"thecatingrey.neocities.org",
"novaverie.nekoweb.org",
"june-is-scared.nekoweb.org",
"skyedarkclaw.neocities.org",
"toriii.neocities.org",
"ephemeralstar.neocities.org",
"cybr.gay",
"ghostsalt.neocities.org",
"thievery.neocities.org",
"kasperspace.nekoweb.org",
"pastaaa1.neocities.org",
"kaymartz.neocities.org",
"mothwiingz.neocities.org",
"v1v1sect1on.nekoweb.org",
"amethystweb.nekoweb.org",
"rachelowens.co.uk",
"cicadastatic.neocities.org",
"pysgodyn3.neocities.org",
"ques-nook.neocities.org",
"vampfag.top",
"candybaroque.neocities.org",
"quesadillawizard.neocities.org",
"silas-hw.github.io",
"firefairy.neocities.org",
"noisecorvid.neocities.org",
"digitaldaydreams.neocities.org",
"cassiecandles.net",
"mxbo.neocities.org",
"virtually-isolated.neocities.org",
"anomalous.monster",
"bonbon-ufo.neocities.org",
"ibbofazblog.neocities.org",
"miniwildpanda.neocities.org",
"tvkid.online",
"koyanthrope.neocities.org",
"livormortis.neocities.org",
"zelltronic.neocities.org",
"goosetank.neocities.org",
"butchboothill.neocities.org",
"lopster.neocities.org",
"angelwood.xyz",
"spycicl.neocities.org",
"shuriee.neocities.org",
"sticktrix.neocities.org",
"mannequin.fun",
"blue-miaou.neocities.org",
"transferns.neocities.org",
"germpills.neocities.org",
"atarax.neocities.org",
"lifelesscold.neocities.org",
"raum.neocities.org",
"goleihm.neocities.org",
"fuzzybabycrow.neocities.org",
"kidwiththechemicalz.neocities.org",
"testtubesterone.nekoweb.org",
"cayway.neocities.org",
"www.fluffpumpkin.net",
"westwinddogs.cc",
"ikuda.eu",
"home.illuc.xyz",
"kakotheris.nekoweb.org",
"shadowfae.neocities.org",
"starlitseas.neocities.org",
"wolfdeer.neocities.org",
"fromthebog.neocities.org",
"bohwoah.neocities.org",
"pixelatedpeachjuice.neocities.org",
"atomixe.neocities.org",
"slushiecafe.neocities.org",
"sea-of-colors.neocities.org",
"cyrussoleil.neocities.org",
"zombi.neocities.org",
"confetticake.neocities.org",
"falin.moe",
"onetimeoccam.com",
"anon1mity.neocities.org",
"lesrallizes.neocities.org",
"robynnesnest.click",
"freakygabry.neocities.org",
"alphacentauri.neocities.org",
"haetae.pages.gay",
"mooface.nekoweb.org",
"msx.gay",
"draggianuniverse.neocities.org",
"sepulchredsacrament.neocities.org",
"spacemadness.neocities.org",
"datoxicwaltz.neocities.org",
"canine-anarchy.neocities.org",
"cannibalpilled.neocities.org",
"bloodthirstymasquerade.neocities.org",
"pawpyrus.nekoweb.org",
"muffinzhouze.neocities.org",
"realismomagico.nekoweb.org",
"themightyloser.nekoweb.org",
"sealzie.neocities.org",
"sillywilly22.neocities.org",
"basi.nya.pub",
"daisywhisp.neocities.org",
"ray0fsunsh1ne.neocities.org",
"st4rguy.neocities.org",
"subterraneanhomesickalien.neocities.org",
"sunny-cities.neocities.org",
"suprsaturatd.neocities.org",
"lucienzeal.neocities.org",
"interstellarsystem.neocities.org",
"sociallyhazardous.neocities.org",
"lunya.nekoweb.org",
"thespaceshanty.neocities.org",
"mermora.neocities.org",
"leyy.neocities.org",
"disuko.neocities.org",
"whit.moe",
"im-disco-baby.neocities.org",
"digital-goddess.nekoweb.org",
"raven-files.neocities.org",
"bugkisser.neocities.org",
"chimeramanticore.neocities.org",
"mism4tchedsocks.neocities.org",
"jackandthearics.neocities.org",
"kepler-16b.neocities.org",
"treefungusxx.neocities.org",
"prunusavium.neocities.org",
"selkiehimbo.neocities.org",
"norisowl.neocities.org",
"mametzwood.neocities.org",
"dupersuperholly.neocities.org",
"ashtonsivibing.neocities.org",
"turbuggy.neocities.org",
"magicaldoll.neocities.org",
"boatemhq.neocities.org",
"olliveen.neocities.org",
"glamourbeast.neocities.org",
"digitalcat.neocities.org",
"caesthoffe.neocities.org",
"deletys.neocities.org",
"unsungstorywiki.neocities.org",
"granolaria.neocities.org",
"wumsley.neocities.org",
"madeinv.love",
"moonlightmyopia.neocities.org",
"gammagoop.neocities.org",
"koy.fish",
"halcybutton.neocities.org",
"betazz.neocities.org",
"infinitebearr.neocities.org",
"all-seeing-bunny.neocities.org",
"halcantdothat.neocities.org",
"zoneoffun.neocities.org",
"melancholic-entrails.neocities.org",
"lilithdev.neocities.org",
"wolfsite.neocities.org",
"alienyuri.neocities.org",
"unit00.neocities.org",
"voxel.gay",
"catgirlcassie.neocities.org",
"atari404.neocities.org",
"rosrets.neocities.org",
"miastonished.github.io",
"lilly.nekoweb.org",
"cupcakesthebulldog.neocities.org",
"joolianjay.neocities.org",
"clowdywings.neocities.org",
"muttthecowcat.neocities.org",
"xxfizzybloodxx.neocities.org",
"slysable.neocities.org",
"theevergreengardens.neocities.org",
// "achromatic-azurevizor.neocities.org",
"syrupnx.space",
"revived.neocities.org",
"sammylux.neocities.org",
"lambbones.neocities.org",
"hymnforascarecrow.neocities.org",
"fem.nz",
"subspaceember.neocities.org",
"shattered-glass.neocities.org",
"sugarfantasies.neocities.org",
"melxncholyman.neocities.org",
"pastellerie.neocities.org",
"magooka.neocities.org",
"celli.neocities.org",
"squidcrusher.neocities.org",
"sabrin.party",
"priro.pro",
"1dkreally.neocities.org",
"oliscrabwife.neocities.org",
"harvest-home.neocities.org",
"droptherapy.neocities.org",
"spiderlily.neocities.org",
"fukounaglr.neocities.org",
"coffinthusiast.neocities.org",
"riddler.nekoweb.org",
"www.cryptie.dev",
"thekirbysphere.neocities.org",
"leskowitz.neocities.org",
"milkyway.moe",
"zj.neocities.org",
"tehuan.neocities.org",
"murderscene.neocities.org",
"prophetesque.gay",
"kyoofyardale.neocities.org",
"bundleofstyx.neocities.org",
"lavender-cowboy.neocities.org",
"dog-brain.neocities.org",
"pixelglade.net.au",
"jettsecret.neocities.org",
"caitsith.neocities.org",
"moonsidedreams.neocities.org",
"mspaintdemon.neocities.org",
"codecreature.neocities.org",
"thesomnus.neocities.org",
// "funnyorangecat-dotcom.neocities.org",
"girlfailure.neocities.org",
"sunmiflowers.com",
"trashcannt.neocities.org",
"themby.neocities.org",
"garudyne.neocities.org",
"doumeli.neocities.org",
"siph.neocities.org",
"bubshub.neocities.org",
"quinnnnn.neocities.org",
"phoebe.digital",
"ciliaris.neocities.org",
"gaycomputerdog.neocities.org",
"frognet.neocities.org",
// "nonkiru.art",
"finn-all-uh.org",
"florpzgalaxy.neocities.org",
"wonderscape.neocities.org",
"www.lexiqqq.com",
"dulcesilly.neocities.org",
"chocolaterevel.neocities.org",
"savior-god.neocities.org",
"infini.neocities.org",
"manyface.neocities.org",
"plourples.com",
"this.squirrel.rocks",
"lucard.neocities.org",
"s1nez.nekoweb.org",
"monsterboy.neocities.org",
// "sizztuna.neocities.org",
"aceynk.neocities.org",
"mordecaialba.com",
"canadiancoded.neocities.org",
"morethanyoubelieve.neocities.org",
"foggybear42.neocities.org",
"117.zone",
"scottisite.neocities.org",
"minozomi.neocities.org",
"digibun.neocities.org",
"butch-barks.neocities.org",
"nerucom.neocities.org",
"smellybead.neocities.org",
"preservedfigs.uk",
"anchorgutz.neocities.org",
"foxthing.neocities.org",
"klomfel.neocities.org",
"wrender.neocities.org",
// "milosinternetdiary.neocities.org",
"cherylcherylcheryl.neocities.org",
"shenaniganery.neocities.org",
"jens-world-of-hyperfixation.neocities.org",
"aribluejeans.neocities.org",
"www.write-on.org",
"asralore.neocities.org",
"snowyfin.neocities.org",
"tertiaryapocalypse.neocities.org",
"killing-machine.neocities.org",
"spacemonkeyz.neocities.org",
"freaksaint.neocities.org",
"ghost-game.neocities.org",
"colortraks.net",
"screamingegg.neocities.org",
"jayspace.neocities.org",
"phantomrats.neocities.org",
"mercydreams.neocities.org",
"sech1p.ovh",
"wappydog.neocities.org",
"leizy8499.neocities.org",
"fearofmusic.neocities.org",
"serenegecko.neocities.org",
"slasherboy.neocities.org",
"bisexualmale04.net",
"f3r4l-c4tg1rl.neocities.org",
"asteromorph.neocities.org",
"realgaudin.uk",
// "s1llyguy.neocities.org",
"itpuddle.com",
// "neotrinity.xyz",
// "zonks27.neocities.org",
"cadeion.neocities.org",
"corvidae.digital",
"catboo.neocities.org",
"ttaxyy.neocities.org",
// "gyrobreaka.neocities.org",
"zinesbylennon.neocities.org",
"poetofu.neocities.org",
"ilovebeingtrans.neocities.org",
"spettri.neocities.org",
"whirlwind.neocities.org",
"stric9l0l.neocities.org",
"swiftyshq.neocities.org",
"crystal.tilde.institute",
"isactuallyabear.neocities.org",
"statusq.cc",
"astralvrz.github.io",
"dogspit.nekoweb.org",
"flower-killer.neocities.org",
"phrogee.neocities.org",
"burialcloth.neocities.org",
"maxxywaxxy.neocities.org",
"orion-overdrive.neocities.org",
"fangzzz.neocities.org",
"aryllsappreciations.neocities.org",
"twansgendew.net",
"jubiland.neocities.org",
"cyberdemon.neocities.org",
"space-bar.neocities.org",
// "bunnieforie.neocities.org",
// "hadalzone.neocities.org",
"pinkvampyr.leprd.space",
"thecorvidking.neocities.org",
"confettiguts.gay",
"callmecannibal.neocities.org",
// "nasunikki.neocities.org",
"shinyexe.neocities.org",
"smokoswebzone.gay",
"kelpeater.neocities.org",
"deviltown.neocities.org",
"r-temisia.neocities.org",
"crashtestdummy.neocities.org",
"punkwasp.leprd.space",
"nyacat.moe",
"theabsoluterealm.com",
// "layercake.neocities.org",
// "juicemachine.neocities.org",
"predictable1993.neocities.org",
"item64.neocities.org",
"cvnnbl.neocities.org",
// "squeezeoats.neocities.org",
"icosahedr.online",
"theaio.neocities.org",
"qso404.neocities.org",
"nimravidae.neocities.org",
"mizuki.world",
// "milestailsprower.neocities.org",
"foolsparadise.neocities.org",
"redrevelry.neocities.org",
"drakonic.zone",
"onlywonder.net",
// "heck.computer",
// "diluculo.neocities.org",
"glassyhouse.neocities.org",
"purplehello98.neocities.org",
"causeistayedaway.neocities.org",
// "rockinroller.neocities.org",
// "cranknet.com",
"p3p.neocities.org",
"hunipyon.neocities.org",
"beebfreeb.neocities.org",
"laikacore.neocities.org",
"the-bat-house.neocities.org",
// "least-mouse.github.io",
"faeriebottled97.neocities.org",
"worldsaddress.neocities.org",
"thoughts-and-collections.neocities.org",
"shiroganes.neocities.org",
"out.neocities.org",
"mysweetpiano.neocities.org",
"mikaorangeart.neocities.org",
"galactixstar.neocities.org",
"cyberneticdryad.neocities.org",
// "bajablasphemy.neocities.org",
"blagi.neocities.org",
"sanguinariacanadensis.neocities.org",
// "mincerafter42.github.io",
"transrats.neocities.org",
"friday-girl.neocities.org",
"flutteristhebest.neocities.org",
"sunnyday.neocities.org",
"sleepy-sage.neocities.org",
"wolf-on-the-web.neocities.org",
"alan460.is-hella.gay",
"therift.neocities.org",
// "keysklubhouse.com",
"ballonlea.net",
"compulsivecomputer.net",
"scourgescloset.neocities.org",
"lambchapel.neocities.org",
"troy-sucks.neocities.org",
"transring.neocities.org",
],
// widget html
// PREV and NEXT are replaced with neighbors' urls
widgets: {
default: `
<div id="transring" style="display: flex; align-items: center; gap: 3.278%; max-width: 244px; image-rendering: pixelated">
<a href="PREV" target="_top" style="width: 12.295%"><img width="100%" src="https://transring.neocities.org/widget/trans/left.png" alt="previous site"></a>
<a href="https://transring.neocities.org" target="_top" style="width: 68.852%"><img width="100%" src="https://transring.neocities.org/widget/trans/button.png" alt="transing the internet"></a>
<a href="NEXT" target="_top" style="width: 12.295%"><img width="100%" src="https://transring.neocities.org/widget/trans/right.png" alt="next site"></a>
</div>
`,
nb: `
<div id="transring" style="display: flex; align-items: center; gap: 3.278%; max-width: 244px; image-rendering: pixelated">
<a href="PREV" target="_top" style="width: 12.295%"><img width="100%" src="https://transring.neocities.org/widget/nb/left.png" alt="previous site"></a>
<a href="https://transring.neocities.org" target="_top" style="width: 68.852%"><img width="100%" src="https://transring.neocities.org/widget/nb/button.png" alt="transing the internet"></a>
<a href="NEXT" target="_top" style="width: 12.295%"><img width="100%" src="https://transring.neocities.org/widget/nb/right.png" alt="next site"></a>
</div>
`,
cloud: `<div id="transring" style="display: flex; justify-content: center; align-items: center; gap: 4px; image-rendering: pixelated">
<a href="PREV" target="_top"><img src="https://transring.neocities.org/widget/cloud/left.png" alt="previous site"></a>
<a href="https://transring.neocities.org" target="_top"><img src="https://transring.neocities.org/widget/cloud/button.png" alt="transing the internet"></a>
<a href="NEXT" target="_top"><img src="https://transring.neocities.org/widget/cloud/right.png" alt="next site"></a>
</div>`,
error: `<div>
<a href="https://transring.neocities.org" target="_top"><img src="https://transring.neocities.org/widget/trans/button.png"></a>
<div style="font-size: 0.75em; text-align: center">(this site isn't part of the webring... yet!)</div>
</div>`,
},
};
// code
webring.idx = webring.sites.findIndex(site => location.href.startsWith(site, 8));
document.currentScript.outerHTML = webring.idx === -1 ? webring.widgets.error :
(webring.widgets[document.currentScript.dataset.widget] ?? webring.widgets.default)
.replace("PREV", "https://" + webring.sites.at(webring.idx - 1))
.replace("NEXT", "https://" + webring.sites[(webring.idx + 1) % webring.sites.length]);
}

View File

@@ -0,0 +1,107 @@
<?php
declare(strict_types=1);
// File sources, images & scripts
$TRANSING_FILES = [
"enby" => [
"left_arrow" => "../../../img/webrings/transfem_enby_left_arrow.png",
"button" => "../../../img/webrings/transfem_enby_button.png",
"right_arrow" => "../../../img/webrings/transfem_enby_right_arrow.png"
],
"trans" => [
"left_arrow" => "../../../img/webrings/transfem_trans_left_arrow.png",
"button" => "../../../img/webrings/transfem_trans_button.png",
"right_arrow" => "../../../img/webrings/transfem_trans_right_arrow.png"
],
"cloud" => [
"left_arrow" => "../../../img/webrings/transfem_cloud_left_arrow.png",
"button" => "../../../img/webrings/transfem_cloud_button.png",
"right_arrow" => "../../../img/webrings/transfem_cloud_right_arrow.png"
]
];
$TRANSING_SCRIPT_SOURCE = [
"selected_source" => 1,
"sources" =>
[["url" => "https://transring.neocities.org/ring.js",
"source" => "internet"],
["url" => "/transingtheinternet.js",
"source" => "local"]]
];
// Specific variables for script
$TRANSING_ROOT = "https://transring.neocities.org";
$TRANSING_VALID_WIDGET_TYPES = ["cloud", "enby", "trans","error"];
// Personal identifiers/choices
$TRANSING_WIDGET_TYPE = $TRANSING_VALID_WIDGET_TYPES[1];
$TRANSING_ID = 1;
// Functions
function transingSplit(string $array) {
$array = preg_replace('/\s+/', '', $array);
$i = 0;
while (strlen($array) !== 0) {
// Strip coma if found
if (str_starts_with($array,',')) {
$array = substr($array,1);
}
if (str_starts_with(strrev($array),',')) {
$array = substr($array,0,-1);
}
if (strpos($array,'/',1) > 1 or strpos($array,'/',1) == FALSE) {
$commented=FALSE;
} else {
$commented=TRUE;
}
if (str_starts_with($array,',')) {
$array = substr($array,1);
}
// Get substring position and length
$commented ? $start_pos=3 : $start_pos=1;
$end_pos = strpos($array,"\"",$start_pos);
$item_len = $end_pos - $start_pos;
if (!$commented){
$return_array[$i] = substr($array,$start_pos,$item_len);
} else {
$return_array[$i] = '';
}
// Save website into array, and strip array
if (!$commented) {
$item_len = $item_len +2; // +2 from " and "
} else {
$item_len = $item_len +4; // +4 from ", ", / and /
}
$array = substr($array,$item_len);
$i++;
}
unset($i, $array, $commented, $start_pos, $end_pos, $item_len);
return $return_array;
}
$transing_sites = scrapeWebsiteSites($TRANSING_SCRIPT_SOURCE,'sites :[',']');
$transing_sites = transingSplit($transing_sites);
for ($i = 0; $i < count($transing_sites); $i++){
if ($i == $TRANSING_ID) {
$transing_prev = 'https://' . $transing_sites[($i-1)];
$transing_current = 'https://' . $transing_sites[($i)];
$transing_next = 'https://' . $transing_sites[($i+1)];
$found = TRUE;
}
}
if (!isset($found)) {
echo ("ERROR ID NOT FOUND");
}

View File

@@ -0,0 +1,24 @@
<?php
declare(strict_types=1);
function TRANSINGrender(){
global $TRANSING_ROOT, $TRANSING_FILES, $TRANSING_WIDGET_TYPE, $transing_prev, $transing_next;
$TRANSING_FILES["selected"] = $TRANSING_FILES[$TRANSING_WIDGET_TYPE];
if ($TRANSING_WIDGET_TYPE === 'error') {
?>
<a href="<?php echo($TRANSING_ROOT); ?>" target="_top" style="width: 68.852%"><img src="<?php echo($TRANSING_FILES["selected"]["button"]); ?>" alt="transing the internet"></a>
<div style="font-size: 0.75em; text-align: center">(this site isn't part of the webring... yet!)</div>
<?php
} else {
?>
<div id="transring" style="display: flex; justify-content: center; align-items: center; image-rendering: pixelated; height:100%;">
<a href="<?php echo($transing_prev); ?>" target="_top" style="width: 15.574%; height:100%;"><img src="<?php echo($TRANSING_FILES["selected"]["left_arrow"]); ?>" alt="previous site"></a>
<a href="<?php echo($TRANSING_ROOT); ?>" target="_top" style="width: 68.852%; height:100%;"><img src="<?php echo($TRANSING_FILES["selected"]["button"]); ?>" alt="transing the internet"></a>
<a href="<?php echo($transing_next); ?>" target="_top" style="width: 15.574%; height:100%;"><img src="<?php echo($TRANSING_FILES["selected"]["right_arrow"]); ?>" alt="next site"></a>
</div>
<?php
}
}

View File

@@ -140,15 +140,17 @@
<div class="clip-box">
<div class="auto-scroll">
<!-- Have to replace this logic, maybe by having another way to modify behaviour of marquee -->
<?php for ($i = 0; $i <= 1; $i++) {
if ($i === 0) {
?><div class="scroll_one"><?php
} else if ($i === 1) {
?><div class="scroll_two"><?php
}
?>
<?php for ($j = 0; $j <= 2; $j++) {?>
<div class="noaiwebring">
<?php for ($k = 0; $k <= 1; $k++) {
if ($k === 0) {
?><div class="scroll_one"><?php
} else if ($k === 1) {
?><div class="scroll_two"><?php
}
?>
<?php for ($l = 0; $l <= 2; $l++) {?>
<?php include "includes/transingtheinternet.inc.php";?>
<?php include "includes/transfemwebring.inc.php";?>
<div class="noaiwebring">
<a href="https://baccyflap.com/noai" target="_blank" alt="no ai webring" title="no ai webring"><div class="home"></div></a>
<a href="https://baccyflap.com/noai/?prv&amp;s=msv" target="_top" alt="previous" title="previous"><div class="prv"></div></a>
<a href="https://baccyflap.com/noai/?rnd" target="_top" alt="random" title="random"><div class="rnd"></div></a>