I am no longer going to support all the features and every NIP. It's too
hard. Thus I am reducing what I support in YoSup. From now on it will
only be a simple client with simple needs that serve me. I will continue
to use Damus on iOS or other clients for sending Zaps or using other
functionality. I do not feel I need to support these features and it has
me competing with other clients such as Snort or Iris, I don't want to
be a clone of them - I want a simple client for my needs: viewing what's
up from people I follow.
Thus I have started removing features and optimizing. Especially for the
very poor internet connection here in Costa Rica, reducing load of
images, content, etc. makes the client much faster and easier to use.
If you feel you are missing features please use the other clients that
have put in a LOT of hard work.
This feature involved a lot of refactoring in order to get working
correctly. I wanted to continue using the timeline view for chats thus I
used alternative styling & structure for DM event kinds. This worked
create since the elements map does not care.
There is some queing that has to be done to decrypt message content thus
I allow viewing messages even if they haven't been decrypted yet. I
think this is good for transparency since you understand what is and is
not decrypted. I do think that the UX could improve, because even tho it
is fast, it's flashes on new messages.
I did not implement saving of latest messages. I will do this later, but
this feature is big enough to merge as is: an alpha state that works.
I further abstracted profile & name updating to work in a more global
manner. Additionally I rewrote code that had attribute scripts to use
addEventListener instead. This is needed to happen anyways for security
and made the codebase easier to manage.
Improved recognization of replying to thread and being able to open it.
Rewrote profile storing on the model. Additionally fixed issues where
the profile was not getting loaded for referenced pubkeys on an event.
This changes to always on explore (though this may change yet again).
This is so we always get new events and we simply filter out who we want
to see. This also replaces the recent history.
I also changed contacts to check if we have contacts from storage and if
not to fetch them. This solves login loading issues.
There are still issues (IMO) with profile loading and thread loading
that need investigation. Profile loading just seems slow and threads
seems to not have posts. I think this may be because the relay is not
sending them to me because it's busy with the explore subscription. The
other relays seem fine, but Damus relay seems slow or unresponsive as I
will send a REQ and it will go completely unanswered, yet return explore
events.
I did this because they are 2 separate concerns and I have diverged
so far from the original repo. I didn't start a new repo because it
contains valuable history of all the people who contributed to it.
Additionally if there is an issue with this we can revert, but I
rather not. Forks are forks.