Change to xiaodev

This commit is contained in:
lilyissillyyy
2026-03-09 13:04:56 -04:00
parent cdd6bb0208
commit 172f13ec03
14 changed files with 29 additions and 35 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
Internet Systems Consortium license Internet Systems Consortium license
=================================== ===================================
Copyright (c) 2017-2026, lilyissillyyy Copyright (c) 2017-2026, xiaobotdev
Permission to use, copy, modify, and/or distribute this software for any purpose Permission to use, copy, modify, and/or distribute this software for any purpose
with or without fee is hereby granted, provided that the above copyright notice with or without fee is hereby granted, provided that the above copyright notice
+4 -4
View File
@@ -1,5 +1,5 @@
# Xiao # Xiao
![Xiao](https://raw.githubusercontent.com/lilyissillyyy/xiao/refs/heads/master/assets/Xiao.png) ![Xiao](https://raw.githubusercontent.com/xiaobotdev/xiao/refs/heads/master/assets/Xiao.png)
[![](https://dcbadge.limes.pink/api/server/https://discord.gg/xX8PgCx2AP)](https://discord.gg/xX8PgCx2AP) [![](https://dcbadge.limes.pink/api/server/https://discord.gg/xX8PgCx2AP)](https://discord.gg/xX8PgCx2AP)
@@ -71,7 +71,7 @@ Only if you want to use the DECTalk command.
* `NAME_RATER_EMOJI_ID` and `NAME_RATER_EMOJI_NAME` are for **name-rater**. Defaults to nothing, it just won't be there. * `NAME_RATER_EMOJI_ID` and `NAME_RATER_EMOJI_NAME` are for **name-rater**. Defaults to nothing, it just won't be there.
#### API Keys, IDs, and Secrets #### API Keys, IDs, and Secrets
* `ANILIST_USERNAME` is your username for [Anilist](https://anilist.co/home). Optional, defaults to "lilyissillyyy". * `ANILIST_USERNAME` is your username for [Anilist](https://anilist.co/home). Optional.
* `BITLY_KEY` is your API key for Bit.ly. You can get one [here](https://dev.bitly.com/docs/getting-started/authentication/). * `BITLY_KEY` is your API key for Bit.ly. You can get one [here](https://dev.bitly.com/docs/getting-started/authentication/).
* `CLEVERBOT_KEY` is your API key for Cleverbot. You can get one [here](https://www.cleverbot.com/api/). * `CLEVERBOT_KEY` is your API key for Cleverbot. You can get one [here](https://www.cleverbot.com/api/).
* `GITHUB_ACCESS_TOKEN` is your access token for GitHub. [Follow these steps](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic) to make one. * `GITHUB_ACCESS_TOKEN` is your access token for GitHub. [Follow these steps](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic) to make one.
@@ -82,7 +82,7 @@ Only if you want to use the DECTalk command.
* `THECATAPI_KEY` is your API key for The Cat API. You can get one [here](https://thecatapi.com/). * `THECATAPI_KEY` is your API key for The Cat API. You can get one [here](https://thecatapi.com/).
* `THEDOGAPI_KEY` is your API key for The Dog API. You can get one [here](https://thedogapi.com/). * `THEDOGAPI_KEY` is your API key for The Dog API. You can get one [here](https://thedogapi.com/).
* `WEBSTER_KEY` is your API key for Merriam-Webster. You can get one [here](https://dictionaryapi.com/). * `WEBSTER_KEY` is your API key for Merriam-Webster. You can get one [here](https://dictionaryapi.com/).
* `XIAO_GITHUB_REPO_NAME` and `XIAO_GITHUB_REPO_USERNAME` are the name and username of the GitHub repo where Xiao lives. These are optional, and default to "xiao" and "lilyissillyyy" respectively. * `XIAO_GITHUB_REPO_NAME` and `XIAO_GITHUB_REPO_USERNAME` are the name and username of the GitHub repo where Xiao lives. These are optional, and default to "xiao" and "xiaobotdev" respectively.
### Encrypting `.env` ### Encrypting `.env`
@@ -97,7 +97,7 @@ Only if you want to use the DECTalk command.
1. Install [Node.js](https://nodejs.org/en/). 1. Install [Node.js](https://nodejs.org/en/).
2. Run `apt install git` to install git. 2. Run `apt install git` to install git.
3. Clone this repository with `git clone https://github.com/lilyissillyyy/xiao.git`. 3. Clone this repository with `git clone https://github.com/xiaobotdev/xiao.git`.
4. Run `cd xiao` to move into the folder that you just created. 4. Run `cd xiao` to move into the folder that you just created.
5. Create a file named `.env` and fill it out as shown in above and in `.env.example`. 5. Create a file named `.env` and fill it out as shown in above and in `.env.example`.
6. Run `apt update` and `apt upgrade` to install the latest dependencies of your distro. 6. Run `apt update` and `apt upgrade` to install the latest dependencies of your distro.
-1
View File
@@ -13527,7 +13527,6 @@
"Yesterday's lunch, today's snack.", "Yesterday's lunch, today's snack.",
"Bort Sampson's catchphrase, \"eat pant\".", "Bort Sampson's catchphrase, \"eat pant\".",
"The cheap Lando knock-off named Rando Cardrissian.", "The cheap Lando knock-off named Rando Cardrissian.",
"lilyissillyyy.",
"Xiao.", "Xiao.",
"[object Object]", "[object Object]",
"The eventual release of Xiao's public source code." "The eventual release of Xiao's public source code."
+1 -1
View File
@@ -1,5 +1,5 @@
[ [
"©2017-2026 lilyissillyyy", "©2017-2026 xiaobotdev",
"Rune Factory: ©2012 Marvelous Inc.", "Rune Factory: ©2012 Marvelous Inc.",
"Avatar Art: ©2018 airful" "Avatar Art: ©2018 airful"
] ]
-5
View File
@@ -243,11 +243,6 @@
"minTime": 123, "minTime": 123,
"origin": "Hoarse and Horse sound similar" "origin": "Hoarse and Horse sound similar"
}, },
{
"name": "Lily is Silly",
"minTime": 960,
"origin": "Creator of Xiao lilyissillyyy"
},
{ {
"name": "Long Face", "name": "Long Face",
"minTime": 143, "minTime": 143,
+10 -10
View File
@@ -1,10 +1,10 @@
[ [
"The `can-you-not` command was created to annoy one of Lily's friends, as that was their catchphrase.", "The `can-you-not` command was created to annoy one of my developer's friends, as that was their catchphrase.",
"The `hat` command was made so that Lily wouldn't have to create a new avatar for Xiao every time a holiday came around.", "The `hat` command was made so that my developer wouldn't have to create a new avatar for Xiao every time a holiday came around.",
"The `steam-now-playing` command was created by taking a screenshot of the \"Now Playing\" message from Steam, so it has to be updated every time Steam changes the design.", "The `steam-now-playing` command was created by taking a screenshot of the \"Now Playing\" message from Steam, so it has to be updated every time Steam changes the design.",
"The `glitch` command was created by accident. Lily accidently gave the `distort` command the wrong settings, and as a result created a glitchy mess, which became it's own command.", "The `glitch` command was created by accident. My developer accidently gave the `distort` command the wrong settings, and as a result created a glitchy mess, which became it's own command.",
"Lily still has no idea why the `cursed-sponge` command was added.", "My developer still has no idea why the `cursed-sponge` command was added.",
"The `kyon-gun` command was what made Lily watch Haruhi, which became one of her favorite anime.", "The `kyon-gun` command was what made my developer watch Haruhi, which became one of her favorite anime.",
"The `challenger` command will automatically check images for transparency, and silhouette them only if there is some.", "The `challenger` command will automatically check images for transparency, and silhouette them only if there is some.",
"Several \"Meme Generator\" commands were created during a meme's prime popularity, and as a result many of them are based on long-dead memes.", "Several \"Meme Generator\" commands were created during a meme's prime popularity, and as a result many of them are based on long-dead memes.",
"The `tebahpla` command's name is literally \"alphabet\" backwards.", "The `tebahpla` command's name is literally \"alphabet\" backwards.",
@@ -24,11 +24,11 @@
"In NSFW channels, `kiss-marry-kill` turns into `fuck-marry-kill`.", "In NSFW channels, `kiss-marry-kill` turns into `fuck-marry-kill`.",
"The `light-novel-title` command only exists because `light-novel-cover` often gives NSFW covers.", "The `light-novel-title` command only exists because `light-novel-cover` often gives NSFW covers.",
"The `quantum-coin` command is based on a bug that caused the `coin` command to give weird results.", "The `quantum-coin` command is based on a bug that caused the `coin` command to give weird results.",
"Most \"Seeded Randomizer\" commands have a special response when used on Lily.", "Most \"Seeded Randomizer\" commands have a special response when used on my developer.",
"Xiao will not let you use \"Seeded Randomizer\" commands on her, instead giving a snarky response about how good she is.", "Xiao will not let you use \"Seeded Randomizer\" commands on her, instead giving a snarky response about how good she is.",
"The `dick` command, when used on Xiao, will give your own size, plus one.", "The `dick` command, when used on Xiao, will give your own size, plus one.",
"There are several special timezones in `time`, such as \"Discord\", \"Lily\", and \"Neopia\".", "There are several special timezones in `time`, such as \"Discord\" and \"Neopia\".",
"The `anime` and `manga` commands have used MyAnimeList, Kitsu, and Anilist over their development. The current use of Anilist is due to Lily's status as a data mod there.", "The `anime` and `manga` commands have used MyAnimeList, Kitsu, and Anilist over their development. The current use of Anilist is due to my developer using it.",
"The `periodic-table` command will give Jerktonium from SpongeBob SquarePants if you ask for Atomic Number 0.", "The `periodic-table` command will give Jerktonium from SpongeBob SquarePants if you ask for Atomic Number 0.",
"The `give-flower` command was the first command added to Xiao.", "The `give-flower` command was the first command added to Xiao.",
"Xiao is the best bot ever.", "Xiao is the best bot ever.",
@@ -42,10 +42,10 @@
"The text in the box of the `axis-cult-sign-up` command's image reads \"ERIS PADS HER CHEST!\".", "The text in the box of the `axis-cult-sign-up` command's image reads \"ERIS PADS HER CHEST!\".",
"In the `roman` command, typing \"zero\" will give you \"_nulla_\", the latin word for zero. This is because zero does not exist in roman numerals.", "In the `roman` command, typing \"zero\" will give you \"_nulla_\", the latin word for zero. This is because zero does not exist in roman numerals.",
"The `horse-race` command contains several references: real horse names, My Little Pony characters, and various pop culture jokes. Even a few Xiao jokes are snuck in there!", "The `horse-race` command contains several references: real horse names, My Little Pony characters, and various pop culture jokes. Even a few Xiao jokes are snuck in there!",
"In `horse-race`, you will occasionally encounter horses named \"Donald Trump\" and \"Lily is Silly\". Be careful, as these aren't horses, their times are based on the actual human running the race!", "In `horse-race`, you will occasionally encounter a horse named \"Donald Trump\". Be careful, this isn't a horse, it's the actual human running the race!",
"Numerous commands use a massive 2,000,000 entry array to check for adult sites. Some _still_ fall through the cracks.", "Numerous commands use a massive 2,000,000 entry array to check for adult sites. Some _still_ fall through the cracks.",
"The `ship` command will call you a narcissist if you test yourself with yourself.", "The `ship` command will call you a narcissist if you test yourself with yourself.",
"Whenever Lily gets a real fortune cookie, she adds the fortune to the `fortune` command.", "Whenever my developer gets a real fortune cookie, she adds the fortune to the `fortune` command.",
"The `whos-that-pokemon` command will play a sound effect and the Pokémon's cry if both you and the bot are in a voice channel when the command is used.", "The `whos-that-pokemon` command will play a sound effect and the Pokémon's cry if both you and the bot are in a voice channel when the command is used.",
"The `pokedex` command will play the Pokémon's cry if both you and the bot are in a voice channel when the command is used.", "The `pokedex` command will play the Pokémon's cry if both you and the bot are in a voice channel when the command is used.",
"Reminders in the `remind` command have a maximum length of ~24.84 days. This is due to how JavaScript timeouts work, anything higher than this will fire early, or possibly even instantly.", "Reminders in the `remind` command have a maximum length of ~24.84 days. This is due to how JavaScript timeouts work, anything higher than this will fire early, or possibly even instantly.",
+1 -1
View File
@@ -30,7 +30,7 @@ module.exports = class TimeCommand extends Command {
run(msg, { timeZone }) { run(msg, { timeZone }) {
const time = moment().tz(timeZone).format('h:mm A'); const time = moment().tz(timeZone).format('h:mm A');
const location = timeZone.split('/'); const location = timeZone.split('/');
const word = location[0] === 'Lily' ? 'for' : 'in'; const word = location[0] === 'Dev' ? 'for my' : 'in';
const main = firstUpperCase(location[0], /[_ ]/); const main = firstUpperCase(location[0], /[_ ]/);
const sub = location[1] ? firstUpperCase(location[1], /[_ ]/) : null; const sub = location[1] ? firstUpperCase(location[1], /[_ ]/) : null;
const subMain = location[2] ? firstUpperCase(location[2], /[_ ]/) : null; const subMain = location[2] ? firstUpperCase(location[2], /[_ ]/) : null;
+1 -1
View File
@@ -5,7 +5,7 @@ const cheerio = require('cheerio');
const { stripIndents } = require('common-tags'); const { stripIndents } = require('common-tags');
const { cleanAnilistHTML, embedURL } = require('../../util/Util'); const { cleanAnilistHTML, embedURL } = require('../../util/Util');
const logos = require('../../assets/json/logos'); const logos = require('../../assets/json/logos');
const ANILIST_USERNAME = process.env.ANILIST_USERNAME || 'lilyissillyyy'; const ANILIST_USERNAME = process.env.ANILIST_USERNAME || 'AniList';
const searchGraphQL = stripIndents` const searchGraphQL = stripIndents`
query ($search: String, $type: MediaType, $isAdult: Boolean) { query ($search: String, $type: MediaType, $isAdult: Boolean) {
anime: Page (perPage: 10) { anime: Page (perPage: 10) {
+1 -1
View File
@@ -5,7 +5,7 @@ const cheerio = require('cheerio');
const { stripIndents } = require('common-tags'); const { stripIndents } = require('common-tags');
const { cleanAnilistHTML, embedURL } = require('../../util/Util'); const { cleanAnilistHTML, embedURL } = require('../../util/Util');
const logos = require('../../assets/json/logos'); const logos = require('../../assets/json/logos');
const ANILIST_USERNAME = process.env.ANILIST_USERNAME || 'lilyissillyyy'; const ANILIST_USERNAME = process.env.ANILIST_USERNAME || 'AniList';
const searchGraphQL = stripIndents` const searchGraphQL = stripIndents`
query ($search: String, $type: MediaType, $isAdult: Boolean) { query ($search: String, $type: MediaType, $isAdult: Boolean) {
anime: Page (perPage: 10) { anime: Page (perPage: 10) {
+1 -1
View File
@@ -3,7 +3,7 @@ const { EmbedBuilder } = require('discord.js');
const request = require('node-superfetch'); const request = require('node-superfetch');
const { shorten, embedURL } = require('../../util/Util'); const { shorten, embedURL } = require('../../util/Util');
const { GITHUB_ACCESS_TOKEN } = process.env; const { GITHUB_ACCESS_TOKEN } = process.env;
const XIAO_GITHUB_REPO_USERNAME = process.env.XIAO_GITHUB_REPO_USERNAME || 'lilyissillyyy'; const XIAO_GITHUB_REPO_USERNAME = process.env.XIAO_GITHUB_REPO_USERNAME || 'xiaobotdev';
const XIAO_GITHUB_REPO_NAME = process.env.XIAO_GITHUB_REPO_NAME || 'xiao'; const XIAO_GITHUB_REPO_NAME = process.env.XIAO_GITHUB_REPO_NAME || 'xiao';
module.exports = class ChangelogCommand extends Command { module.exports = class ChangelogCommand extends Command {
+1 -1
View File
@@ -26,7 +26,7 @@ module.exports = class GenerateCreditCommand extends Command {
if (!commands.size) return null; if (!commands.size) return null;
return commands.map(c => { return commands.map(c => {
const credits = c.credit const credits = c.credit
.filter(cred => cred.name !== 'Lily is Silly') .filter(cred => cred.name !== 'Xiao Dev')
.map(cred => { .map(cred => {
const reason = cred.reasonURL ? embedURL(cred.reason, cred.reasonURL) : cred.reason; const reason = cred.reasonURL ? embedURL(cred.reason, cred.reasonURL) : cred.reason;
return `${embedURL(cred.name, cred.url)} (${reason})`; return `${embedURL(cred.name, cred.url)} (${reason})`;
+2 -2
View File
@@ -25,8 +25,8 @@ module.exports = class Command {
this.sendTyping = typeof options.sendTyping === 'undefined' ? true : Boolean(options.sendTyping); this.sendTyping = typeof options.sendTyping === 'undefined' ? true : Boolean(options.sendTyping);
this.credit = options.credit || []; this.credit = options.credit || [];
this.credit.push({ this.credit.push({
name: 'Lily is Silly', name: 'Xiao Dev',
url: 'https://github.com/lilyissillyyy', url: 'https://github.com/xiaobotdev',
reason: 'Code' reason: 'Code'
}); });
this.uses = 0; this.uses = 0;
+5 -5
View File
@@ -1,6 +1,6 @@
{ {
"name": "xiao", "name": "xiao",
"version": "160.0.2", "version": "160.0.3",
"description": "Your personal server companion.", "description": "Your personal server companion.",
"main": "Xiao.js", "main": "Xiao.js",
"scripts": { "scripts": {
@@ -10,7 +10,7 @@
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/lilyissillyyy/xiao.git" "url": "git+https://github.com/xiaobotdev/xiao.git"
}, },
"keywords": [ "keywords": [
"bot", "bot",
@@ -19,12 +19,12 @@
"discord-bot", "discord-bot",
"discord-js" "discord-js"
], ],
"author": "lilyissillyyy <lilyodendahl@gmail.com>", "author": "xiaobotdev",
"license": "ISC", "license": "ISC",
"bugs": { "bugs": {
"url": "https://github.com/lilyissillyyy/xiao/issues" "url": "https://github.com/xiaobotdev/xiao/issues"
}, },
"homepage": "https://github.com/lilyissillyyy/xiao#readme", "homepage": "https://github.com/xiaobotdev/xiao#readme",
"engines": { "engines": {
"node": ">=24" "node": ">=24"
}, },
+1 -1
View File
@@ -41,7 +41,7 @@ module.exports = class XiaoClient extends CommandClient {
setTimezones() { setTimezones() {
moment.tz.link('America/Vancouver|Neopia'); moment.tz.link('America/Vancouver|Neopia');
moment.tz.link('America/Los_Angeles|Discord'); moment.tz.link('America/Los_Angeles|Discord');
moment.tz.link('America/New_York|Lily'); moment.tz.link('America/New_York|Dev');
} }
async fetchAdultSiteList(force = false) { async fetchAdultSiteList(force = false) {