Memmy 0.0.1.72 - Push Notifications - Lemmy
# Don’t PUSH me, cause I’m close to the edge!
[https://lemmy.ml/pictrs/image/9a40905f-d366-4b41-9b81-dc0831798b77.jpeg] Hey
all! First, for those concerned, I have a multi-day vacation coming up here this
week, so I’ll be taking a nice break and cooking up a new batch of meth for the
next spree (I kid I kid). Here’s the updates for the day for you: - You can
delete accounts now. - Themes have been tweaked - Push notifications - Available
in Edit Account Settings - Swipe co…wait did you say push notifications? Yea,
we’ll talk about that down below. - Swipe colors are theme-based now. Will
continue tweaking these as needed. - Other tweaks - Oh and compact view users
can now press the image to open it up. Issues I know about and will address
tomorrow: - Voting on comments doesn’t update the vote - Going to a user profile
is not yet complete. Don’t worry, most of this should be done tomorrow. I’ve got
pretty much all the designs laid out and components now made for them. Just a
matter of swapping out the old with the new :) ## Push Notifications I’ve set up
a server that will perform checks for push notifications. Here are the ground
rules you should know about: 1. I cannot guarantee the availability of this. As
we scale, I will scale as well, so it won’t be a problem with that. What I mean
is that I cannot guarantee what Lemmy instances are going to do as far as rate
limiting (I’m not 100% sure how it works yet). Although I am not spamming any
requests at all (you’re going to be making more requests for notifications just
by having the website open), there will obviously be multiple users making
requests from the same IP address now. Depending on what instances owners have
in place, some requests might fail to go through. I’ll monitor and see what
happens. 2. Before you enable notifications, a message will appear letting you
know that you are sending your authentication token to the Memmy server. This is
NOT your password, HOWEVER, it does allow Memmy (and anyone who has access to
it) access to your account. So, long story short, you are trusting me (and only
me, nobody else has access to this server) with access to your Lemmy account.
This is not optimal. I would much rather have scopes where all I can do is READ
your mentions/replies/etc, and this might be something that gets integrated
later on in the API. We will see what happens with that in the future. For now
though, there is only one scope of authentication. If you do wish to revoke this
token in the future for whatever reason, all you need to do is change your
password and the token will be invalidated. Again…you are infact sending your
authentication token to the server and I technically do have access to it. Just
as a heads up. 3. Here is how it works: - You enable push notifications in the
app - Your username, instance, auth token, and push notifications token are sent
to https://memmy.app [https://memmy.app] - The server attempts to access the
Lemmy API endpoint /site. When authenticated, this endpoint returns user
information. - The server checks that the username in the API response matches
the one sent to the server. If it does not, then either the authentication token
was invalid or the username was not correct. - If everything is correct, the
server stores the username, instance, authentication token, and push token in
the database. - The server will check for replies (currently this is all I am
checking for as to not create too much traffic) periodically. This should happen
once per minute, but as users increase, there may be delays as I scale. - The
server will get the latest reply ID and see if it is greater than the last one
received. If so, this is a new reply and it will be sent to the user. That reply
ID will then be stored in the database. - Subsequent devices are also supported.
Notifications will be sent to each device. 4. Full source code is available to
view at https://github.com/gkasdorf/memmy-push
[https://github.com/gkasdorf/memmy-push] 5. To instance admins: All requests
made to instances include the user-agent “Memmy Push/0.1 on behalf of username”.
The username is included to inform you that these are not requests made for one
specific individual, but for multiple users. If this ever becomes a problem on
your instance, please let me know as I would really like to make this work great
for everyone, not just the users. This is a team effort. On that note, please
also let me know if you see any trouble with traffic coming from the app.
Similarly, requests are made with the user-agent “Memmy ios version”. ##
Feedback Let me know what issues you have with this feature. Obviously it is new
and I’m not sure how great it works yet. From my testing it works fine. I will
slowly expand on the notifications delivered from this, however, I first want to
make sure we approach this slowly so that we do not create an absurd amount of
traffic that cannot be handled. I will closely monitor traffic and adjust
timeframes if necessary. The next update will include mostly visual and UI
changes as we move toward normalizing the entire design of the app and bring
about a great UX for all of you. I’m also aware of a number of issues, and don’t
think they are unnoticed. Now that we have all the features in place, we can go
through and fix every last one of these issues 👍 And lastly on that note,
thanks for your guy’s debug logs. We are now reaching a point where we are
seeing on average 1 crash per 1000 sessions and debug logs are coming in quite
less frequently than before. All good news :) See you in the next update. Till
then, happy pushing!