Commit graph

18 commits

Author SHA1 Message Date
Adam Porter
d699de7666 Add: Room avatars 2021-08-05 06:18:05 -05:00
Adam Porter
2607ec3145 Change: (ement-connect) Refactor, use plist args, add uri-prefix arg
This should, e.g. make it possible for Pantalaimon users to do
something like:

  (ement-connect :user-id "@USERNAME:SERVER" :password "PASSWORD"
                 :uri-prefix "http://localhost:8080")

Fixes #10.  Fixes #12.
2021-08-03 02:25:52 -05:00
Adam Porter
7491e0521a Add: (ement-session-events) Track seen events in hash table
We already have all of these event structs in the rooms' event lists,
so this is just extra pointers to the same data, and extra copies of
the event IDs, which seems reasonable.  We need to track this, for now
at least, because it lets us ensure that we aren't reusing transaction
IDs on a session (next commit).
2021-08-01 05:10:45 -05:00
Adam Porter
200e38df36 Change: Use new-events list in room local slot
And push new events directly to timeline slot.  This makes more sense.
2021-07-29 02:07:58 -05:00
Adam Porter
77613a34a3 Add: Store global account data events 2021-07-28 23:21:12 -05:00
Adam Porter
6f2a2f2e45 Tidy: Headers for package-lint
Even though these aren't packages, the way we call package-lint on
each file causes warnings for missing keywords.
2021-07-27 21:50:05 -05:00
Adam Porter
deeb8a6654 Add: Mentions
The ement-user struct gains a new slot, which invalidates structs in
saved sessions, so users will need to log in again.
2021-07-26 18:20:18 -05:00
Adam Porter
9234dfe9be Merge: Add: Show reactions
Squashed commit of the following:

commit 1f393d7dde
Author: Adam Porter <adam@alphapapa.net>
Date:   Thu Jul 22 10:48:19 2021 -0500

    Comment: TODOs

commit 7e039a7b4f
Author: Adam Porter <adam@alphapapa.net>
Date:   Thu Jul 22 10:48:08 2021 -0500

    WIP: Docstring for handler lambdas

commit 441c23113c
Author: Adam Porter <adam@alphapapa.net>
Date:   Thu Jul 22 10:40:58 2021 -0500

    WIP: Don't insert reaction events as nodes

    This seems to work well.  However, the event-processing needs some
    refactoring, because the logic is now spread across a few places.

commit 4fdf0ddf37
Author: Adam Porter <adam@alphapapa.net>
Date:   Thu Jul 22 10:30:28 2021 -0500

    WIP: Key face, and fix help-echo

    Remaining issue is that reactions still insert empty events in the
    buffer.

commit 5f700ccc16
Author: Adam Porter <adam@alphapapa.net>
Date:   Thu Jul 22 09:30:18 2021 -0500

    WIP: Fix: Use pushnew to avoid duplicating reactions

commit a40a6e6bc1
Author: Adam Porter <adam@alphapapa.net>
Date:   Wed Jul 21 20:17:32 2021 -0500

    WIP: And in -retro-callback

    A bug now is that, every time a room's buffer is created anew, the
    reactions are duplicated.

commit dbfec18e45
Author: Adam Porter <adam@alphapapa.net>
Date:   Wed Jul 21 19:49:47 2021 -0500

    WIP: Call -room---process-events in -room--buffer

    This almost seems to work, in that reactions from old timeline
    events are displayed when the buffer is made...or not?  It seems to
    work in some cases, but not in others, like when retro-loading...

    The big issue now is that the reaction events cause blank events to be
    inserted into the buffer.  Fixing that will require conditionally
    inserting events, which probably means moving message event handling
    into the defevent macro, which will require some more refactoring...

commit 81757536f2
Author: Adam Porter <adam@alphapapa.net>
Date:   Wed Jul 21 17:02:29 2021 -0500

    WIP: Add: Reactions

    It works for newly received reactions, but after initial sync,
    reactions that happened in the past are not displayed.  I think it's
    because the related events aren't found in the room's timeline, but I
    tried to fix that, and it still doesn't work.

    I'm guessing there are some assumptions that I'm making wrongly, or
    something that I don't understand about how the server sends events.
    We may have to save a list of certain types of events and process them
    after all other events have been processed.  Ugh.

    The good news is that EWOC makes it pretty easy and reliable to update
    messages in the buffer.
2021-07-22 10:48:41 -05:00
Adam Porter
97f75535fd Change: Track room buffers in local slot 2021-07-21 14:11:52 -05:00
Adam Porter
e5c25307b2 Add/Change: Use .well-known server URI when available
Fixes #2.  Thanks to Daniel Pérez (@0xSteeW) for reporting.
2021-07-17 08:19:12 -05:00
Adam Porter
1f392c78be Add: ement-room-prism
Squashed commit of the following:

commit 34ad5b4810
Author: Adam Porter <adam@alphapapa.net>
Date:   Sat Dec 5 16:23:51 2020 -0600

    WIP: Seems to work decently

commit e5edcfc908
Author: Adam Porter <adam@alphapapa.net>
Date:   Sat Dec 5 04:18:09 2020 -0600

    WIP
2020-12-05 16:24:21 -06:00
Adam Porter
9e3c9268d1 Add: Room list
And associated changes.
2020-12-03 21:53:11 -06:00
Adam Porter
fe11c4b1a7 Fix: Only show tip on initial sync 2020-12-02 14:28:00 -06:00
Adam Porter
ab4d16689c Set debug levels in all files 2020-12-01 03:57:44 -06:00
Adam Porter
9b49bd82a2 Login seems to work 2020-12-01 03:32:54 -06:00
Adam Porter
da436bf39e Loading earlier messages, etc. 2020-12-01 00:28:13 -06:00
Adam Porter
692bce7df4 WIP
It almost works, but events aren't being inserted in order...
2020-11-30 13:09:35 -06:00
Adam Porter
2ea5b5517c WIP room buffers 2020-11-30 11:01:41 -06:00