mirror of
https://github.com/spacebarchat/server.git
synced 2026-04-28 08:25:45 +00:00
Merge branch 'master' into fix/claim_accounts
This commit is contained in:
@@ -2,12 +2,18 @@
|
||||
"MessageCreateSchema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "integer"
|
||||
},
|
||||
"content": {
|
||||
"type": "string"
|
||||
},
|
||||
"nonce": {
|
||||
"type": "string"
|
||||
},
|
||||
"channel_id": {
|
||||
"type": "string"
|
||||
},
|
||||
"tts": {
|
||||
"type": "boolean"
|
||||
},
|
||||
|
||||
@@ -27,7 +27,16 @@ const Excluded = [
|
||||
"Response",
|
||||
"e.Response",
|
||||
"request.Response",
|
||||
"supertest.Response"
|
||||
"supertest.Response",
|
||||
|
||||
// TODO: Figure out how to exclude schemas from node_modules?
|
||||
"SomeJSONSchema",
|
||||
"UncheckedPartialSchema",
|
||||
"PartialSchema",
|
||||
"UncheckedPropertiesSchema",
|
||||
"PropertiesSchema",
|
||||
"AsyncSchema",
|
||||
"AnySchema",
|
||||
];
|
||||
|
||||
function modify(obj) {
|
||||
@@ -39,11 +48,18 @@ function modify(obj) {
|
||||
}
|
||||
|
||||
function main() {
|
||||
const program = TJS.getProgramFromFiles(walk(path.join(__dirname, "..", "src", "routes")), compilerOptions);
|
||||
const files = [
|
||||
...walk(path.join(__dirname, "..", "src", "routes")),
|
||||
...walk(path.join(__dirname, "..", "..", "util", "src")),
|
||||
];
|
||||
const program = TJS.getProgramFromFiles(
|
||||
files,
|
||||
compilerOptions
|
||||
);
|
||||
const generator = TJS.buildGenerator(program, settings);
|
||||
if (!generator || !program) return;
|
||||
|
||||
const schemas = generator.getUserSymbols().filter((x) => (x.endsWith("Schema") || x.endsWith("Response")) && !Excluded.includes(x));
|
||||
let schemas = generator.getUserSymbols().filter((x) => (x.endsWith("Schema") || x.endsWith("Response")) && !Excluded.includes(x));
|
||||
console.log(schemas);
|
||||
|
||||
var definitions = {};
|
||||
|
||||
@@ -50,8 +50,10 @@ export function isTextChannel(type: ChannelType): boolean {
|
||||
}
|
||||
|
||||
export interface MessageCreateSchema {
|
||||
type?: number;
|
||||
content?: string;
|
||||
nonce?: string;
|
||||
channel_id?: string;
|
||||
tts?: boolean;
|
||||
flags?: string;
|
||||
embeds?: Embed[];
|
||||
@@ -161,7 +163,7 @@ const messageUpload = multer({
|
||||
limits: {
|
||||
fileSize: 1024 * 1024 * 100,
|
||||
fields: 10,
|
||||
files: 1
|
||||
// files: 1
|
||||
},
|
||||
storage: multer.memoryStorage()
|
||||
}); // max upload 50 mb
|
||||
@@ -176,7 +178,7 @@ const messageUpload = multer({
|
||||
// Send message
|
||||
router.post(
|
||||
"/",
|
||||
messageUpload.single("file"),
|
||||
messageUpload.any(),
|
||||
async (req, res, next) => {
|
||||
if (req.body.payload_json) {
|
||||
req.body = JSON.parse(req.body.payload_json);
|
||||
@@ -190,19 +192,22 @@ router.post(
|
||||
var body = req.body as MessageCreateSchema;
|
||||
const attachments: Attachment[] = [];
|
||||
|
||||
if (req.file) {
|
||||
try {
|
||||
const file = await uploadFile(`/attachments/${req.params.channel_id}`, req.file);
|
||||
attachments.push({ ...file, proxy_url: file.url });
|
||||
} catch (error) {
|
||||
return res.status(400).json(error);
|
||||
}
|
||||
}
|
||||
const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients", "recipients.user"] });
|
||||
if (!channel.isWritable()) {
|
||||
throw new HTTPError(`Cannot send messages to channel of type ${channel.type}`, 400)
|
||||
}
|
||||
|
||||
const files = req.files as Express.Multer.File[] ?? [];
|
||||
for (var currFile of files) {
|
||||
try {
|
||||
const file = await uploadFile(`/attachments/${channel.id}`, currFile);
|
||||
attachments.push({ ...file, proxy_url: file.url });
|
||||
}
|
||||
catch (error) {
|
||||
return res.status(400).json(error);
|
||||
}
|
||||
}
|
||||
|
||||
const embeds = body.embeds || [];
|
||||
if (body.embed) embeds.push(body.embed);
|
||||
let message = await handleMessage({
|
||||
|
||||
@@ -38,7 +38,7 @@ const DEFAULT_FETCH_OPTIONS: any = {
|
||||
headers: {
|
||||
"user-agent": "Mozilla/5.0 (compatible; Fosscord/1.0; +https://github.com/fosscord/fosscord)"
|
||||
},
|
||||
size: 1024 * 1024 * 1,
|
||||
// size: 1024 * 1024 * 5, // grabbed from config later
|
||||
compress: true,
|
||||
method: "GET"
|
||||
};
|
||||
@@ -154,7 +154,10 @@ export async function postHandleMessage(message: Message) {
|
||||
|
||||
for (const link of links) {
|
||||
try {
|
||||
const request = await fetch(link, DEFAULT_FETCH_OPTIONS);
|
||||
const request = await fetch(link, {
|
||||
...DEFAULT_FETCH_OPTIONS,
|
||||
size: Config.get().limits.message.maxEmbedDownloadSize,
|
||||
});
|
||||
|
||||
const text = await request.text();
|
||||
const $ = cheerio.load(text);
|
||||
@@ -191,7 +194,7 @@ export async function postHandleMessage(message: Message) {
|
||||
channel_id: message.channel_id,
|
||||
data
|
||||
} as MessageUpdateEvent),
|
||||
Message.update({ id: message.id, channel_id: message.channel_id }, data)
|
||||
Message.update({ id: message.id, channel_id: message.channel_id }, { embeds: data.embeds })
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
+19
-18
@@ -85,6 +85,7 @@ export interface ConfigValue {
|
||||
maxReactions: number;
|
||||
maxAttachmentSize: number;
|
||||
maxBulkDelete: number;
|
||||
maxEmbedDownloadSize: number;
|
||||
};
|
||||
channel: {
|
||||
maxPins: number;
|
||||
@@ -232,29 +233,30 @@ export const DefaultConfigOptions: ConfigValue = {
|
||||
},
|
||||
limits: {
|
||||
user: {
|
||||
maxGuilds: 100,
|
||||
maxUsername: 32,
|
||||
maxFriends: 1000,
|
||||
maxGuilds: 1048576,
|
||||
maxUsername: 127,
|
||||
maxFriends: 5000,
|
||||
},
|
||||
guild: {
|
||||
maxRoles: 250,
|
||||
maxEmojis: 50, // TODO: max emojis per guild per nitro level
|
||||
maxMembers: 250000,
|
||||
maxChannels: 500,
|
||||
maxChannelsInCategory: 50,
|
||||
hideOfflineMember: 1000,
|
||||
maxRoles: 1000,
|
||||
maxEmojis: 2000,
|
||||
maxMembers: 25000000,
|
||||
maxChannels: 65535,
|
||||
maxChannelsInCategory: 65535,
|
||||
hideOfflineMember: 3,
|
||||
},
|
||||
message: {
|
||||
maxCharacters: 2000,
|
||||
maxTTSCharacters: 200,
|
||||
maxReactions: 20,
|
||||
maxAttachmentSize: 8388608,
|
||||
maxBulkDelete: 100,
|
||||
maxCharacters: 1048576,
|
||||
maxTTSCharacters: 160,
|
||||
maxReactions: 2048,
|
||||
maxAttachmentSize: 1024 * 1024 * 1024,
|
||||
maxEmbedDownloadSize: 1024 * 1024 * 5,
|
||||
maxBulkDelete: 1000,
|
||||
},
|
||||
channel: {
|
||||
maxPins: 50,
|
||||
maxPins: 500,
|
||||
maxTopic: 1024,
|
||||
maxWebhooks: 10,
|
||||
maxWebhooks: 100,
|
||||
},
|
||||
rate: {
|
||||
disabled: true,
|
||||
@@ -263,9 +265,8 @@ export const DefaultConfigOptions: ConfigValue = {
|
||||
window: 5,
|
||||
},
|
||||
global: {
|
||||
count: 20,
|
||||
count: 250,
|
||||
window: 5,
|
||||
bot: 250,
|
||||
},
|
||||
error: {
|
||||
count: 10,
|
||||
|
||||
Reference in New Issue
Block a user