69 Commits

Author SHA1 Message Date
Zane Helton
4f75919651 Add OP to message.mentions when replied to
The `message.message_reference` stores:

1. `message_id`
2. `channel_id`
3. `guild_id`

We use the `message_id` and `channel_id` to `.findOne(...)` Message, and
find the author. If the author is the same as OP, we skip (so replying
to yourself doesn't add you to the mentions array) otherwise, it adds
the author_id to the mentions array.

Resolves: #1247
2025-06-29 09:14:58 +10:00
Zane Helton
e8d3f655a3 Preserve reactions when a message is edited
Resolves #1241
2025-06-29 08:44:47 +10:00
Zane Helton
81d4313631 Properly filter existing embed links
In a previous PR, I was checking if the `.url` property existed, the
correct fix is to remove any embed that isn't a rich embed
type (non-link).

See also: #1296
2025-06-29 08:39:42 +10:00
Zane Helton
184433b078 Start fresh when updating embeds for links
In a previous commit I was attempting to be clever by only
replacing/removing embeds if necessary. This not only made the logic
more confusing but introduced a bug that would allow for orphaned
embeds when updating the search params of a URL.

This commit will remove all embeds that have a `.url` property and start
fresh. This simplifies the code and eliminates the aforementioned bug.
2025-06-28 18:30:52 +10:00
Zane Helton
f9cfb46e73 Fix various issues with embeds on message updates
The `postHandleMessage` function is parsing links and adding them to the
EmbedCache table if necessary. In the previous implementation, message
updates would push to the embeds unconditionally.

This commit parses links from the message and:

1. Normalizes the URLs
  - Useful for deduplicating similar URLs
2. Remove embeds with matching normalized URLs
  - Leaves all embeds except for ones with a `.url` property matching
  the updated message
  - This allows embeds to be re-ordered if the URL is moved
3. If no normalized URLs are found, remove all embeds
4. Take the deduplicated + normalized URLs and add an embed to the message and
insert into the EmbedCache table (if necessary)

This enables:

1. Embeds to be re-ordered by re-ordering links
2. Embeds to be removed by removing links

and fixes:

1. Duplicate embeds being attached to a message when edited
2025-06-28 18:30:52 +10:00
MathMan05
5488874476 delete the null eater 2025-05-28 08:46:35 +02:00
MathMan05
664b71f463
acatually fix the embed issue
This one added the line in the right spot, sorry about the previous one lol
2025-03-23 23:29:19 -05:00
Emma [it/its]@Rory&
168758924c Update some patches, switch to node-fetch-commonjs, more updates 2024-10-28 00:32:15 +01:00
TomatoCake
873107f90d Perms for GET webhook, url property 2024-07-18 15:16:50 +02:00
TomatoCake
15a2e57b05 Prettier & fix merge util/handlers/Message 2024-07-18 14:42:22 +02:00
TomatoCake
128b81bc6a Merge branch 'master' of https://github.com/DEVTomatoCake/spacebar-server into feat/webhooks-3 2024-07-18 14:41:14 +02:00
TomatoCake
6be3714593 Fix ESLint & prettier 2024-07-18 12:52:00 +02:00
TomatoCake
e7a98b6c46 webhook fixes & username/avatar property for msg 2024-07-18 12:42:07 +02:00
TomatoCake
d3ece937e6 Make channel ID optional when replying 2024-07-17 20:34:09 +10:00
Cyber
7698a15f03 fix: check for message components 2024-07-09 17:19:28 +02:00
Cyber
21579b11cd fix: poll message is not an empty message 2024-07-09 16:02:11 +02:00
TomatoCake
9b02e82614 Make poll a single object instead of an array 2024-07-09 22:58:10 +10:00
Madeline
35c9a09ea5
fix poll in msg create schema 2024-07-09 15:27:24 +10:00
TomatoCake
0ac8888d41 Don't embed links in <> 2024-07-04 09:41:46 +10:00
TomatoCake
9e1ec8a673
Ban API compat & Bulk Ban endpoint (#1120)
Co-authored-by: Madeline <46743919+MaddyUnderStars@users.noreply.github.com>
2024-06-05 15:19:30 +10:00
Madeline
c802bb9747
Embeds: handle og:sitename 2023-09-16 23:47:32 +10:00
Madeline
e355be8ea3
Fix regression where generic embed handler wouldn't properly send image results 2023-09-16 23:43:23 +10:00
Puyodead1
8a35664ae6
[fb] remove provider obj, add color 2023-09-03 15:48:55 -04:00
Puyodead1
1612832fc4
add facebook, and add steam fields 2023-09-03 15:28:33 -04:00
Madeline
e64c34adea
Rewrite thumbnail/image generation for embeds 2023-09-03 14:17:11 +10:00
Madeline
fb7409947c
Fix bug in embed handler where getMeta would not return undefined 2023-09-03 13:41:45 +10:00
Madeline
c64a115729
xkcd embed handler and improved generic handler 2023-09-02 23:47:40 +10:00
Zert3x
6306c5e725
Update ipAddress.ts 2023-05-28 21:39:50 -04:00
Puyodead1
1ce7879ee8
oapi: users progress 2023-04-13 15:38:52 -04:00
Puyodead1
0dc5b19bd8
gifs and query params 2023-04-13 15:24:37 -04:00
Puyodead1
6b3a3b750f
fixing lots of openapi crap 2023-04-13 15:20:10 -04:00
Puyodead1
3335f16ad1
applications 2023-04-13 15:00:32 -04:00
Puyodead1
a567ca3f51
auth routes 2023-04-13 14:58:53 -04:00
Madeline
095cbf7b20
Remove ALL fosscord mentions 2023-03-31 15:52:33 +11:00
Madeline
698ad90d3e
Revert "Merge pull request #1008 from spacebarchat/dev/samuel"
This reverts commit 69ea71aa9e0bd2e5a98904a66fba0ad3745707cb, reversing
changes made to 8b2faf0b18336e5dff1eeff4e849bcfd96b09e88.
2023-03-31 15:26:15 +11:00
Samuel (Flam3rboy)
69ea71aa9e
Merge pull request #1008 from spacebarchat/dev/samuel 2023-03-30 18:13:34 +02:00
Madeline
8b2faf0b18
SPACEBAR 2023-03-31 02:15:42 +11:00
Madeline
64e747a4d2
SPACEBAR 2023-03-31 02:05:02 +11:00
Samuel
7b00e99053 fix: use entity.save() instead of insert (needed for caching) 2023-03-18 04:13:04 +01:00
TheArcaneBrony
16f13616d2 Remove channel mentions from messages, in order to fix them in test client.
Signed-off-by: TheArcaneBrony <myrainbowdash949@gmail.com>
2023-02-20 05:09:57 +01:00
Madeline
084dc0be08 Add ESLint (#941)
* Add eslint, switch to lint-staged for precommit

* Fix all ESLint errors

* Update GH workflow to check prettier and eslint
2023-01-20 18:10:47 +11:00
Chris Chrome
7152a1c2c1 Add youtu.be embed handler (#945) 2023-01-18 17:47:23 +11:00
Madeline
0e7f127ece Script to add license preamble to each file. Also, does that. (#935)
* Add script to automatically add license to each file

* Add license preamble to each file.

* Fix existing preamble detection breaking due to line endings. Git :(

* Prevent license from being added to code with other licenses
2023-01-18 13:05:49 +11:00
Madeline
5771247645 Return embed proxy url even if imagor not set up. Also make warning nicer 2023-01-16 14:20:17 +11:00
Madeline
de3909f646 Update dead lines 2023-01-16 00:03:51 +11:00
Madeline
dda70a66c9 Add an error log if embed handler fails, in addition to the existing sentry log 2023-01-15 16:21:46 +11:00
Madeline
df449169bd Prettier 2023-01-05 17:16:55 +11:00
Madeline
ddd3c86043 Registration tokens 2022-12-19 22:04:52 +11:00
Madeline
d407d8ebe7 Add additional config 2022-12-19 16:51:24 +11:00
Madeline
bf420aac32 Remove Discord oauth login support 2022-12-17 19:41:49 +11:00