Commit Graph

410 Enmetoj

Author SHA1 Message Date
Jaidyn Ann f0f2375b09 (purple) Senderless messages are system messages 2021-07-06 14:27:14 -05:00
Jaidyn Ann 735dda4188 (purple) Remove mod perms, command warnings
Since moderation commands are implemented per-protocol in libpurple
(with no easy way to use with the catch-all IM_ROOM_BAN_PARTICIPANT
message and corresponding command), the PERM_BAN, PERM_KICK, and a
couple other moderative perms aren't afforded to the user, disabling
these non-functional options in the UI.

The commands can still be implemented by the libpurple plugin, though.
If they aren't, purple will complain with some error message.
2021-07-06 14:13:10 -05:00
Jaidyn Ann 1515ab0d00 Tweak permissions handling in UserListView 2021-07-06 13:47:37 -05:00
Jaidyn Ann 9d8b35fc86 (purple) Send user-roles to Cardie
Fixes #24
2021-07-06 12:08:51 -05:00
Jaidyn Ann e88a8372dc (purple) Unescape XML entities 2021-07-06 02:09:18 -05:00
Jaidyn Ann 0c48cf514b (purple) Execute commands, report status
Fixes #25
2021-07-06 01:22:08 -05:00
Jaidyn Ann 0864ddae81 (purple) Reformat UI ops 2021-07-06 00:56:16 -05:00
Jaidyn Ann 91c7e44b44 (purple) Register per-protocol commands 2021-07-05 23:56:59 -05:00
Jaidyn Ann d9051766d9 Reloading of protocol's commands on request
Sometimes a protocol's commands are dynamic, or change based on certain
events― and it's necessary in these cases that commands be reloaded.

The IM_PROTOCOL_RELOAD_COMMANDS message is now added to the API, which
will force Cardie to reload commands from the protocol.
2021-07-05 23:53:46 -05:00
Jaidyn Ann 95da508a38 (purple) Editing of buddy's alias 2021-07-05 17:48:32 -05:00
Jaidyn Ann c0f126206a Include default templates, split "room"
The "room" template has been split into two seperate
templates― "join_room" and "create_room". Before, "room" was used in the
room creation window, but now that's delegated to "create_room".

"join_room" is used with the join window― so now, the add-on has total
control over the slots used to join/create rooms generally, if they
specify the templates. Even a "/join" command could be overriden by the
add-on.

Also, default templates are now in use. Rather than add-ons being
required to specify templates, there are sensible defaults included with
Cardie for each one.
2021-07-05 13:48:33 -05:00
Jaidyn Ann 23bee9b0a6 (jabber) Remove obselete Facebook and GTalk versions 2021-07-05 13:14:50 -05:00
Jaidyn Ann 74dcf452c2 (purple) Creation/joining rooms using "room" template
Fixes #30
2021-07-05 12:42:41 -05:00
Jaidyn Ann ee8584e14c (purple) Fetch room template from purple 2021-07-04 11:31:32 -05:00
Jaidyn Ann b051cbed5a (purple) Creation of chats 2021-07-03 15:01:32 -05:00
Jaidyn Ann 4d044144b3 (purple) Roster management
Fixes #28
2021-07-03 15:01:00 -05:00
Jaidyn Ann a6c9569be2 (purple) Append ':' to settings names as appropriate 2021-07-02 13:47:47 -05:00
Jaidyn Ann 7db93bf596 Fix roster crash w/o protocol icon 2021-07-02 13:47:01 -05:00
Jaidyn Ann 58e3d99af5 (purple) Typo fix 2021-07-02 10:24:34 -05:00
Jaidyn Ann b5b24939ea Set IRC/Purple passwords as 'secret' fields 2021-07-02 09:19:58 -05:00
Jaidyn Ann 2dc364ef55 (purple) Client-initiated joining and leaving rooms 2021-07-01 20:52:46 -05:00
Jaidyn Ann d63fe22afe (purple) Handle outgoing invites
Fixes #23
2021-07-01 20:18:10 -05:00
Jaidyn Ann 10003276cd (purple) Handle incoming invites 2021-07-01 19:49:39 -05:00
Jaidyn Ann 140a7f8834 (purple) Load server-side contacts 2021-07-01 18:34:56 -05:00
Jaidyn Ann d883c23d18 Reorganize settings directory, custom purple paths
The settings file-hierarchy has been changed a bit:
	* Cardie/
		* preferences
		* Accounts/
		* Cache/
			* Accounts/
			* Add-Ons/

`Cardie/Protocols` is now `Cardie/Accounts`, and the cache directory
has been split into two. `Cache/Accounts/` is for account-specific
cached data (e.g., cached roster icons, data, etc.), and
`Cache/Protocols` is for protocol-wide settings/data.

For purple, this will be used as the user's libpurple directory,
which has been moved from the default of `~/.purple` (yikes!)

Some plugin search-paths have been given to purple, too― lib
directories + "/purple2/", and Cardie/Cache/Add-Ons/purple/plugins/.
2021-06-30 21:05:43 -05:00
Jaidyn Ann f5b90ecc5e Include BString in Role.h 2021-06-30 18:05:22 -05:00
Jaidyn Ann 8d2ecfd853 Include BPath in ChatProtocol 2021-06-30 15:35:48 -05:00
Jaidyn Ann 6a308f7552 Add command/pop-up templates 2021-06-30 14:43:28 -05:00
Jaidyn Ann 94b2bf38c9 Update build instructions 2021-06-30 14:30:04 -05:00
Jaidyn Ann fb070e841a Store default commands/menu items in resources 2021-06-30 14:27:58 -05:00
Jaidyn Ann f6a006dddc librunview/libsupport x86_gcc2 fixes 2021-06-30 14:25:58 -05:00
Jaidyn Ann 301e22bcb3 (purple) IMs as rooms 2021-06-29 20:02:45 -05:00
Jaidyn Ann f0256babc1 (purple) Sending of room participants
Fixes #27
2021-06-29 15:20:27 -05:00
Jaidyn Ann 48db626672 Accept IM_ROOM_PARTICIPANTS without user_names 2021-06-29 15:19:43 -05:00
Jaidyn Ann 41b6164bbc Reformat ChatProtocolMessages 2021-06-29 11:41:26 -05:00
Jaidyn Ann 9a75767faa Change default user status, replicant settings 2021-06-29 11:40:58 -05:00
Jaidyn Ann 06b1df8882 (purple) Sending messages to chats 2021-06-28 12:51:50 -05:00
Jaidyn Ann 82cf946bc8 (purple) Joining rooms, receiving chat messages 2021-06-28 12:13:24 -05:00
Jaidyn Ann 30e3d6eefd (purple) Handle own status changes 2021-06-27 20:42:37 -05:00
Jaidyn Ann f755fa298b (purple) Disconnection of accounts, quit server w/o Cardie 2021-06-27 17:33:20 -05:00
Jaidyn Ann 588b32b9c3 (purple) Main loop, server→add-on→app communication
Now the purple add-on's starting to come together with a clear
structure:
	* Add-on sends IM_MESSAGES etc to the server for processing
	* Server sends all (reply/etc) messages to add-on, which sends
	  to app

It's worth noting that on the add-on's side, no looper or handler is
used for receiving messages, it's all through sending serialized
BMessages to the add-on's connect_thread buffer.

PurpleAccounts are now reliably associated with Cardie's account names
and the thread ID of their respective connect_thread.

The GLib main-loop is gone over regularly thanks to a message runner.

Now, the add-on can log into/create accounts, connect to them, and send
the IM_PROTOCOL_READY notification to Cardie as appropriate.
2021-06-27 16:46:38 -05:00
Jaidyn Ann 66df891577 (purple) Support drop-down string/path menu settings 2021-06-26 21:37:47 -05:00
Jaidyn Ann 330f43dc03 Update README 2021-06-26 21:36:38 -05:00
Jaidyn Ann 0aea480ec2 (purple) Loading Cardie-side account settings into PurpleAccount 2021-06-26 20:40:39 -05:00
Jaidyn Ann 543986f281 Allow embedding of 'hidden' message by protocol in account settings 2021-06-26 20:39:05 -05:00
Jaidyn Ann 6507a4182f Receive protocols' settings templates from libpurple 2021-06-24 12:22:34 -05:00
Jaidyn Ann ddaf39c300 Returning libpurple protocol amount and names
The libpurple add-on has been split into two parts― a background process
that will actually interface with libpurple, and an add-on that acts as
intermediary between Cardie and the process. This helps prevent
redundancy, and is giving me a lot less trouble that directly loading
libpurple.

The protocol amount and names are now returned by the add-on (through
protocol_count() and protocol_at() respectively)― you can see them in
Preferences' protocol list.
2021-06-23 23:57:27 -05:00
Jaidyn Ann 6f3b375232 Consolidate Main and TheApp 2021-06-23 14:15:22 -05:00
Jaidyn Ann b52be74dfb Init libpurple add-on 2021-06-22 14:42:07 -05:00
Jaidyn Ann de09ff9ad6 Rename Caya to Cardie 2021-06-22 01:06:00 -05:00