-
v3.0-beta5 Pre-release
released this
2024-11-02 07:35:52 +00:00 | 15 commits to main since this releaseThis is a beta version. It is incomplete.
Please see the breaking changes in the v3.0-beta1 release notes.
Features
Changes
4287a32
Website: Display list of unlinked roomsc127923
Website: The link button now links channels086e8cd
Website: Add privacy level controlsd72b162
Website: Mobile design5a86c07
Host QR codes locally
Fixes
07d6eb3
Fix existingPartZero assertion error15e5b17
When inviting bot, check it has bot scope14115c0
Attempt retrigger after speedbumpb23b818
Use attachment proxy for external_urlcce432a
Compatibility: send {} with room joinse5f7c7f
Proxy discord attachment links within embeds3662ee5
Fix interaction updates
Code quality
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
0 downloads
-
v3.0-beta4 Pre-release
released this
2024-09-29 12:45:38 +00:00 | 37 commits to main since this releaseThis is a beta version. It is incomplete.
Please see the breaking changes in the v3.0-beta1 release notes.
Features
5dbd79c
Prompt to add redirect URI in setup
Changes
65170c1
Clean up sample registration.yaml as it is no longer neededbad8c5b
61803c3
33915a5
Write tests
Fixes
f5853cc
Fix check for enabling content_length_workaround
Downloads
-
Source code (ZIP)
3 downloads
-
Source code (TAR.GZ)
2 downloads
-
v3.0-beta3 Pre-release
released this
2024-09-28 14:58:51 +00:00 | 43 commits to main since this releaseThis is a beta version. It is incomplete.
Please see the breaking changes in the v3.0-beta1 release notes.
In beta3, I have changed the core logic of how room creation works. My changes passed manual testing, so it should be ok. If you notice any bugs in room creation, please let me know so I can address them before the full release.
Features
Changes
8743910
Rename seed.js to setup; add npm script for it69c93ca
Automatically set up content_length_workaround
Fixes
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
v3.0-beta2 Pre-release
released this
2024-09-24 04:31:47 +00:00 | 57 commits to main since this releaseThis is a beta version. It is incomplete.
Please see the breaking changes in the v3.0-beta1 release notes.
Fixes
dbbb8281e6
Move autocomplete status to a new table instead of just being a column
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
v3.0-beta1 Pre-release
released this
2024-09-22 03:53:58 +00:00 | 58 commits to main since this releaseThis is a beta version. It is incomplete.
You are welcome to try this version if you want to be ahead of the curve or want to get the breaking changes out of the way early.
This version is stable, and I am using it, but it is not complete. Specifically, many of the web-based features are not implemented yet. Self-service is not implemented yet either.
Breaking changes
Your server must support Authenticated Media.
You do not need to freeze media - you can stay compatible with old Matrix clients if you want. But you must upgrade your homeserver to a version that supports the authenticated media endpoints.
Supported servers
OOYE will check your server for Matrix v1.11 support when you run
node scripts/seed.js
. If your server does not have support, OOYE will not start.- Synapse is supported (tested)
- Dendrite is supported (untested; it has the endpoints in a stable release)
- Conduwuit is supported (tested)
- Conduit is not yet supported (it has the bare endpoints, but they are not in a stable release yet)
- Construct is not supported (it does not have the endpoints)
You must give OOYE a public URL.
OOYE now runs a web server on port 6693 that needs to be publicly accessible over the internet.
Why?
This is necessary due to Matrix introducing authenticated media - the only way for Discord API to access Matrix user avatar URLs is through OOYE's new media proxy. This also gave me the opportunity to add several other convenient web features, such as another media proxy for Matrix users to view expired Discord links, and web-based setup for bridging a new server. While it'll be a bit harder to set up OOYE initially because you'll probably have to do DNS, HTTPS, and reverse proxy configuration, I think you'll enjoy the end result.
You will be prompted for the public URL when you run
node scripts/seed.js
. OOYE will check that your input is valid.You must run seed.js again.
Why?
Any registration.yaml files generated previously are incompatible with this version of OOYE. Don't worry, it's easy to generate a new registration - just run
node scripts/seed.js
again.After registration.yaml has been generated, you'll need to let your homeserver know about the updated version. seed.js will interactively guide you through this process.
(If you have an unusual situation where you need to run seed.js non-interactively, like Nix or Docker (?), you will have to create a valid registration.yaml first. Then you can run seed.js and it will not create any interactive prompts.)
The database is in the working directory.
Details
When you run seed.js, it will automatically move the database file for you. This should not impact most users.
I suggest running the bridge with
npm run start
rather thannode start.js
, because it will set the working directory to the repo directory. (If you have an unusual situation where you need to store the database outside of the repo, set the working directory accordingly and use start.js.)Changelog
Features
b6c23c3
User-facing web features have been added, like links to add OOYE to a Discord server, invite Matrix users, and show linked channels- Some features, like self-service, have not been implemented yet in this beta release
37f3a59
23a7394
seed.js will show interactive prompts during initial setup, so you don't have to edit registration.yaml by handd5ec013
c6175e0
Matrix users can access expired Discord attachment links as they are routed through OOYEdecc32f
b45d0f3
c0d92ea
1ebf9e1
Discord users can access Matrix authenticated media as it is routed through the proxybe405d3
6bc3eaf
Migrate all legacy text commands to Discord interactions
Improvements
- Changes to how permissions are managed
ddb211f
1037fe0
The new /permissions command on Discord lets Discord moderators promote or demote Matrix users3a84658
b8793da
7afe3e7
Power levels in spaces will be copied to existing and newly created roomsa218774
Room avatar permission changes now require PL 50 moderator on Matrixdf1296e
The legacyinvite
key in registration will be migrated to the database- #37 The
invite
key (now in the database) will apply retroactively to existing rooms
42bfd03
Author metadata of Discord slash command uses is bridged to Matrix5af7d6b
Add test for a generated embed on a replyee266f8
Discord reactions should be attached to the bottom of embed messages more reliablya2e3f06
Notify on Matrix that the room has been unbridged when the corresponding channel is deleted (this does not freeze or brick the room)b896278
256196c
b8a9924
Fix type errors in scripts and make executable9e9f481
seed.js validates the URL property01af302
Move ooye.db to current working dir
Fixes
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
v2.3 Stable
released this
2024-08-19 15:18:33 +00:00 | 122 commits to main since this releaseThis release adjusts m->d reply formatting, and replaces some internal dependencies with smaller ones. As always, please remember to run
npm install
after updating to any version.Changes to m->d reply formatting:
a6251e8
Use the new small text feature283cf66
Move reply previews to one line, and use non-emoji form of circled M character5c48645
m->d: Suppress embeds for links in reply preview2c3b653
m->d: Consistently add @ to bridged form of matrix mentions
General fixes:
5e4d539
Fix potential abuse of error retry system87cad6c
Fix incorrect stack traces being displayed when a critical error occurs2a080b7
m->d: Fix garbled content when posting a message link followed by a mention
Dependency changes:
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
4 downloads
-
v2.2 Stable
released this
2024-07-21 02:56:58 +00:00 | 135 commits to main since this releaseThis release continues to improve reliability. As always, please remember to run
npm install
after updating to any version.Features:
49598c7
Bulk message deletes, used by bots and user bans, are implemented541c5e1
Add include_user_id_in_mxid setting- You love how OOYE sim users are named @_ooye_sensible_username_here, don't you?
- If you don't love that and you want the usernames to be more like @_ooye_12345678912345678_sensible_username_here, this change is for you.
- Set
ooye: include_user_id_in_mxid
totrue
in registration.yaml to use this feature. It does not apply retroactively to already-created sim users.
Improvements:
eb98af0
Move packages to npm registry because registry packages are updated more reliably than git packages149cee8
Keep trying to get data from the PluralKit API if it's slow the first time24a3b9b
Refactor kstate resource uploading for increased code coverage
Fixes:
a2f0bb7
No more random occurrences of "MESSAGE_UPDATE not delivered: AssertionError"9e51482
OOYE will automatically re-create any webhooks that were deleted by a Discord user8c506ed
Sim users can now be demoted from administrator07a133e
Fix links being corrupted when the link is at the start of a new line1f5865b
Avoid sending ephemeral messages from Discordb6b6599
Errors while redacting a message no longer crash the bot
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
6 downloads
-
v2.1 Stable
released this
2024-03-25 12:11:13 +00:00 | 148 commits to main since this releaseThis release kinda supports Discord forums, bridges embeds from anybody (even reflected to Matrix users), and manages permissions on Matrix a little better.
If you do not like that it reflects Discord generated embeds from Matrix user messages back to Matrix, let me know and I'll remove that feature.
Features:
5f0e765934
Bridge forums as spaces642be26313
Enumerate child rooms with hierarchy endpoint
d01c888d02
Support embed generate MESSAGE_UPDATE eventsc615ea1e61
Reflect immediately generated link embedsbce3d0f2c9
Fix reflecting generated embeds23d85547f3
Send generated embeds as original userff7af39802
Exclude generated embeds for discord.com
2fb68900c7
Support permissioned @everyone -> @room043f178d1e
Map Discord member permissions to sim user PLs12d85c982e
Allow Matrixers to @room if Discorders can toof5ffc09fab
Convert @room to @everyone using permissions
Improvements:
25cd8cb289
Use allowed_mentions instead of disableEveryonecc9e1de49e
Remove deep-equal dependency
Fixes:
6738290d99
m->d: Reliably put < > around matrix.to links7a00b95883
Put < > around ALL the matrix.to links
566b2a9d9e
Move bridge bot to its real ID in the database0deb415511
Don't update profile data of the bridge bot
1e8066ca0a
Embed URL should only appear when embed has titlee2d0ea41d5
Improve video embed formatting08c01e8664
Update dependencies8d037ff559
Update discord libraries
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
v2.0 Stable
released this
2024-02-20 09:23:08 +00:00 | 177 commits to main since this releaseThis release adds full support for the Discord bot PluralKit, bridging each PluralKit system member as a distinct user on Matrix-side. It also adds via parameters to room links, and some formatting has been fixed by community members including Wonder Collective - thank you!
PluralKit features:
- Each PK member is bridged as a distinct Matrix user
11864f80cf
This currently requires one message to "warm up", then all future messages will be handled seamlessly
- The original Discord messages which are about to be deleted will not appear at all on Matrix-side
e49dc18e67
This uses a "speedbump" to "slow down" all messages in the chatroom6a06dc14ce
Speedbump only takes effect in chatrooms where PluralKit is being used
69922c4a14
PK member name/avatar changes are synced with the same Matrix sim user profilef48c1f3f31
Replying to PK members from Matrix mentions the Discord user on Discord-side98477dc0f6
Mentioning PK members from Matrix mentions the member and Discord user on Discord-sidec7fb6fd52e
PK's simulated embed replies are converted to native Matrix replies0e701b2d54
Compatible with PK members in threads3d87bd9da5
Compatible with server-specific PK member names
Improvements:
30afaa1e17
fd11e3fd10
All room links now have properly calculatedvia
parameters, so can be used and shared in all clients355ebfe2af
e999fcf819
56f959e9f3
m->d: spoiler reasons & reply-quote separation6c3164edd6
m->d: Emoji sprite sheet feature supports APNG emojis (but they're composited to a non-animated PNG)e0d96cde19
d->m: Fallbacks for links to unbridged channels are more intuitive77b7772062
m->d: Since code blocks containing backticks are incompatible with Discord, they will be uploaded as a file instead. This preserves inline preview and highlighting.d673296619
d->m: Plaintext event body now indicates embeds with pipe|
instead of quote>
3fb2c983e0
Optimised pngjs install
Documentation:
5ef5dbb2e8
Write more "add a new event type" documentation
Fixes:
7a9e1168fe
m->d: Fix links where href and content are the same4591b5ae03
m->d: Fix glitched mention when Element disambigs369e0862e5
m->d: Replies to custom emoji show a correct previewc084aa0156
cfc89c40f9
d->m: Fix the guessed @mentions feature messing up code or links
Silly fixes:
0e75c23aee
d->m: Fix user's first message in channel being a thread starter replyf79833c444
m->d: Only care about data-mx-spoiler on span7756a34a5f
m->d: Gracefully handle replies to redacted event4286829b42
Update discord libraries - fixes some disconnection issues
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
2 downloads
- Each PK member is bridged as a distinct Matrix user
-
v1.5.1 Stable
released this
2024-01-20 10:13:39 +00:00 | 234 commits to main since this releaseThis hotfix addresses a bug where OOYE was unusable when Synapse was not behind an nginx reverse proxy.
Now, when running seed.js, it should warn you about the situation with this message:
OOYE cannot stream uploads to Synapse. Please choose one of these workarounds:
- Run an nginx reverse proxy to Synapse, and point registration.yaml's
server_origin
to nginx - Set
content_length_workaround: true
inregistration.yaml
(this will halve the speed of bridging d->m files)
This is because Synapse needs the Content-Length header, which isn't set by OOYE's streamed uploads. Non-streamed uploads are slower. See the commits in this hotfix for precise details. (Use the Compare dropdown in Gitdab's left bar to compare against v1.5)
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
2 downloads
- Run an nginx reverse proxy to Synapse, and point registration.yaml's