hopefully added support for wrapping of proxies (at beginning, around, and end)

This commit is contained in:
Aster Fialla
2026-02-14 15:05:48 -05:00
committed by pieartsy
parent bbc566b8b9
commit 650f39266b
2 changed files with 13 additions and 7 deletions

View File

@@ -14,7 +14,9 @@ helperEnums.err = {
PROPIC_CANNOT_LOAD: "Profile picture could not be loaded from URL.",
NO_WEBHOOKS_ALLOWED: "Channel does not support webhooks.",
NOT_IN_SERVER: "You can only proxy in a server.",
NO_MESSAGE_SENT_WITH_PROXY: 'Proxied message has no content.'
NO_MESSAGE_SENT_WITH_PROXY: 'Proxied message has no content.',
NO_TEXT_FOR_PROXY: "You need the word 'text' for the bot to detect proxy tags with.\nCorrect usage examples: `pf;member jane proxy J:text`, `pf;member jane [text]`",
NO_PROXY_WRAPPER: "You need at least one proxy tag surrounding 'text', either before or after.\nCorrect usage examples: `pf;member jane proxy J:text`, `pf;member jane [text]`"
}
helperEnums.help = {
@@ -27,7 +29,7 @@ helperEnums.help = {
REMOVE: "Removes a member based on their name, for example: `pf;member remove jane`.",
NAME: "Updates the name for a specific member based on their current name, for ex: `pf;member jane name jane`. The member name should ideally be short so you can write other commands with it easily.",
DISPLAY_NAME: "Updates the display name for a specific member based on their name, for example: `pf;member jane \"Jane Doe | ze/hir\"`.This can be up to 32 characters long. If it has spaces, put it in __double quotes__.",
PROXY: "Updates the proxy tag for a specific member based on their name, for example: `pf;member jane proxy Jane:` or `pf;member amal proxy A=`. This is put at *the start* of a message to allow it to be proxied. Proxies that wrap around text or go at the end are *not* currently supported.",
PROXY: "Updates the proxy tag for a specific member based on their name. The proxy must be formatted with the tags surrounding the word 'text', for example: `pf;member jane proxy Jane:text` or `pf;member amal proxy [text]` This is so the bot can detect what the proxy tags are.",
PROPIC: "Updates the profile picture for the member. Must be in JPG or PNG format. The two options are:\n1. Pass in a direct remote image URL, for example: `pf;member jane propic <https://cdn.pixabay.com/photo/2020/05/02/02/54/animal-5119676_1280.jpg>`. You can upload images on sites like <https://imgbb.com/>.\n2. Upload an attachment directly.\n\n**NOTE:** Fluxer does not save your attachments forever, so option #1 is recommended.",
}

View File

@@ -3,7 +3,6 @@ import {enums} from "../enums.js";
import { loadImage } from "canvas";
import {EmptyResultError} from "sequelize";
import {EmbedBuilder, User} from "@fluxerjs/core";
import {messageHelper} from "./messageHelper.js";
const mh = {};
@@ -68,7 +67,7 @@ mh.parseMemberCommand = async function(author, args, attachmentUrl){
* @param {string} authorId - The author of the message
* @param {string[]} args - The message arguments
* @returns {Promise<string>} A successful addition.
* @throws {Error} When creating a member doesn't work.
* @throws {Error} When the member exists, or creating a member doesn't work.
*/
async function addNewMember(authorId, args) {
if (args[1] && args[1] === "--help" || !args[1]) {
@@ -77,6 +76,10 @@ async function addNewMember(authorId, args) {
const memberName = args[1];
const displayName = args[2];
const member = await mh.getMemberByName(authorId, memberName);
if (member) {
throw new Error(enums.err.MEMBER_EXISTS);
}
const trimmedName = displayName ? displayName.replaceAll(' ', '') : null;
return await db.members.create({
name: memberName,
@@ -157,9 +160,10 @@ async function updateProxy(authorId, args) {
const proxy = args[2];
const trimmedProxy = proxy ? proxy.replaceAll(' ', '') : null;
if (trimmedProxy == null) {
throw new RangeError(`Proxy ${enums.err.NO_VALUE}`);
}
if (trimmedProxy == null) throw new RangeError(`Proxy ${enums.err.NO_VALUE}`);
const splitProxy = proxy.trim().split("text");
if(splitProxy.length < 2) throw new Error(enums.err.NO_TEXT_FOR_PROXY);
if(!splitProxy[0] && !splitProxy[1]) throw new Error(enums.err.NO_PROXY_WRAPPER);
const members = await mh.getMembersByAuthor(authorId);
const proxyExists = members.some(member => member.proxy === proxy);