VASARAAAAAAAAAAAAAAAAAAA!!!!!!!!!!!!!!!
This commit is contained in:
@@ -10,6 +10,7 @@
|
|||||||
"typescript": "^5"
|
"typescript": "^5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@ocbwoy3/libocbwoy3": "^0.0.5",
|
||||||
"@types/commander": "^2.12.5",
|
"@types/commander": "^2.12.5",
|
||||||
"@types/dotenv": "^8.2.3",
|
"@types/dotenv": "^8.2.3",
|
||||||
"@types/sharp": "^0.32.0",
|
"@types/sharp": "^0.32.0",
|
||||||
|
|||||||
@@ -2,18 +2,97 @@
|
|||||||
|
|
||||||
import { $ } from "bun";
|
import { $ } from "bun";
|
||||||
|
|
||||||
|
const birthday = new Date(2009, 7, 16);
|
||||||
|
const age = Math.floor(
|
||||||
|
(Date.now() - birthday.getTime()) / (1000 * 60 * 60 * 24 * 365)
|
||||||
|
);
|
||||||
|
|
||||||
|
const isBirthday =
|
||||||
|
birthday.getDate() === new Date().getDate() &&
|
||||||
|
birthday.getMonth() === new Date().getMonth();
|
||||||
|
|
||||||
|
const isLatvian = Intl.DateTimeFormat()
|
||||||
|
.resolvedOptions()
|
||||||
|
.timeZone.startsWith("Europe/Riga");
|
||||||
|
|
||||||
|
function getOrdinalSuffix(day: number): string {
|
||||||
|
const j = day % 10,
|
||||||
|
k = day % 100;
|
||||||
|
if (j === 1 && k !== 11) return "st";
|
||||||
|
if (j === 2 && k !== 12) return "nd";
|
||||||
|
if (j === 3 && k !== 13) return "rd";
|
||||||
|
return "th";
|
||||||
|
}
|
||||||
|
|
||||||
|
// chatgpt
|
||||||
|
function chooseRandom(array: string[]): string {
|
||||||
|
if (isBirthday)
|
||||||
|
return `Is it your ${age}${getOrdinalSuffix(age)} birthday?`;
|
||||||
|
|
||||||
|
if (array.length === 0) throw new Error("lol");
|
||||||
|
const index =
|
||||||
|
crypto.getRandomValues(new Uint32Array(4)).reduce((a, b) => a + b) %
|
||||||
|
array.length;
|
||||||
|
return array[index];
|
||||||
|
}
|
||||||
|
|
||||||
const splashes = [
|
const splashes = [
|
||||||
|
|
||||||
"not ben shaped pear-o",
|
"Keep on ricing yo' Hyprland",
|
||||||
|
"Let's make today even better!",
|
||||||
|
|
||||||
"\"I use Nix, btw!\" - OCbwoy3",
|
"\"iUseNixBTW\" You literally... Roblox?",
|
||||||
"I use Nix, btw!",
|
"is it just me or the arch/nix pipeline turned me into a closeted femboy?",
|
||||||
"Nix beats arch",
|
"the nix pipeline is real",
|
||||||
|
|
||||||
"You like kissing boys, don't you?",
|
"Anti-OCbwoy3-ifier MV2 Premium.xpi",
|
||||||
|
|
||||||
"Now with gay furries :3",
|
"Do crabs think fish are flying?",
|
||||||
"Now with femboys :3",
|
"Don't forget to water your thoughts.",
|
||||||
|
"Fox detected. Please pet gently.",
|
||||||
|
|
||||||
|
// Venting ones
|
||||||
|
|
||||||
|
"mount /dev/boyfriend ~",
|
||||||
|
isLatvian
|
||||||
|
? "Latvia.. I hate it here, I wanna move." /* extremely accurate unbiased content coming from a latvian himself */
|
||||||
|
: "NOT going back Latvia.",
|
||||||
|
"rm -rf ~",
|
||||||
|
|
||||||
|
// Minecraft (DEI ones)
|
||||||
|
|
||||||
|
"Amplify and listen to BIPOC voices!",
|
||||||
|
"Support the BIPOC community and creators!",
|
||||||
|
"Contains infinite genders!",
|
||||||
|
"Remember to use gender neutral pronouns!",
|
||||||
|
"You are valid!",
|
||||||
|
"I'm glad you're here!",
|
||||||
|
"You are welcome here!",
|
||||||
|
"Your gender is valid!",
|
||||||
|
|
||||||
|
// Regretevator ones
|
||||||
|
|
||||||
|
"dr! ar u sure i cant drink 20 blogsy's??",
|
||||||
|
"That subway wuz so dark! Can't have a party withowt silly litez!",
|
||||||
|
"Blogsy is so AWESOME!",
|
||||||
|
"My life is liek a video game i think",
|
||||||
|
|
||||||
|
"What’s yer favorite type o’ wood?",
|
||||||
|
"Everybody knows th’ best kind o’ buildin’ is made outta grit and woodwork!",
|
||||||
|
|
||||||
|
// Me IRL
|
||||||
|
|
||||||
|
"tfw Hyprland boots faster than I do",
|
||||||
|
"everyone gangsta till your free trial of life ends",
|
||||||
|
|
||||||
|
// Reality
|
||||||
|
|
||||||
|
"flake 'flake:self' does not provide attribute 'willpower'",
|
||||||
|
"copilot stop writing my thoughts",
|
||||||
|
"404: purpose not found",
|
||||||
|
"respawn button greyed out",
|
||||||
|
"you’ve reached the end of the existential demo",
|
||||||
|
"feeling like an empty JSON object"
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -21,11 +100,10 @@ const debug: boolean = false as false | true;
|
|||||||
|
|
||||||
if (debug === true) {
|
if (debug === true) {
|
||||||
splashes.forEach(async (a) => {
|
splashes.forEach(async (a) => {
|
||||||
await $`notify-send "Welcome to... your PC?" "${a}"`;
|
await $`notify-send "Welcome to Hyprland!" "${a}"`;
|
||||||
})
|
});
|
||||||
} else {
|
} else {
|
||||||
const randomSplash = splashes[Math.floor(Math.random() * splashes.length)];
|
const randomSplash = chooseRandom(splashes);
|
||||||
|
|
||||||
await $`notify-send "Welcome to... your PC?" "${randomSplash}"`;
|
await $`notify-send "Welcome to Hyprland!" "${randomSplash}"`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
import { promises as fs } from "fs";
|
import { promises as fs } from "fs";
|
||||||
import * as path from "path";
|
import * as path from "path";
|
||||||
import * as os from "os";
|
import * as os from "os";
|
||||||
|
import { setConsoleTitle } from "@ocbwoy3/libocbwoy3";
|
||||||
|
|
||||||
|
setConsoleTitle("Roblox Studio patcher");
|
||||||
|
|
||||||
const SIGNATURE = Buffer.from([
|
const SIGNATURE = Buffer.from([
|
||||||
0x48, 0x81, 0xEC, 0x40, 0x03, 0x00, 0x00, 0x84, 0xD2, 0x74, 0x05, 0xE8
|
0x48, 0x81, 0xEC, 0x40, 0x03, 0x00, 0x00, 0x84, 0xD2, 0x74, 0x05, 0xE8
|
||||||
|
|||||||
@@ -3,6 +3,9 @@ import { configDotenv } from "dotenv";
|
|||||||
import { homedir } from "os";
|
import { homedir } from "os";
|
||||||
import { readdirSync, readFileSync, statSync } from "fs";
|
import { readdirSync, readFileSync, statSync } from "fs";
|
||||||
import { join } from "path";
|
import { join } from "path";
|
||||||
|
import { setConsoleTitle } from "@ocbwoy3/libocbwoy3";
|
||||||
|
|
||||||
|
setConsoleTitle("R2 Uploader");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const start = Date.now();
|
const start = Date.now();
|
||||||
@@ -34,12 +37,12 @@ try {
|
|||||||
|
|
||||||
let [ _, regretevator, floorNum ] = latestFile.match(/\-(regretevator)\-?([0-9]+)?\.png$/) || [];
|
let [ _, regretevator, floorNum ] = latestFile.match(/\-(regretevator)\-?([0-9]+)?\.png$/) || [];
|
||||||
|
|
||||||
|
// the devs changed rich presence, what's the point of parsing the filename if tuxstrap doesn't update the state file anymore?
|
||||||
if (regretevator === "regretevator") {
|
if (regretevator === "regretevator") {
|
||||||
latestFile = latestFile.replace(`-regretevator${floorNum ? `-${floorNum}` : ""}.png`,".png")
|
latestFile = latestFile.replace(`-regretevator${floorNum ? `-${floorNum}` : ""}.png`,".png")
|
||||||
|
// OR i could keep the filename and have my worker parse the filename
|
||||||
if (floorNum) {
|
if (floorNum) {
|
||||||
urlParams = `?floor=${floorNum}`
|
urlParams = `?floor=${floorNum}`
|
||||||
} else {
|
|
||||||
urlParams = ``
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,7 +55,7 @@ try {
|
|||||||
} catch (e_) {
|
} catch (e_) {
|
||||||
const cx = `${e_}`.toLowerCase();
|
const cx = `${e_}`.toLowerCase();
|
||||||
if (cx.includes("enable r2") && cx.includes("cloudflare dashboard")) {
|
if (cx.includes("enable r2") && cx.includes("cloudflare dashboard")) {
|
||||||
$`notify-send "Cloudflare" "bro u mf didnt pay for r2 >:(<br/><small>${`${e_}`}</small>"`.nothrow().catch(a => { });
|
$`notify-send "Cloudflare" "You owe Cloudflare money!! >:(<br/><small>${`${e_}`}</small>"`.nothrow().catch(a => { });
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
}
|
}
|
||||||
$`notify-send "Screenshot" "${`${e_}`}"`.nothrow().catch(a => { });
|
$`notify-send "Screenshot" "${`${e_}`}"`.nothrow().catch(a => { });
|
||||||
|
|||||||
Reference in New Issue
Block a user