Commit graph

117 commits

Author SHA1 Message Date
Jacob b54d7215ef Improve some code, add a leet::setTransID() function. 2024-03-05 16:12:41 +01:00
Jacob 3986205a24 Change some class names to make more sense. I don't know what the hell I
was thinking before, and I should stop programming at 3 in the fucking
morning.
2024-02-22 02:22:55 +01:00
Jacob b06e9509e4 Some minor cleanup, and fix a logic error. 2024-02-22 02:06:09 +01:00
Jacob accd4aac96 Fix a compile error that may occur if encryption is disabled. 2024-02-22 01:30:39 +01:00
Jacob 831ba2f4c1 Changes to the way some variables are initialized. 2024-02-22 01:25:49 +01:00
Jacob ad4e89db36 Fix a typo in some example code. 2024-02-22 01:14:36 +01:00
Jacob b91f135581 Don't initialize with an empty string, that's unnecessary. 2024-02-22 01:13:28 +01:00
Jacob 24a78d4777 Rename an ugly variable 2024-02-21 00:56:05 +01:00
Jacob 1b8484224d Fix leet::sendMessage() not specifying a message type properly, causing
Synapse to reject the request.

This commit also removes some junk code, and improves the
basic-chat-program example a little bit.
2024-02-21 00:45:42 +01:00
Jacob e55eb6245b Change some class names, because classes are supposed to use PascalCase.
Variables and functions should still use camelCase.
2024-02-19 00:04:44 +01:00
Jacob df36e7d798 Add install_sudo and install_doas targets, for convenience sake. 2024-02-08 20:39:29 +01:00
Jacob 5f56362d04 Add Makefile
I am adding this Makefile to add compatibility with some IDEs/plugins
that only use Makefiles.
2024-02-08 20:13:16 +01:00
Jacob dd24ac8fb9 Add compile_commands alias 2024-02-01 20:58:21 +01:00
Jacob 6f7cc340c3 Allow HTTP requests to return a big body.
This is important for things like the /sync
endpoint.
2024-01-22 00:19:30 +01:00
Jacob 492fc06b0e Improve code for sync 2024-01-22 00:06:53 +01:00
Jacob 0138bed6b8 Rewrite parts of the API to take parameters by reference rather than
in the form of a pointer. Pointers really do not belong in this library
in my opinion, for several reasons. There are also other performance
improvements and general cleanup.

Examples have been rewritten to take the above into consideration.
2024-01-21 04:15:10 +01:00
Jacob 09dcf84a82 Remove more Windows line endings 2024-01-21 02:28:30 +01:00
Jacob bda129148f Even more cleanup to the examples, and the meson for libleet itself. 2024-01-21 01:43:08 +01:00
Jacob d6af65c512 Fix a broken example REST API. 2024-01-20 23:54:32 +01:00
Jacob ec9dcd7a23 Clean up the repository a bit, improve the examples by using more
recent libleet functions such as the included leet::checkError().
2024-01-20 23:25:17 +01:00
Jacob 8647b7e047 Replace all Windows line endings (\r\n) with Unix line endings (\n)
No real reason, but I don't develop on Windows anyway.
2024-01-20 22:21:26 +01:00
Jacob e962f0d2c0 Include libleet headers in a slightly less silly way. 2024-01-20 17:02:04 +01:00
Jacob 56455e5b2e Oops, this line shouldn't be removed. 2024-01-19 10:12:33 +01:00
Jacob ee74a51909 Update copyright, cleanup code 2024-01-19 10:11:07 +01:00
Jacob 2a301113c1 Feature: Implement support for the /_matrix/client/v3/rooms/<roomID>/state/<eventType>/<stateKey> endpoint through a new function. 2024-01-05 06:10:04 +01:00
Jacob 377dac6a33 Add new leet::getStateFromType() function. 2023-12-27 01:34:20 +01:00
Jacob 90390dc19e Add a leet::removeRoomAlias() function which uses the new
leet::invokeRequest_Delete() function.
2023-12-27 00:42:23 +01:00
Jacob 1d24d2a82a Add invokeRequest_Delete() wrappers 2023-12-27 00:32:21 +01:00
Jacob b2cc0c2847 Add meson option for encryption 2023-12-27 00:16:20 +01:00
Jacob a1730d4820 Minor formatting changes, support the DELETE HTTP method in leetRequest 2023-12-27 00:11:49 +01:00
Jacob 2801764bc1 Adopt the semantic versioning specification 2023-12-26 22:12:35 +01:00
Jacob 73816c64c4 Fix license in meson.build 2023-12-26 21:26:16 +01:00
Jacob aad8efeeac Add function for getting room aliases from a room ID. 2023-12-26 16:36:30 +01:00
Jacob 98faf83066 Add support for replies in messages 2023-12-26 16:15:43 +01:00
Jacob b73c24779d Add partial support for most message types, and the ability to add
custom ones. This commit also makes Space::Space inherit from
Room::Room.
2023-12-26 07:29:35 +01:00
Jacob bfb7825348 License change to LGPLv3
Rationale:  I do not want developers to write nonfree software using
libleet, however I kind of need compatibility with GPLv2 and GPLv3
software, rather than just AGPLv3 licensed software.

One example of this is the Wt C++ library, which I plan on using
very shortly. In any case, with the LGPL is it still not permitted
to distribute **libleet** solely in binary form, source code must
still be provided and the license must still be LGPLv3. The only
notable difference is that you may now link programs with libleet
that are not licensed under the AGPLv3 software license.

In short; the pros outweigh the cons for me personally. Besides,
the library cannot be used directly to write nonfree software,
and there are other solutions right now that have more permissive
licensing available.
2023-12-21 23:23:59 -05:00
Jacob b1f6e62ace Some minor header changes, add a good looking CSS stylesheet for Doxygen 2023-12-21 21:27:35 -05:00
Jacob e962e7de7f Add a minor note to the README. 2023-12-21 20:58:09 -05:00
Jacob e70290ad1f Fix a mistake I made a few commits ago. 2023-12-21 20:55:43 -05:00
Jacob 223a38d66b Fix the parse-url example, because the header is now located in a
subdirectory.
2023-12-21 20:42:44 -05:00
Jacob 032bed48de Get rid of all the extra .cpp files, they're pretty much useless in my
opinion. I also moved some cryptography stuff to separate code/header
files.
2023-12-21 20:40:34 -05:00
Jacob 2de913035b Fix: Stupid segmentation fault caused by my improper use of
std::string_view
2023-12-21 19:44:32 -05:00
Jacob 3d0fa3df75 Move Cert.cpp to Request.cpp, this minimizes complexity.
Also, upgrade OpenSSL.
2023-12-21 22:59:13 +01:00
Jacob fdd23b9b78 Remove Message namespace, Event::Event is now part of the Event namespace.
As a result, the code in Message.cpp has been moved to Event.cpp as
well.
2023-12-19 16:04:12 +01:00
Jacob ba52a69181 Add support for /_matrix/client/v3/logout 2023-12-19 14:30:52 +01:00
Jacob 37b2447114 Some minor changes, add support for the URL preview endpoint. 2023-12-19 08:28:45 +01:00
Jacob 95602980cd Add example for returning supported authentication methods, fix the
parse-url example by including the correct header, fix some small bugs
in libleet itself
2023-12-17 20:01:38 +01:00
Jacob 495c01cd2b Move event code to Sync.cpp, change the Sync class a bit, add some
(currently) broken code for returning room invite information.
2023-12-17 16:38:44 +01:00
Jacob d5b9255330 Add example for returning sessions. Mostly because I need this program
for my own testing.
2023-12-15 21:24:15 +01:00
Jacob e0bcab936a Remove windows-olm from the project
Rationale: Providing prebuilt binaries really doesn't help very much.
Olm is a very small library, and if you're building using Visual Studio
all you have to do is clone Olm and built it using the Windows64.cmake
file as described in the README. Plus, if you're compiling for a
different architecture such as IA-32, ARM64 or RISC-V then you need
to build it anyway.
2023-12-14 23:09:48 +01:00