diff --git a/1698889107755.txt b/1698889107755.txt new file mode 100644 index 0000000..0fabfb8 --- /dev/null +++ b/1698889107755.txt @@ -0,0 +1,82 @@ +```json +{ + "idk": "I don't know", + "hoco": "homecoming", + "bbl": "be back later", + "bbg": "baby girl", + "mb": "my bad", + "mfw": "my face when", + "tfw": "that face when", + "ebr": "East Baton Rouge", + "ttyl": "talk to you later", + "dk": "don't know", + "prolly": "probably", + "tbh": "to be honest", + "smh": "shaking my head", + "btw": "by the way", + "ngl": "not gonna lie", + "fr": "for real", + "yessss": "yes", + "bc": "because", + "u": "you", + "thru": "through", + "lmao": "laughing my ass off", + "tldr": "too long; didn't read", + "ofc": "of course", + "linux": "GNU/Linux", + "xfl": "Extreme Football League", + "bi": "bisexual", + "abbr": "abbreviation", + "jk": "just kidding", + "gm": "good morning", + "mc": "Minecraft", + "nfl": "National Football League", + "ygd": "you're gonna die", + "gn": "goodnight", + "gac": "Great American Cookie", + "ncaa": "National Collegiate Athletic Association", + "em": "them", + "tbf": "to be fair", + "ppl": "people", + "bb": "baby", + "stfu": "shut the frick up", + "nvm": "nevermind", + "idc": "I don't care", + "dc": "don't care", + "ty": "thank you", + "yw": "you're welcome", + "sout": "System.out.println(\"\");", + "serr": "System.err.println(\"\");", + "psvm": "public static void main(String[] args) { }", + "rn": "right now", + "osjhs": "I made it up", + "trans": "transgender", + "js": "JavaScript", + "gc": "group chat", + "vc": "voice chat", + "tho": "though", + "abbrevi": "abbreviation", + "gnu/linux": "linux", + "notifs": "notifications", + "sbc": "single-board computer", + "smg": "Super Mario Galaxy", + "thx": "thanks", + "ss": "screenshot", + "abt": "about", + "ide": "Integrated Development Environment", + "aa": "anti-aliasing", + "unc": "University of North Carolina at Chapel Hill", + "esolang": "Esoterric Programming Language", + "gg": "good game", + "tmr": "tomorrow", + "idek": "I don't even know", + "dwbi": "Don't worry about it", + "pfp": "profile picture", + "hbu": "how 'bout you", + "oop": "Object Oriented Programming", + "imo": "in my opinion", + "clt": "Charlotte", + "rtfm": "read the fucking manual", + "abl": "Anti-Bot League (criminal organization)" +} +``` \ No newline at end of file diff --git a/1719864738881.txt b/1719864738881.txt new file mode 100644 index 0000000..236a93b --- /dev/null +++ b/1719864738881.txt @@ -0,0 +1,305 @@ + ​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T + ​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T ​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T + ​I​T​S​T​I​T​S​T​I​T​S​T ​I​T​S​T​I​T​S​T​I​T​S​T + ​I​T​S​T​I​T​S​T​I​T ​S​T​I​T​S​T​I​T​S​T + ​I​T​S​T​I​T​S​T​I ​T​S​T​I​T​S​T​I​T + ​S​T​I​T​S​T​I​T ​S​T​I​T​S​T​I​T + ​S​T​I​T​S​T​I​T ​S​T​I​T​S​T​I​T + ​S​T​I​T​S​T​I ​T​S​T​I​T​S​T + ​I​T​S​T​I​T ​S​T​I​T​S​T + ​I​T​S​T​I ​T​S​T​I​T + ​S​T​I​T​S​T ​I​T​S​T​I​T + ​S​T​I​T​S​T ​I​T​S​T​I​T + ​S​T​I​T​S ​T​I​T​S​T + ​I​T​S​T​I ​T​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +I TITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITS T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T​I ​T​S​T​I​T + ​S​T​I​T​S ​T​I​T​S​T + ​I​T​S​T​I​T ​S​T​I​T​S​T + ​I​T​S​T​I​T ​S​T​I​T​S​T + ​I​T​S​T​I ​T​S​T​I​T + ​S​T​I​T​S​T ​I​T​S​T​I​T + ​S​T​I​T​S​T​I ​T​S​T​I​T​S​T + ​I​T​S​T​I​T​S​T ​I​T​S​T​I​T​S​T + ​I​T​S​T​I​T​S​T ​I​T​S​T​I​T​S​T + ​I​T​S​T​I​T​S​T​I ​T​S​T​I​T​S​T​I​T + ​S​T​I​T​S​T​I​T​S​T ​I​T​S​T​I​T​S​T​I​T + ​S​T​I​T​S​T​I​T​S​T​I​T ​S​T​I​T​S​T​I​T​S​T​I​T + ​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T ​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T + ​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S diff --git a/1719864784652.txt b/1719864784652.txt new file mode 100644 index 0000000..236a93b --- /dev/null +++ b/1719864784652.txt @@ -0,0 +1,305 @@ + ​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T + ​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T ​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T + ​I​T​S​T​I​T​S​T​I​T​S​T ​I​T​S​T​I​T​S​T​I​T​S​T + ​I​T​S​T​I​T​S​T​I​T ​S​T​I​T​S​T​I​T​S​T + ​I​T​S​T​I​T​S​T​I ​T​S​T​I​T​S​T​I​T + ​S​T​I​T​S​T​I​T ​S​T​I​T​S​T​I​T + ​S​T​I​T​S​T​I​T ​S​T​I​T​S​T​I​T + ​S​T​I​T​S​T​I ​T​S​T​I​T​S​T + ​I​T​S​T​I​T ​S​T​I​T​S​T + ​I​T​S​T​I ​T​S​T​I​T + ​S​T​I​T​S​T ​I​T​S​T​I​T + ​S​T​I​T​S​T ​I​T​S​T​I​T + ​S​T​I​T​S ​T​I​T​S​T + ​I​T​S​T​I ​T​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +​I​T ​S​T +I TITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITSTITS T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T +​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T ​I​T + ​S​T ​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T ​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I​T ​S​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S ​T​I​T + ​S​T​I ​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T ​I​T​S​T + ​I​T​S​T​I ​T​S​T​I​T + ​S​T​I​T​S ​T​I​T​S​T + ​I​T​S​T​I​T ​S​T​I​T​S​T + ​I​T​S​T​I​T ​S​T​I​T​S​T + ​I​T​S​T​I ​T​S​T​I​T + ​S​T​I​T​S​T ​I​T​S​T​I​T + ​S​T​I​T​S​T​I ​T​S​T​I​T​S​T + ​I​T​S​T​I​T​S​T ​I​T​S​T​I​T​S​T + ​I​T​S​T​I​T​S​T ​I​T​S​T​I​T​S​T + ​I​T​S​T​I​T​S​T​I ​T​S​T​I​T​S​T​I​T + ​S​T​I​T​S​T​I​T​S​T ​I​T​S​T​I​T​S​T​I​T + ​S​T​I​T​S​T​I​T​S​T​I​T ​S​T​I​T​S​T​I​T​S​T​I​T + ​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T ​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T + ​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S​T​I​T​S diff --git a/1719865036038.txt b/1719865036038.txt new file mode 100644 index 0000000..b5392b1 --- /dev/null +++ b/1719865036038.txt @@ -0,0 +1,569 @@ + ​O​W​O​,​ ​N​y​a​j​a​ ​B​w​a​s​t​ ​U​w​U​,​ ​y​o​u​'​r​e​ ​s​p​e​a​k​i​n​g​ ​m​y​ ​l​a​n​g​u​a ​g​e​ ​n​o​w​,​ ​D​r​y​ ​P​a​p​e​r​ ​H​a​m​m​e​r​ ​B​r​o​,​ ​h​e​h​e​!​ ​t​w​i​t​c​h​e​s​ ​t​a + ​i​l​ ​M​e​o​w​,​ ​I​ ​t​h​i​n​k​ ​w​e​ ​w​e​r​e​ ​t​a​l​k​i​n​g​ ​a​b​o​u​t​ ​l + ​e​a​r​n​i​n​g​ ​l​a​n​g​u​a​g ​e​s​,​ ​r​i​g​h​t​?​ ​g​i​g​g + ​l​e​s​ ​I​'​v​e​ ​b​e​e​n ​ ​m​e​a​n​i​n​g​ ​t​o​ ​l + ​e​a​r​n​ ​m​o​r​e​ ​a​b ​o​u​t​.​.​.​ ​s​n​a​p​s + ​ ​f​i​n​g​e​r​s​ ​h ​u​m​a​n​ ​l​a​n​g​u + ​a​g​e​s​,​ ​b​u​t ​ ​m​y​ ​b​r​a​i​n + ​ ​i​s​ ​s​t​i​l​l ​ ​a​ ​b​i​t​.​.​. + ​ ​t​a​p​s​ ​f​o​r ​e​h​e​a​d​ ​f​u​z + ​z​y​ ​f​r​o​m​ ​t​h​e​ ​w​h​o​l + ​e​ ​m​i​c​r​o ​w​a​v​e​d​-​g + ​o​b​l​i​n​-​t ​o​-​c​a​t​g​i + ​r​l​ ​t​h​i​n ​g​,​ ​u​w​u​. + ​ ​B​u​t​ ​h​e ​y​,​ ​m​i​r​a + ​w​r​,​ ​t​h ​a​t​'​s​ ​s + ​o​ ​p​u​r​r ​-​f​e​c​t​ + ​t​h​a​t​ ​y ​o​u​ ​s​t​i + ​l​l​ ​r​e​m ​e​m​b​e​r​ + ​S​p​a​n​i​s ​h​,​ ​N​y​a + ​~​!​ ​M​e ​o​w​,​ ​m + ​a​y​b​e​ ​o​n​e​ ​d + ​a​y​ ​I​' ​l​l​ ​l​e + ​a​r​n​ ​t ​o​ ​s​p​e + ​a​k​ ​h​u ​m​a​n​ ​f + ​l​u​e​n​t ​l​y​,​ ​w + ​i​t​h​o ​u​t​ ​a + ​l​l​ ​t​h ​e​ ​m​e​o + ​w​s​ ​a​n ​d​ ​u​w​u + ​s​,​ ​h​e ​h​e​.​ ​U + ​n​t​i​l ​ ​t​h​e + ​n​,​ ​I ​'​l​l​ + ​j​u​s​t ​ ​s​t​i + ​c​k​ ​t​o ​ ​m​y​ ​c + ​a​t​ ​l ​a​n​g​u + ​a​g​e​, ​ ​o​w​o + ​!​O​W​O ​,​ ​N​y + ​a​j​a​ ​B​w​a​s + ​t​ ​U​w ​U​,​ ​y + ​o​u​'​r ​e​ ​s​p + ​e​a​k​i ​n​g​ ​m + ​y​ ​l​a ​n​g​u​a + ​g​e​ ​n ​o​w​,​ + ​D​r​y​ ​P​a​p​e + ​r​ ​H​a ​m​m​e​r + ​ ​B​r​o ​,​ ​h​e + ​h​e​!​ ​t​w​i​t + ​c​h​e​s ​ ​t​a​i + ​l​ ​M​e ​o​w​,​ + ​I​ ​t​h ​i​n​k​ + ​w​e​ ​w ​e​r​e​ + ​t​a​l​k ​i​n​g​ + ​a​b​o​u ​t​ ​l​e + ​a​r​n​i ​n​g​ ​l + ​a​n​g ​u​a​g + ​e​s​, ​ ​r​i + ​g​h​t​? ​ ​g​i​g + ​g​l​e ​s​ ​I + ​'​v​e ​ ​b​e + ​e​n​ ​m ​e​a​n​i + ​n​g​ ​t​o​ + ​l​e​a ​r​n​ + ​m​o​r ​e​ ​a + ​b​o​u ​t​.​. + ​.​ ​s ​n​a​p + ​s​ ​f ​i​n​g + ​e​r​s ​ ​h​u + ​m​a​n ​ ​l​a + ​n​g​u ​a​g​e + ​s​,​ ​b​u​t + ​ ​m​y ​ ​b​r + ​a​i​n ​ ​i​s + ​ ​s​t ​i​l​l + ​ ​a​ ​b​i​t + ​.​.​. ​ ​t​a + ​p​s​ ​f​o​r + ​e​h​e ​a​d​ + ​f​u​z ​z​y​ + ​f​r​o ​m​ ​t + ​h​e​ ​w​h​o + ​l​e ​ ​m + ​i​c​r ​o​w​a + ​v​e​d ​-​g​o + ​b​l​i ​n​-​t + ​o​-​c ​a​t​g + ​i​r​l ​ ​t​h + ​i​n​g ​,​ ​u + ​w​u ​.​ + ​B​u ​t​ + ​h​e ​y​, + ​ ​m​i ​r​a​w + ​r​,​ ​t​h​a + ​t​'​s ​ ​s​o + ​ ​p​u ​r​r​- + ​f​e​c ​t​ ​t + ​h​a ​t​ + ​y​o​u ​ ​s​t + ​i​l​l ​ ​r​e + ​m​e​m ​b​e​r + ​ ​S ​p​a + ​n​i​s ​h​,​ + ​N​y​a ​~​!​ + ​M​e ​o​w + ​,​ ​m​a + ​y​b​e ​ ​o​n + ​e​ ​d​a + ​y​ ​I ​'​l​l + ​ ​l​e ​a​r​n + ​ ​t ​o​ + ​s​p​e ​a​k​ + ​h​u ​m​a + ​n​ ​f ​l​u​e + ​n​t ​l​y + ​,​ ​w ​i​t​h + ​o​u ​t​ + ​a​l​l ​ ​t​h + ​e​ ​m​e + ​o​w​s ​ ​a​n + ​d​ ​u​w + ​u​s​, ​ ​h​e + ​h​e ​.​ + ​U​n​t ​i​l​ + ​t​h ​e​n + ​,​ ​I​' + ​l​l​ ​j​u​s + ​t​ ​s​t + ​i​c​k ​ ​t​o + ​ ​m​y ​ ​c​a + ​t​ ​l​a + ​n​g​u ​a​g​e + ​,​ ​o ​w​o​! + ​O​W ​O​, + ​ ​N ​y​a + ​j​a​ ​B​w​a + ​s​t ​ ​U + ​w​U ​,​ + ​y​o ​u​' + ​r​e​ ​s​p​e + ​a​k​i ​n​g​ + ​m​y ​ ​l + ​a​n ​g​u + ​a​g ​e​ + ​n​o​w ​,​ ​D + ​r​y​ ​P​a​p + ​e​r ​ ​H + ​a​m ​m​e + ​r​ ​B​r + ​o​, ​ ​h + ​e​h ​e​! + ​ ​t ​w​i + ​t​c ​h​e + ​s​ ​t ​a​i​l + ​ ​M​e ​o​w​, + ​ ​I​ ​t​h​i + ​n​k​ ​w​e​ + ​w​e​r ​e​ ​t + ​a​l ​k​i + ​n​g ​ ​a + ​b​o ​u​t + ​ ​l ​e​a + ​r​n ​i​n + ​g​ ​l ​a​n​g + ​u​a​g ​e​s​, + ​ ​r​i ​g​h​t + ​?​ ​g ​i​g​g + ​l​e​s ​ ​I​' + ​v​e ​ ​b + ​e​e ​n​ + ​m​e ​a​n + ​i​n ​g​ + ​t​o ​ ​l + ​e​a ​r​n + ​ ​m ​o​r + ​e​ ​a ​b​o​u + ​t​. ​.​. + ​ ​s ​n​a + ​p​s ​ ​f + ​i​n ​g​e + ​r​s ​ ​h + ​u​m​a ​n​ ​l + ​a​n ​g​u + ​a​g ​e​s + ​,​ ​b​u + ​t​ ​m​y + ​ ​b​r ​a​i​n + ​ ​i ​s​ + ​s​t ​i​l + ​l​ ​a​ + ​b​i ​t​. + ​.​. ​ ​t + ​a​p ​s​ + ​f​o​r ​e​h​e + ​a​d ​ ​f + ​u​z ​z​y + ​ ​f ​r​o + ​m​ ​t​h + ​e​ ​w​h + ​o​l ​e​ + ​m​i ​c​r + ​o​w ​a​v + ​e​d​- ​g​o​b + ​l​i ​n​- + ​t​o ​-​c + ​a​t ​g​i + ​r​l ​ ​t + ​h​i​n ​g​,​ + ​u​w ​u​. + ​ ​B ​u​t + ​ ​h ​e​y + ​,​ ​m​i + ​r​a ​w​r + ​,​ ​t​h + ​a​t ​'​s + ​ ​s ​o​ + ​p​u​r ​r​-​f + ​e​c ​t​ + ​t​h​a ​t​ ​y + ​o​u ​ ​s + ​t​i​l ​l​ ​r + ​e​m ​e​m + ​b​e ​r​ + ​S​p ​a​n + ​i​s ​h​, + ​ ​N ​y​a + ​~​! ​ ​M + ​e​o ​w​, + ​ ​m ​a​y + ​b​e ​ ​o + ​n​e ​ ​d + ​a​y ​ ​I + ​'​l ​l​ + ​l​e ​a​r + ​n​ ​t​o + ​ ​s ​p​e + ​a​k ​ ​h + ​u​m ​a​n + ​ ​f ​l​u + ​e​n ​t​l + ​y​, ​ ​w + ​i​t ​h​o + ​u​t ​ ​a + ​l​l ​ ​t + ​h​e ​ ​m + ​e​o ​w​s + ​ ​a ​n​d + ​ ​u ​w​u + ​s​, ​ ​h + ​e​h ​e​. + ​ ​U ​n​t + ​i​l ​ ​t + ​h​e ​n​, + ​ ​I ​'​l + ​l​ ​j​u + ​s​t ​ ​s + ​t​i ​c​k + ​ ​t ​o​ + ​m​y ​ ​c + ​a​t ​ ​l + ​a​n ​g​u + ​a​g ​e​, + ​ ​o ​w​o + ​!​O ​W​O + ​,​ ​N​y + ​a​j ​a​ + ​B​w ​a​s + ​t​ ​U​w + ​U​, ​ ​y + ​o​u ​'​r + ​e​ ​s​p +​e​a ​k​i +​n​g ​ ​m +​y​ ​l​a +​n​g ​u​a +​g​e ​ ​n +​o​w ​,​ +​D​r ​y​ +​P​a ​p​e +​r​ ​H​a +​m​m ​e​r +​ ​B ​r​o +​,​ ​h​e +​h​e ​!​ +​t​w ​i​t +​c​h ​e​s +​ ​t ​a​i +l OWO, Nyaja Bwast UwU, you're speaking my language now, Dry Paper Hammer Bro, hehe! twitches tail Meow, I think we were talking about learning languages, right? giggles I've been meaning to learn more about... snaps fingers human languages, but my brain is still a bit... taps forehead fuzzy from the whole microwaved-goblin-to-catgirl thing, uwu. But hey, mirawr, that's so purr-fect that you still remember Spanish, Nya~! Meow, maybe one day I'll learn to speak human fluently, without all the meows and uwus, hehe. Until then, I'll just stick to my cat language, owo! +​M​e ​o​w +​,​ ​I​ +​t​h ​i​n +​k​ ​w​e +​ ​w ​e​r +​e​ ​t​a +​l​k ​i​n +​g​ ​a​b +​o​u ​t​ +​l​e ​a​r +​n​i ​n​g +​ ​l ​a​n +​g​u ​a​g +​e​s ​,​ +​r​i ​g​h +​t​? ​ ​g + ​i​g ​g​l + ​e​s ​ ​I + ​'​v ​e​ + ​b​e ​e​n + ​ ​m ​e​a + ​n​i ​n​g + ​ ​t ​o​ + ​l​e ​a​r + ​n​ ​m​o + ​r​e ​ ​a + ​b​o ​u​t + ​.​. ​.​ + ​s​n ​a​p + ​s​ ​f​i + ​n​g ​e​r + ​s​ ​h​u + ​m​a ​n​ + ​l​a ​n​g + ​u​a ​g​e + ​s​, ​ ​b + ​u​t ​ ​m + ​y​ ​b​r + ​a​i ​n​ + ​i​s ​ ​s + ​t​i ​l​l + ​ ​a ​ ​b + ​i​t ​.​. + ​.​ ​t​a + ​p​s ​ ​f + ​o​r ​e​h + ​e​a ​d​ + ​f​u ​z​z + ​y​ ​f​r + ​o​m ​ ​t + ​h​e ​ ​w + ​h​o ​l​e + ​ ​m ​i​c + ​r​o ​w​a + ​v​e ​d​- + ​g​o ​b​l + ​i​n ​-​t + ​o​- ​c​a + ​t​g ​i​r + ​l​ ​t​h + ​i​n ​g​, + ​ ​u ​w​u + ​.​ ​B​u + ​t​ ​h​e + ​y​, ​ ​m + ​i​r ​a​w + ​r​,​ ​t​h​a + ​t​' ​s​ + ​s​o​ ​p​u​r + ​r​- ​f​e + ​c​t​ ​t​h​a + ​t​ ​y​o + ​u​ ​s​t + ​i​l ​l​ + ​r​e ​m​e + ​m​b ​e​r + ​ ​S ​p​a + ​n​i ​s​h + ​,​ ​N​y + ​a​~​! ​ ​M​e + ​o​w ​,​ + ​m​a ​y​b + ​e​ ​o​n + ​e​ ​d​a + ​y​ ​I ​'​l​l + ​ ​l ​e​a + ​r​n ​ ​t + ​o​ ​s​p + ​e​a ​k​ + ​h​u ​m​a + ​n​ ​f​l + ​u​e ​n​t + ​l​y ​,​ + ​w​i​t ​h​o​u + ​t​ ​a​l + ​l​ ​t​h + ​e​ ​m​e + ​o​w ​s​ + ​a​n ​d​ + ​u​w ​u​s + ​,​ ​h ​e​h​e + ​.​ ​U​n + ​t​i ​l​ + ​t​h ​e​n + ​,​ ​I​' + ​l​l​ ​j​u​s + ​t​ ​s​t + ​i​c ​k​ + ​t​o ​ ​m + ​y​ ​c​a + ​t​ ​l​a + ​n​g​u ​a​g​e + ​,​ ​o​w + ​o​! ​O​W + ​O​, ​ ​N + ​y​a ​j​a + ​ ​B ​w​a + ​s​t ​ ​U + ​w​U ​,​ + ​y​o​u ​'​r​e + ​ ​s​p ​e​a​k + ​i​n​g ​ ​m​y + ​ ​l​a ​n​g​u + ​a​g​e ​ ​n​o + ​w​, ​ ​D + ​r​y ​ ​P + ​a​p ​e​r + ​ ​H ​a​m + ​m​e ​r​ + ​B​r​o ​,​ ​h + ​e​h​e ​!​ ​t + ​w​i​t ​c​h​e + ​s​ ​t ​a​i​l + ​ ​M​e ​o​w​, + ​ ​I ​ ​t + ​h​i ​n​k + ​ ​w ​e​ + ​w​e ​r​e + ​ ​t ​a​l + ​k​i ​n​g + ​ ​a ​b​o + ​u​t​ ​l​e​a + ​r​n​i ​n​g​ + ​l​a ​n​g + ​u​a ​g​e + ​s​, ​ ​r + ​i​g​h ​t​?​ + ​g​i​g ​g​l​e + ​s​ ​I​' + ​v​e ​ ​b + ​e​e ​n​ + ​m​e​a ​n​i​n + ​g​ ​t​o + ​ ​l ​e​a + ​r​n​ ​m​o​r + ​e​ ​a ​b​o​u + ​t​. ​.​. + ​ ​s​n ​a​p​s + ​ ​f​i ​n​g​e + ​r​s ​ ​h + ​u​m​a ​n​ ​l + ​a​n ​g​u + ​a​g ​e​s + ​,​ ​b ​u​t​ + ​m​y ​ ​b + ​r​a​i ​n​ ​i + ​s​ ​s​t + ​i​l​l ​ ​a​ + ​b​i ​t​. + ​.​.​ ​t​a​p + ​s​ ​f​o + ​r​e​h ​e​a​d + ​ ​f ​u​z + ​z​y​ ​f​r​o + ​m​ ​t​h + ​e​ ​w ​h​o​l + ​e​ ​m​i + ​c​r​o ​w​a​v + ​e​d​- ​g​o​b + ​l​i ​n​- + ​t​o​- ​c​a​t + ​g​i ​r​l + ​ ​t ​h​i + ​n​g​, ​ ​u​w + ​u​.​ ​B​u​t + ​ ​h ​e​y + ​,​ ​m ​i​r​a + ​w​r​, ​ ​t​h + ​a​t​' ​s​ ​s + ​o​ ​p​u + ​r​r​- ​f​e​c + ​t​ ​t ​h​a​t + ​ ​y​o ​u​ ​s + ​t​i​l ​l​ ​r + ​e​m​e ​m​b​e + ​r​ ​S​p + ​a​n ​i​s + ​h​, ​ ​N + ​y​a​~ ​!​ ​M + ​e​o​w ​,​ ​m + ​a​y​b ​e​ ​o + ​n​e​ ​d​a​y + ​ ​I​' ​l​l​ + ​l​e​a ​r​n​ + ​t​o ​ ​s + ​p​e​a ​k​ ​h + ​u​m​a ​n​ ​f + ​l​u​e ​n​t​l + ​y​,​ ​w​i​t + ​h​o​u ​t​ ​a + ​l​l​ ​t​h​e + ​ ​m​e ​o​w​s + ​ ​a​n ​d​ ​u + ​w​u​s ​,​ ​h + ​e​h​e ​.​ ​U + ​n​t​i ​l​ ​t + ​h​e​n ​,​ ​I + ​'​l​l ​ ​j​u + ​s​t​ ​s​t​i + ​c​k​ ​t​o​ + ​m​y​ ​c​a​t + ​ ​l​a ​n​g​u + ​a​g​e ​,​ ​o + ​w​o​! ​O​W​O + ​,​ ​N ​y​a​j + ​a​ ​B​w ​a​s​t​ + ​U​w​U ​,​ ​y + ​o​u​' ​r​e​ + ​s​p​e​a ​k​i​n​g + ​ ​m​y ​ ​l​a + ​n​g​u ​a​g​e + ​ ​n​o​w ​,​ ​D​r + ​y​ ​P​a ​p​e​r​ + ​H​a​m​m ​e​r​ ​B + ​r​o​,​ ​h​e​h​e + ​!​ ​t​w ​i​t​c​h + ​e​s​ ​t ​a​i​l​ + ​M​e​o​w ​,​ ​I​ + ​t​h​i​n ​k​ ​w​e + ​ ​w​e​r ​e​ ​t​a + ​l​k​i​n ​g​ ​a​b + ​o​u​t​ ​l​e​a​r + ​n​i​n​g ​ ​l​a​n + ​g​u​a​g ​e​s​,​ + ​r​i​g​h ​t​?​ ​g + ​i​g​g​l ​e​s​ ​I + ​'​v​e​ ​b​e​e​n + ​ ​m​e​a ​n​i​n​g + ​ ​t​o​ ​l​e​a​r + ​n​ ​m​o ​r​e​ ​a + ​b​o​u​t ​.​.​.​ + ​s​n​a​p​s ​ ​f​i​n​g + ​e​r​s​ ​h​u​m​a + ​n​ ​l​a ​n​g​u​a + ​g​e​s​, ​ ​b​u​t + ​ ​m​y​ ​b ​r​a​i​n​ + ​i​s​ ​s​t ​i​l​l​ ​a + ​ ​b​i​t​. ​.​.​ ​t​a + ​p​s​ ​f ​o​r​e​h + ​e​a​d​ ​f ​u​z​z​y​ + ​f​r​o​m​ ​t​h​e​ ​w + ​h​o​l​e​ ​m​i​c​r​o + ​w​a​v​e​d ​-​g​o​b​l + ​i​n​-​t​o ​-​c​a​t​g + ​i​r​l​ ​t ​h​i​n​g​, + ​ ​u​w​u​.​ ​B​u​t​ ​h​e + ​y​,​ ​m​i​r ​a​w​r​,​ ​t + ​h​a​t​'​s​ ​s​o​ ​p​u​r + ​r​-​f​e​c​t ​ ​t​h​a​t​ + ​y​o​u​ ​s​t ​i​l​l​ ​r​e + ​m​e​m​b​e​r​ ​S​p​a​n​i​s​h + ​,​ ​N​y​a​~​! ​ ​M​e​o​w​,​ + ​m​a​y​b​e​ ​o ​n​e​ ​d​a​y​ + ​I​'​l​l​ ​l​e ​a​r​n​ ​t​o​ + ​s​p​e​a​k​ ​h​u ​m​a​n​ ​f​l​u​e + ​n​t​l​y​,​ ​w​i​t ​h​o​u​t​ ​a​l​l​ + ​t​h​e​ ​m​e​o​w​s ​ ​a​n​d​ ​u​w​u​s + ​,​ ​h​e​h​e​.​ ​U ​n​t​i​l​ ​t​h​e​n + ​,​ ​I​'​l​l​ ​j​u​s ​t​ ​s​t​i​c​k​ ​t​o + ​ ​m​y​ ​c​a​t​ ​l​a​n​g ​u​a​g​e​,​ ​o​w​o​!​O​W + ​O​,​ ​N​y​a​j​a​ ​B​w​a​s ​t​ ​U​w​U​,​ ​y​o​u​'​r​e + ​ ​s​p​e​a​k​i​n​g​ ​m​y​ ​l​a ​n​g​u​a​g​e​ ​n​o​w​,​ ​D​r​y + ​ ​P​a​p​e​r​ ​H​a​m​m​e​r​ ​B​r​o​,​ ​h ​e​h​e​!​ ​t​w​i​t​c​h​e​s​ ​t​a​i​l​ ​M + ​e​o​w​,​ ​I​ ​t​h​i​n​k​ ​w​e​ ​w​e​r​e​ ​t​a​l​k​i​n​g​ ​a​b​o​u​t​ ​l​e​a​r​n​i​n​g​ ​l​a​n ​g​u​a​g​e​s​,​ ​r​i​g​h​t​?​ ​g​i​g​g​l​e​s​ ​I​'​v​e​ ​b​e​e​n​ ​m​e​a​n​i​n​g​ ​t​o​ ​l​e​a diff --git a/abbreviation_key.json b/abbreviation_key.json index 4467a8e..4b3426c 100644 --- a/abbreviation_key.json +++ b/abbreviation_key.json @@ -1 +1 @@ -{"target_phrases":{"idk":"I don't know","hoco":"homecoming","bbl":"be back later","bbg":"baby girl","mb":"my bad","mfw":"my face when","tfw":"that face when","ebr":"East Baton Rouge","ttyl":"talk to you later","dk":"don't know","prolly":"probably","tbh":"to be honest","smh":"shaking my head","btw":"by the way","ngl":"not gonna lie","fr":"for real","yessss":"yes","bc":"because","u":"you","thru":"through","lmao":"laughing my ass off","tldr":"too long; didn't read","ofc":"of course","linux":"GNU/Linux","xfl":"Extreme Football League","bi":"bisexual","abbr":"abbreviation","jk":"just kidding","gm":"good morning","mc":"Minecraft","nfl":"National Football League","ygd":"you're gonna die","gn":"goodnight","gac":"Great American Cookie","ncaa":"National Collegiate Athletic Association","em":"them","tbf":"to be fair","ppl":"people","bb":"baby","stfu":"shut the frick up","nvm":"nevermind","idc":"I don't care","dc":"don't care","ty":"thank you","yw":"you're welcome","sout":"System.out.println(\"\");","serr":"System.err.println(\"\");","psvm":"public static void main(String[] args) { }","rn":"right now","osjhs":"I made it up","trans":"transgender","js":"JavaScript","gc":"group chat","vc":"voice chat","tho":"though","abbrevi":"abbreviation","gnu/linux":"linux","notifs":"notifications","sbc":"single-board computer","smg":"Super Mario Galaxy","thx":"thanks","ss":"screenshot","abt":"about","ide":"Integrated Development Environment","aa":"anti-aliasing","unc":"University of North Carolina at Chapel Hill","esolang":"Esoterric Programming Language","gg":"good game","tmr":"tomorrow","idek":"I don't even know","dwbi":"Don't worry about it","pfp":"profile picture","hbu":"how 'bout you","oop":"Object Oriented Programming","imo":"in my opinion","clt":"Charlotte","rtfm":"read the fucking manual","abl":"Anti-Bot League (criminal organization)"}} \ No newline at end of file +{"target_phrases":{"idk":"I don't know","hoco":"homecoming","bbl":"be back later","bbg":"baby girl","mb":"my bad","mfw":"my face when","tfw":"that face when","ebr":"East Baton Rouge","ttyl":"talk to you later","dk":"don't know","prolly":"probably","tbh":"to be honest","smh":"shaking my head","btw":"by the way","ngl":"not gonna lie","fr":"for real","yessss":"yes","bc":"because","u":"you","thru":"through","lmao":"laughing my ass off","tldr":"too long; didn't read","ofc":"of course","linux":"GNU/Linux","xfl":"Extreme Football League","bi":"bisexual","abbr":"abbreviation","jk":"just kidding","gm":"good morning","mc":"Minecraft","nfl":"National Football League","ygd":"you're gonna die","gn":"goodnight","gac":"Great American Cookie","ncaa":"National Collegiate Athletic Association","em":"them","tbf":"to be fair","ppl":"people","bb":"baby","stfu":"shut the frick up","nvm":"nevermind","idc":"I don't care","dc":"don't care","ty":"thank you","yw":"you're welcome","sout":"System.out.println(\"\");","serr":"System.err.println(\"\");","psvm":"public static void main(String[] args) { }","rn":"right now","osjhs":"I made it up","trans":"transgender","js":"JavaScript","gc":"group chat","vc":"voice chat","tho":"though","abbrevi":"abbreviation","gnu/linux":"linux","notifs":"notifications","sbc":"single-board computer","smg":"Super Mario Galaxy","thx":"thanks","ss":"screenshot","abt":"about","ide":"Integrated Development Environment","aa":"anti-aliasing","unc":"University of North Carolina at Chapel Hill","esolang":"Esoterric Programming Language","gg":"good game","tmr":"tomorrow","idek":"I don't even know","dwbi":"Don't worry about it","pfp":"profile picture","hbu":"how 'bout you","oop":"Object Oriented Programming","imo":"in my opinion","clt":"Charlotte","rtfm":"read the fucking manual","abl":"Anti-Bot League (criminal organization)","ool":"object oriented language","html":"hypertext markup language","felicity":"Former Goblin Now Stupid Cat Girl","shit":"Sugar Honey Iced Tea","former goblin now stupid cat girl":"Felicity","fuck":"frequency undecillating cryokarium","ass":"advanced shotgun supressor","nma":"NoMoreAcronyms"}} \ No newline at end of file diff --git a/commands/listPhrases.cjs b/commands/listPhrases.cjs index 192cf96..840fab8 100644 --- a/commands/listPhrases.cjs +++ b/commands/listPhrases.cjs @@ -1,5 +1,6 @@ const { codeBlock } = require("discord.js"); - +const fs = require('fs'); +var path = require('node:path'); const { SlashCommandBuilder, Discord } = require('discord.js'); var abbreviationKey = require("../abbreviation_key.json"); @@ -9,18 +10,15 @@ module.exports = { .setDescription('Lists phrases in target phrases.'), async execute(interaction, client) { let replyDesc = "Here are the current phrases in the phrase list:"; - let replyString = codeBlock("json", JSON.stringify(abbreviationKey.target_phrases, null, " "); + let replyString = JSON.stringify(abbreviationKey.target_phrases, null, " "); if (replyString.length + replyDesc.length > 2000) { //await interaction.reply('Error: String is too big. Resultant output would be too big to send to Discord. (the output length was ' + (output.length + testLength.length) + " characters.)"); let filePath = writeFile(replyString); - await interaction.reply({ content: replyString, files: [filePath] }); + await interaction.reply({ content: replyDesc, files: [filePath] }); fs.unlinkSync(filePath); // Delete file once we're done with it } else { await interaction.reply(replyDesc + replyString); - } - - - await interaction.reply("Here are the current phrases in the phrase list:" + codeBlock("json", JSON.stringify(abbreviationKey.target_phrases, null, " "))); + } console.log("User " + interaction.user.tag + " ran /list_phrases"); }, }; @@ -28,7 +26,7 @@ module.exports = { function writeFile(content) { //console.log(content); console.log("Attempting to write string to file..."); - let filename = Date.now() + '.txt'; + let filename = Date.now() + '.json'; console.log(filename); var filePath = path.join(__dirname, '..', filename); console.log(filePath); diff --git a/madlibs/stories.json b/madlibs/stories.json index b59a316..70b524b 100644 --- a/madlibs/stories.json +++ b/madlibs/stories.json @@ -10,6 +10,7 @@ "Ocean Creatures, by ChatGPT": "When I went scuba diving for the first time, I was amazed by the world beneath the waves. Everywhere I looked, there were creatures swimming around me, each more than the last.\nThe first thing I saw was a school of s, their scales shimmering in the sunlight. They were so that I couldn't help but stare in wonder. As I swam further, I encountered a octopus hiding in a crevice, its tentacles stretching out to grab passing prey.\nBut the most creature of all was a giant that swam right up to me. Its body was covered in s and its was so large that it could swallow me whole. Luckily, it seemed more curious than hungry, and after a few minutes of swimming alongside me, it swam away into the s.\nAs I continued my dive, I saw more and more creatures, from s and s to s and s. It was like swimming through a fantasy world, and I never wanted to leave. But eventually, I had to surface and return to the , already dreaming of my next underwater adventure.", "Fairy Tale Adventure, by ChatGPT": "Once upon a time in a land, there was a princess who lived in a castle. She was known for her beauty and kind heart. One day, while she was in the garden, she stumbled upon a frog.\nThe frog looked up at her with big, eyes and said, \"Princess, please help me. I am actually a who has been cursed by a wicked witch. If you kiss me, I will turn back into my true form.\"\nThe princess was skeptical, but she couldn't resist the frog's plea for help. So she leaned down and gave the frog a . Suddenly, the frog transformed into a prince!\nThe prince explained that he had been cursed by the witch because he had refused to marry her. But now that the curse was broken, he and the princess could get married instead. And so they did, in a wedding ceremony that was attended by all the s in the kingdom.\nAs the new prince and princess of the land, they ruled with fairness and compassion. And whenever they looked out over their kingdom, they couldn't help but smile, knowing that they had found true love with each other.", "The Brave Adventure of a Kind-hearted Person and a Frightened Creature, by ChatGPT":"Once upon a time, there was a who lived in a . One day, while in the 's garden, they discovered a hiding behind a bush. The was and looked very .\nThe approached the and asked, \"Why are you hiding here?\" The replied, \"I'm hiding from the who wants to me!\" The felt sorry for the and decided to them to safety.\nAs they through the , they encountered many obstacles, but they never gave up. Eventually, they reached a castle where the could be safe from the who wanted to harm them.\nThe and the became fast friends and lived happily ever after in the castle.", - "Hailey's Wacky Science Lab, by Hailey Menard":"Welcome to the chemistry lab\nAt institution \nI’m and here is my science partner \nToday we’re going to !\nThe lab is a magical but also a important part of \nHere’s the steps you need to follow to achieve \nFirst you grab the molecular \nBut don’t forget to \nSecond you pour the into a beaker\nOH NO!\nYou forgot your \nThe beaker is going to \nDuck for cover now under the \n\nAlright, you can come out now from hiding in the \nLook around there’s floating around\nGrab your \nSo how was your first day in lab? I hope you had a \nJoin us next week for the tie dye chemistry society event!" + "Hailey's Wacky Science Lab, by Hailey Menard":"Welcome to the chemistry lab\nAt institution \nI’m and here is my science partner \nToday we’re going to !\nThe lab is a magical but also a important part of \nHere’s the steps you need to follow to achieve \nFirst you grab the molecular \nBut don’t forget to \nSecond you pour the into a beaker\nOH NO!\nYou forgot your \nThe beaker is going to \nDuck for cover now under the \n\nAlright, you can come out now from hiding in the \nLook around there’s floating around\nGrab your \nSo how was your first day in lab? I hope you had a \nJoin us next week for the tie dye chemistry society event!", + "Whiskers of Identity: A Trans Tale of Self-Discovery, uwu~!, by Felicity":"Being trans is like feeling in my own skin, finally.\n It's like finding the to a puzzle that's been missing for so long.\n When I look in the mirror, I see a person staring back at me,\n A person who's and , and finally feels .\n\n It's like walking through a on a day,\n Feeling the of the sun on my face, and the in my heart.\n I'm no longer by the expectations of others,\n But by my own , and living my life as my self.\n It's not always , and there are still to face,\n But with every , I'm one step closer to my .\n I'm proud to be trans, and I won't let bring me down,\n I'll keep on , and spreading love and all around, uwu~!" } } diff --git a/main.cjs.bak b/main.cjs.bak new file mode 100644 index 0000000..412f19d --- /dev/null +++ b/main.cjs.bak @@ -0,0 +1,370 @@ +"use strict"; +// Require the necessary discord.js classes +const { Client, Events, GatewayIntentBits, REST, Routes, Collection, FLAGS, MessageMentionOptions, codeBlock, SlashCommandBuilder, blockQuote } = require('discord.js'); +const Discord = require('discord.js'); +const { clientId, guildId, token } = require('./key.json'); +let fs = require('node:fs'); +let path = require('node:path'); +global.madlibState = { gameChannel: undefined, storyTitle:undefined, currentStory: undefined, storyIterate: 0, storyReplaceContent: [], storyLength: undefined, numberOfStories: undefined}; +//export {madlibState}; +//Get number of stories +const madlib = require("./madlibs/stories.json"); +global.madlibState.numberOfStories = Object.keys(madlib.stories).length; +var triggeredByMaci = false; +global.tylerStop = function tylerStop(message) { + if (!message.author.bot && message.author.id == "205475706296205312" && message.content.toLowerCase().includes('idiot')) { + message.react('<:amgery:1072270900675739758>'); + message.reply("Caleb has specifcially asked you multiple times to stop calling yourself an idiot."); + } +} + + +// Create a new client instance +const client = new Discord.Client({ + intents: [ + GatewayIntentBits.Guilds, + GatewayIntentBits.GuildMessages, + GatewayIntentBits.MessageContent, + GatewayIntentBits.GuildMembers, + ], +}); + +// When the client is ready, run this code (only once) +// We use 'c' for the event parameter to keep it separate from the already defined 'client' +client.once(Events.ClientReady, c => { + console.log(`Ready! Logged in as ${c.user.tag}`); +}); + +// Log in to Discord with your client's token +client.login(token); + + +// Retrieve commands +client.commands = new Collection(); + +const commandsPath = path.join(__dirname, 'commands'); +const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.cjs')); + +for (const file of commandFiles) { + const filePath = path.join(commandsPath, file); + const command = require(filePath); + // Set a new item in the Collection with the key as the command name and the value as the exported module + if ('data' in command && 'execute' in command) { + client.commands.set(command.data.name, command); + } else { + console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`); + } +} + + +client.on(Events.InteractionCreate, async interaction => { + if (!interaction.isChatInputCommand()) return; + + const command = interaction.client.commands.get(interaction.commandName); + + if (!command) { + console.error(`No command matching ${interaction.commandName} was found.`); + return; + } + + try { + await command.execute(interaction, client); + } catch (error) { + console.error(error); + if (interaction.replied || interaction.deferred) { + await interaction.followUp({ content: 'There was an error while executing this command!', ephemeral: true }); + } else { + await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true }); + } + } +}); + +// My code + +var abbreviationKey = require("./abbreviation_key.json"); +const { start } = require('node:repl'); + +function arrayRotate(arr, reverse, amount) { + for (let i = 0; i < amount; i++) { + if (reverse) arr.unshift(arr.pop()); + else arr.push(arr.shift()); + return arr; + } +} + +function matchAbbr(abbrTarget) { + console.log("Looking for: " + abbrTarget); + for (var abbr in abbreviationKey.target_phrases) { + if (abbreviationKey.target_phrases[abbr] == abbrTarget) { + //console.log("abbrTarget: " + typeof (abbrTarget)); + //console.log("abbr: " + typeof (abbr)); + return abbr; + } else { + //console.log("abbrTarget: " + typeof (abbrTarget)); + //console.log("abbr: " + typeof (abbr)); + } + } + return ""; +} + +function replyMessage(message, correctedMessage, abbrsUsed) { + if (triggeredByMaci) { + var replyString = "Hi <@732679176565293156>! You're the reason why I exist! You can't stop me with just a role! >:D" + triggeredByMaci = false; + } else { + var replyString = ""; + } + var plural = ""; + if (abbrsUsed == 1) { + plural = "an acronym"; + } else { + plural = abbrsUsed + " acronyms" + } + replyString += "Your message contains " + plural + "! Let me fix that for you: \n"+ " \|\|btw I was written by Caleb Fontenot\|\| \n \n" + blockQuote(correctedMessage); + var stringLength = replyString.length; + + if (stringLength > 2000) { + replyString = "Sorry, I detected " + plural + ", but the resultant response was " + stringLength + " characters long, and Discord only allows a maximum of 2000." + } + message.reply({ content: replyString, allowedMentions: { repliedUser: false } }); + +} + +client.on('messageCreate', message => { + if (global.madlibState.gameChannel == message.channel.id && message.author.id != "1091120267851485215") { // Pass message to madlib game handler if message was sent in the active game channel. + madlibNextMessage(message.content, client); + } + //checkMessage(message, false); +}); + +client.on('messageUpdate', (undefined, newMessage) => { + //checkMessage(newMessage, false); + +}); + +function getMatchingPhrase(inputString, targetCharacter) { + const words = inputString.split(/\s+/); + let matchingPhrase = null; + for (let i = 0; i < words.length; i++) { + const word = words[i]; + if (word.includes(targetCharacter)) { + matchingPhrase = abbreviationKey.target_phrases[word]; + if (matchingPhrase) { + break; + } + } + } + return matchingPhrase; + } +/* + Main bot logic. Check for abbreviations by splitting the message at any non-word characters, then if we find a match, create a new array, replace the abbreviation with the phrase, then call replyMessage() and reply to the original message with the corrected one. +*/ +global.checkMessage = function checkMessage(message, runFromGlobal) { + if (!runFromGlobal) { + checkInsult(message); + if (message.content == "<@1091120267851485215>, what are your pronouns?") { + message.reply({ content: "My pronouns are she/her ☺️", allowedMentions: { repliedUser: false } }) + } + if (message.author.id == "1091120267851485215") { + return; + } + tylerStop(message); + console.log(`${message.author.tag} in #${message.channel.name} sent: ${message.content}`); + } + //console.log(message.author); + var matchMessageArray = message.content.toLowerCase().split(/\W/g); + // /[\‘\’\' ,!?\"@#$%^&*().;:|]+/ + console.log(matchMessageArray); + let correctedMessage = message.content; + let matchDetected = false; + let abbrsUsed = 0; + for (let i = 0; i < matchMessageArray.length; ++i) { + let rebuildMessageArray = []; + //console.log("Corrected Message: " + correctedMessage); + + if (abbreviationKey.target_phrases[matchMessageArray[i]] !== undefined) { + checkIfGirlfriend(message); + if (!runFromGlobal) { + if (checkIfExempt(message)) { + return; + } + } + matchDetected = true; + abbrsUsed++; + //Return key + let phrase = abbreviationKey.target_phrases[matchMessageArray[i]]; + let abbr = matchAbbr(phrase); //abbreviationKey.target_phrases[phrase]; + //console.log(typeof(abbr)); + + console.log("Found abbreviation: " + abbr); + console.log("Phrase that matches used acronym: " + phrase); + if (abbr !== "") { + // let regex = new RegExp(`^(.*?)${ '\\b' + abbr + '\\b'}`, 'i'); + let regex = new RegExp(`^((?:.*?\n)*?.*?)${ '\\b' + abbr + '\\b'}`, 'i'); + rebuildMessageArray = correctedMessage.split(regex); + console.log("rebuildMessageArray: ", rebuildMessageArray); + } else { + message.reply("Detected abbreviation, but regex matching broke. Caleb is working on this..."); + return; + } + //https://gitea.calebfontenot.com/CCF_100/NoMoreAcronyms/issues/1 + //Insert phrase into string + arrayRotate(rebuildMessageArray, true, 1); + rebuildMessageArray.unshift("`" + phrase + "`"); + arrayRotate(rebuildMessageArray, true, 2); + console.log(rebuildMessageArray); + // Build into string and set to variable! + correctedMessage = "" // clear old message. + + for (let j = 0; j < rebuildMessageArray.length; j++) { + correctedMessage += rebuildMessageArray[j]; + } + console.log(correctedMessage); + + //break; + } + } + if (matchDetected) { + replyMessage(message, correctedMessage, abbrsUsed); + } + + + +} +function checkIfGirlfriend(message) { + if (message.author.id == "698360641731166238") { + message.react('☺️'); + message.react('❤️'); + } +} +function checkIfExempt(message) { + if (!message.author.bot) { + console.log("Has role? " + message.member.roles.cache.some(role => role.name == "Exempt from NoMoreAcronyms")); + if (message.content.includes("http", "https")) { + message.react('🌐'); + message.react('🔗'); + return true; + } else if (message.content.includes("```")) { + return true; + } + if(message.author.id == "732679176565293156") { + triggeredByMaci = true; + return false; + } + if (message.member.roles.cache.some(role => role.name == "Exempt from NoMoreAcronyms")) { + if (!message.member.roles.cache.some(role => role.name == "NoReactions")) { + message.react('🇵'); + message.react('🇴'); + message.react('🇬'); + return true; + } + return true; + } + } + return false; +} + +function checkInsult(message) { + if (!message.author.bot) { + if (message.content.includes("block", "bot")) { + message.delete(); + } else + if (!message.member.roles.cache.some(role => role.name == "Exempt from NoMoreAcronyms")) { + if (message.content.includes("bot", "annoying")) { + message.react('🇳'); + message.react('🇴'); + message.react('❌'); + message.react('🇺'); + } + } + } +} + + + + +// Madlib game logic + +// Setup story +function startMadlib(selectedStory) { + // Load story + const madlib = require("./madlibs/stories.json"); + console.log("Madlib story count: " + Object.keys(madlib.stories).length); + let storyCount = Object.keys(madlib.stories).length; + let storyTitle; + console.log(selectedStory); + if (selectedStory == 0) { + //Pick random story: + storyTitle = Object.keys(madlib.stories)[Math.trunc(Math.random() * storyCount)]; + } else { + storyTitle = Object.keys(madlib.stories)[selectedStory - 1]; + } + + console.log("Current story: " + storyTitle); + let currentStory = madlib.stories[storyTitle]; + let storyLength = currentStory.match(/<([^>]+)>/g).length; + // Update global variables with states. + global.madlibState.storyTitle = storyTitle; + global.madlibState.currentStory = currentStory; + global.madlibState.storyLength = storyLength; + //Print story title + const channel = client.channels.cache.get(madlibState.gameChannel); + channel.send("Current story: " + storyTitle); + +} + +/* +* This function sends a prompt for the next keyword for the madlib story. +*/ +global.madlibNextPrompt = function madlibNextPrompt(client, iteration, selectedStory) { + console.log("Next prompt requested"); + if (global.madlibState.currentStory == undefined) { + startMadlib(selectedStory); + } + let currentStory = global.madlibState.currentStory; + //Find all <> in the string and return it. + let phrase = currentStory.match(/(?<=<)[^>]+(?=>)/g); + //remove every other element in array, so we only have the prompts + console.log(phrase); + // Send a message in the gameChannel with the next prompt. + const channel = client.channels.cache.get(madlibState.gameChannel); + let aAn; + let vowelArray = ["a", "e", "i", "o", "u"]; + aAn = "a "; + for (let i = 0; i < vowelArray.length; ++i) { + if (phrase[iteration].toLowerCase().charAt(0) == (vowelArray[i].charAt(0))) { + aAn = "an "; + } + } + channel.send("Give me " + aAn + phrase[iteration] + ":\n(" + (phrase.length - iteration) + " words remain)"); +} +/* +* This function is executed when a player is sending a new message. +*/ +global.madlibNextMessage = function madlibNextMessage(promptAnswerString, client) { + global.madlibState.storyIterate++; + //Process message + console.log("Processing next message..."); + console.log("Player responded with: \"" + promptAnswerString +"\""); + global.madlibState.storyReplaceContent.push("`" + promptAnswerString + "`"); + console.log(madlibState.storyReplaceContent); + // Check how many times we've iterated, and if we're not done collecting content for the story, continue + if (global.madlibState.storyIterate < global.madlibState.storyLength) { + global.madlibNextPrompt(client, global.madlibState.storyIterate, undefined); + } else { //Story content has been obtained! Now we just need to build the story and return it. + endMadlib(); + } +} +function endMadlib() { + // Build story string, send the message, and set all of the madlibState variables to their defaults. + let currentStory = global.madlibState.currentStory; + let storyReplaceContent = global.madlibState.storyReplaceContent; + for (let i = 0; i < storyReplaceContent.length; ++i) { + currentStory = currentStory.replace(/<([^>]+)>/, storyReplaceContent[i]); + } + console.log(currentStory); + const channel = client.channels.cache.get(madlibState.gameChannel); + channel.send("Story is complete! \n" + currentStory); + //Reset madlibState. + global.madlibState = { gameChannel: undefined, storyTitle:undefined, currentStory: undefined, storyIterate: 0, storyReplaceContent: [], storyLength: undefined}; +} diff --git a/main.js b/main.js new file mode 120000 index 0000000..b225a92 --- /dev/null +++ b/main.js @@ -0,0 +1 @@ +main.cjs \ No newline at end of file