I am one of the Lemmy maintainers and work on the project fulltime together with Dessalines. Our work is funded by donations, but these are gradually going down and don’t even cover a single dev salary now (see join-lemmy.org). That’s why we added a new donation dialog in 0.19.11 which is shown once a year to every user:
Many people use Lemmy exclusively through apps, so we would greatly appreciate if you could add such a dialog to your app too. The logic is relatively simple:
- From the
/api/v3/site
response, checkmy_user.local_user_view.local_user.last_donation_notification
- If the date is more than one year ago, display a dialog like the one above with buttons Donate, Close
- When Donate is clicked:
- Open
https://join-lemmy.org/donate
- Close dialog
- Call
POST /api/v3/user/donation_dialog_shown
to hide dialog until next year
- Open
- When Close is clicked also call the
donation_dialog_shown
endpoint
To test this functionality with a 0.19.11 instance, run the SQL query update local_user set last_donation_notification = '2024-04-07 09:05:06';
which shows the dialog for all local users. You can reuse the code and strings used in lemmy-ui.
Thanks for your consideration!
Wouldn’t it be more future proof and simple to return a boolean indicating whether the dialog should be shown or not, rather than delegating the calendar logic to every client?
That way different clients don’t have to implement the “has a year passed” logic, and you retain the ability to change how often the dialog is shown too without requiring all clients to update.
Hmm that may be true, but now its already implemented like this, and this would require a breaking change. So better to leave it as is. Anyway the logic should not be changed.