Events are wrapped in a content block like so:
```
"content" : {
"membership" : "invite"
}
```
However we were parsing it as just `"membership" : "invite"`.
Now we properly expect it to be within a content block.
Fixes https://gitlab.gnome.org/GNOME/fractal/issues/456
Previously we passed a String as "filter" in our
PublicRoomsRequest, but we needed to be passing
a Filter object. Somewhere along the way the String
stopped being accepted, breaking search.
Fixes https://gitlab.gnome.org/GNOME/fractal/issues/451
When using lighttpd as a reverse proxy empty POSTs get rejected by the
server if they don't have Content-Length set to zero, so some calls like
marking a room as read fail to make it to the homeserver.
fixes: GNOME/fractal#475
Previously we were using a script to grab our sources
automatically. However, this was error-prone and meson
didn't actually understand the output.
Now we declare our sources manually. This helps meson
know when to trigger a build based on what files have
changed.
Instead of asking for the identity server and homeserver
url for login, we can ask the users to give us a domain
and make a request to .well-known/matrix/client. This
will give us the identity server and the true url for
the homeserver.
See https://matrix.org/docs/spec/client_server/latest#well-known-uri for details
We didn't specify the visibility for participants in direct chats. The default behavior when unspecified is confusing,
and leads to messages sent between the sending of an invite
and the acceptance of it being dropped.
Now we append a state event to our room creation that
sets the room visibility to "invited", meaning users
can see messages from when they were invited.
Closes https://gitlab.gnome.org/GNOME/fractal/issues/327
This patch adds support for using the current session's HTTP and HTTPS
proxy from gio's ProxyResolver. For each type of proxy, it only uses the
first url because reqwest only supports that. We reuse the client
connection pool until it detects any proxy change.
change get_image_media_info to include thumbnail
propagate need for backend
try to debug the code
remove a println I forgot
Progress on using channel for thumb uploads
move thumbnail code to the backend
fix mimetype on json and only call ge_image_media_info on image files
remove random 'e' from util.rs
move get_image_media_info back to the frontend
create Info struct
hehe
lol
tree_magic was also used to get the mime type of uploads. We
can instead use gio::content_type_guess(). We can use it here because we are handling bytes, which is what it requires.
We used to request the complete room state to get only the memebers list
if there was no avatar, which was expensive and we actually have already
the members list.
This reduces memory use.
We implemented the structs to which we parse the sync response except
the events, which are a tough case for another commit. Some enhancements
and cleanups were made to the code surrounding the sync management in
order to be able to remove unnecessary error handling and/or queries.
This replaces some boolean properties of the Room Model with a single
property called membership. This makes the room membership (joined, left,
invited) and tag (favourties, low priority, etc) mutch more
understandable and gives the Model a better structure.