Commit Graph

49 Enmetoj

Author SHA1 Message Date
Jaidyn Ann 8d50a6b9a4 Pass relevant cache paths directly to add-ons
Now, instead of using Utils.cpp's AccountCachePath and AddOnCachePath,
and add-on should implement ChatProtocol::SetAccountCachePath and
ChatProtocol::SetAddOnCachePath.

In addition, most path-related functions in Utils now return BPaths― and
some of interest to chat add-ons can accept the path given by
ChatProtocol::SetAccountCachePath as the main argument.
2022-02-18 15:42:06 -06:00
Jaidyn Ann 866899eaad Get app name & signature from Make.pre/Make.post
It's useful to change the name and signature when you want to test
changes while using another instance of Chat-O-Matic.
2022-01-08 16:50:34 -06:00
Jaidyn Ann f19bcba62a Add Room Directory window
This window (Chat→Room directory) is to be used for either a list of
publicly available rooms (in most protocols), or for a list of
joined-but-hidden rooms (as it'll used with libpurple, to list its
ChatBuddies).

Each room is sent individually from protocols using IM_ROOM_DIRECTORY
messages sent in response to a IM_GET_ROOM_DIRECTORY message.
2021-08-27 11:00:04 -05:00
Jaidyn Ann 5dbbb3a8ad (irc) Public room directory/list support 2021-08-27 00:25:41 -05:00
Jaidyn Ann 6e67401018 Remove unnecessary lib from Makefiles 2021-08-19 17:48:14 -05:00
Jaidyn Ann dd086dd455 Split AppConstants.h into UserStatus.h 2021-08-19 17:04:33 -05:00
Jaidyn Ann 8f159b7e8b Rename Cardie to Chat-O-Matic 2021-08-19 02:29:14 -05:00
Jaidyn Ann 9d760cd277 Added ROOM_NOTIFY_DM to protocols' room flags 2021-08-19 01:04:57 -05:00
Jaidyn Ann a9eeaa51fe (irc) Default room of #haiku for OFTC 2021-08-18 23:05:57 -05:00
Jaidyn Ann 32fbe59f01 (irc) Require real-name be defined 2021-08-18 15:30:20 -05:00
Jaidyn Ann 188b70d498 (irc) Own setting of room subject 2021-08-18 12:58:52 -05:00
Jaidyn Ann 4bb6cfee7c (irc) Color-formatting support 2021-08-16 21:52:28 -05:00
Jaidyn Ann a697afbbd8 (irc) Unban command 2021-08-16 18:18:22 -05:00
Jaidyn Ann f69d07e2f7 (irc) Ban/kick support 2021-08-16 18:04:50 -05:00
Jaidyn Ann 7be306e20e (irc) User-role support 2021-08-16 16:18:57 -05:00
Jaidyn Ann 60ad595d5d (irc) Command support
Now raw IRC commands can be sent with a "//" command, like this:
	// HELP
… to print the server's HELP message to system buffer.
So on and so forth.
2021-08-16 01:25:30 -05:00
Jaidyn Ann 03556d674e (irc) Contact support 2021-08-16 00:42:39 -05:00
Jaidyn Ann 8d62ecca01 (irc) More reliable user-list population, IM_ROOM_GET_PARTICIPANTS 2021-08-15 21:55:10 -05:00
Jaidyn Ann e8e78eeae4 (irc) Support creating one-on-one chats/PMs 2021-08-15 20:44:34 -05:00
Jaidyn Ann b380b6115c Fix chat creation with non-contact users 2021-08-15 20:34:30 -05:00
Jaidyn Ann ed7fe730cb Load protocols from any system add-on directory
… rather than soley "$APPDIR/protocols/".
The vague "protocols/" leaf was also renamed to "cardie/".
2021-08-15 00:55:16 -05:00
Jaidyn Ann a712d89c76 (irc) Don't connect until status set to 'online' 2021-08-13 14:32:46 -05:00
Jaidyn Ann 6258b2f2f3 (irc) Support formatting with implicit end 2021-08-13 13:00:32 -05:00
Jaidyn Ann ad869c8972 (irc) Parse basic formatting bytes (sans color) 2021-08-12 20:16:22 -05:00
Jaidyn Ann a26c33e5f3 (irc) Send MOTD and other system messages to account buffer 2021-08-12 15:47:06 -05:00
Jaidyn Ann d16f397fe6 (irc) Proper newline use, sending unicode messages 2021-08-12 13:55:32 -05:00
Jaidyn Ann c3994e4a73 (irc) Fix debug output 2021-08-12 10:14:46 -05:00
Jaidyn Ann 5fb7d5268c (irc) Report errors, use WELCOME-given nick 2021-08-11 20:47:40 -05:00
Jaidyn Ann 3f754bd79d (irc) Handling of QUIT 2021-08-11 18:51:41 -05:00
Jaidyn Ann ca704cb7b8 (irc) Add protocol icon
This one borrowed from the Haiku tree― /data/artwork/icons/App_Chat
2021-08-11 17:40:03 -05:00
Jaidyn Ann 6b8823d213 (irc) Better param parsing 2021-08-11 10:22:32 -05:00
Jaidyn Ann 35cd5cbc8f (irc) Write-lock and responding to pings 2021-08-10 12:53:20 -05:00
Jaidyn Ann 340aa405f3 (irc) Setting own/other nicks 2021-08-10 10:54:36 -05:00
Jaidyn Ann 8ac73ca50e (irc) Faster readying of protocol 2021-08-10 10:00:26 -05:00
Jaidyn Ann 723d6c1950 (irc) Add numerics file 2021-08-10 09:33:00 -05:00
Jaidyn Ann d0367db0bb (irc) Sending/receiving invites 2021-08-10 00:03:28 -05:00
Jaidyn Ann adee8d6181 (irc) Sending/receiving messages (PRIVMSG) 2021-08-09 23:08:40 -05:00
Jaidyn Ann 31ad5abf81 (irc) Leaving rooms 2021-08-09 22:33:56 -05:00
Jaidyn Ann e05d14dc95 (irc) Joining rooms, subject, user-list 2021-08-09 22:08:50 -05:00
Jaidyn Ann d692c34fea (irc) Handle NOTICE and better joining 2021-08-09 19:03:37 -05:00
Jaidyn Ann c202ef33ac (irc) Start add-on rewrite
The IRC add-on previously used libircclient, which is becoming inactive,
and newer versions don't compile on Haiku easily. A fresh rewrite seems
to be a better option.

So far it only supports basic connection and receiving the MOTD. :p
2021-08-09 14:07:50 -05:00
Jaidyn Ann 373dcb4a58 Protocol message tweaks, bump API version
Some chat protocol messages' names have been changed to more fitting or
consistent names― e.g., "IM_AVATAR_SET" to "IM_USER_AVATAR_SET", or
"IM_CONTACT_LIST_*" to "IM_ROSTER_*" (to agree with Cardie's usage of
the word).

The API version has been bumped― for the forseeable future (at least
several months, I promise!) no compatibility-breaking changes will be
introduced. Until then, any new feautures or message slots will be
additive and optional.
2021-08-08 21:01:42 -05:00
Jaidyn Ann 4905dbbe6c Redesign add-on disconnection
Currently, add-ons are disconnected when ChatProtocol::Shutdown() is
called, which the add-on can do by itself― but there is no standard way
for add-ons to notify the app about their Shutdown. Because of this,
they tend to not call Shutdown()― instead (as in the case of the Jabber
add-on), they display a BAlert (IM_ERROR) notifying the user of the
connection error, but the account is considered active by Cardie (and
its threads are still existant, including its ProtocolLooper).

Zombies are bad, so this is redesigned somewhat with this commit:
Protocols should no longer call ChatProtocol::Shutdown() themselves,
they must send an IM_MESSAGE of IM_PROTOCOL_DISABLE to the app.

This will delete its ProtocolLooper, which in turn will send a
notification to the user and delete the ChatProtocol, and so
calling ChatProtocol::Shutdown().

In the included protocols, an IM_ERROR is sent right before
IM_PROTOCOL_DISABLE is sent if due to a connection error. This is not
required, but it is courteous to inform your user about the "why." :)
2021-07-18 17:52:36 -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 b5b24939ea Set IRC/Purple passwords as 'secret' fields 2021-07-02 09:19:58 -05:00
Jaidyn Ann de28bc8673 Match up nick with own user_id 2021-06-21 03:22:35 -05:00
Jaidyn Ann 31bc304c0b Enable IRC protocol 2021-06-21 03:06:15 -05:00
Jaidyn Ann 0c615b01fd Basic IRC connection/messaging/joining, etc. 2021-06-21 01:54:42 -05:00
Jaidyn Ann 57ecbd1cb3 Init IRC add-on 2021-06-20 22:17:24 -05:00