Commit graph

475 commits

Author SHA1 Message Date
Stefano Marinelli
82d57557bb ntfy code cleanup 2024-01-12 09:07:55 +00:00
Stefano Marinelli
2af9481837 Added support for ntfy notifications. You can configure either a self-hosted server or use the official ntfy.sh, and you have the option to use a private token to protect access and topics. 2024-01-12 09:54:14 +01:00
default
4f7a13884e Better checking for CC creation in msg_note(). 2024-01-11 19:29:09 +01:00
default
2693c081b4 If the actor from a message from the shared-inbox fails, propagate.
It may be because the actor request needs to be authenticated.
2024-01-11 06:34:29 +01:00
default
eacfa5b751 Avoid a webfinger request in msg_note(). 2024-01-11 06:08:52 +01:00
default
cc535e9958 Added more webfinger checks, just to be sure. 2024-01-10 19:23:34 +01:00
default
f0d185192b Call srv_archive_error() on input q_item errors. 2024-01-10 18:04:44 +01:00
default
8800ed3892 More tweaks regarding shared inboxes. 2024-01-05 17:37:36 +01:00
default
5e2f4e9902 dequeue() unlinks the file, even if it's been unable to parse it. 2024-01-04 16:27:07 +01:00
default
755d997fb1 Updated copyright year. 2024-01-04 09:22:03 +01:00
default
3414ab48c6 In 'Follow', ensure the actor object to be followed is here.
Due to the routing change made for the shared inboxes, local users
are not in the data storage, so this fixes it.
2023-12-28 09:26:08 +01:00
default
90bab08655 More shared inbox tweaks. 2023-12-18 13:40:39 +01:00
default
be3e5c9618 Added some crash checks. 2023-12-18 13:24:07 +01:00
default
52f27123bb Fixed follow / unfollow mess for shared inboxes. 2023-12-18 11:37:02 +01:00
default
45c5c71f9e Fixed Accept + Follow for shared inboxes. 2023-12-18 11:15:53 +01:00
default
af912dba0b actor_request() accepts again an optional snac argument. 2023-12-17 19:53:54 +01:00
default
adf4213756 Deleted debug messages. 2023-12-17 18:40:26 +01:00
default
cbcd573fb5 Also check for the .../followers rcpt for non-public messages. 2023-12-17 17:35:59 +01:00
default
04745f5f7d Blah blah blah is_msg_for_me() blah blah blah 2023-12-17 17:07:26 +01:00
default
9b18d7b377 Even more is_msg_for_me() tweaks. 2023-12-17 16:39:25 +01:00
default
29b6b5c717 Even more is_msg_for_me() updates. 2023-12-17 16:25:04 +01:00
default
935c09125d More is_msg_for_me() tweaks. 2023-12-17 15:58:13 +01:00
default
fd637549f3 Added a prefix to srv_archive_qitem(). 2023-12-17 15:27:39 +01:00
default
f8196b4ef6 New function srv_archive_qitem(). 2023-12-17 15:21:16 +01:00
default
ad718e5b80 Fixed shared inbox distribution logic for Delete messages. 2023-12-17 14:56:09 +01:00
default
5736f38968 Added more code to discard Delete messages earlier. 2023-12-16 15:15:00 +01:00
default
f32c7dd813 More tweaks to is_msg_for_me(). 2023-12-15 22:25:14 +01:00
default
3e3dee8a2f Avoid propagating Undo messages innecesarily. 2023-12-15 21:43:34 +01:00
default
e9f391ed86 Added a special check for Undo + Follow. 2023-12-15 11:08:10 +01:00
default
878943a584 More debug tweaks. 2023-12-14 21:40:50 +01:00
default
a0c6b93d2e More log tweaks. 2023-12-14 19:58:44 +01:00
default
888a79e58a Call process_input_message() from the shared-inbox input.
This way, some garbage like unrequested Deletes from Mastodon
and other transient errors (like unaccessible authors) can be
short-circuited before propagating the message to the users.
2023-12-11 17:59:48 +01:00
default
b1ecaba803 Added a special drop for Delete messages from unknown actors. 2023-12-11 16:59:33 +01:00
default
e78f0bf1b1 Fixed error message. 2023-12-11 16:00:16 +01:00
default
25b0829470 Do not retry Delete messages on actor error. 2023-12-11 15:04:30 +01:00
default
bfdaf380ea More logging tweaks. 2023-12-11 10:41:41 +01:00
default
c06b74cc8e Revert "Reverted actor_request() without user."
This reverts commit 8d0a69cd75.
2023-12-11 10:12:57 +01:00
default
8d0a69cd75 Reverted actor_request() without user.
Some sites require even Person requests to be signed.
2023-12-11 08:00:49 +01:00
default
c693c7c62c Some logging tweaks. 2023-12-11 07:37:53 +01:00
default
88294c5198 Log actor_request() errors. 2023-12-11 07:19:42 +01:00
default
09b926c168 More functions do not require the user argument. 2023-12-10 17:50:03 +01:00
default
0e6c5f9463 actor_request() does not need a user argument. 2023-12-10 17:46:54 +01:00
default
90179f8459 activitypub_request() may have a NULL user.
In the NULL user case, only non-signed requests will be done,
but it's probably enough for actor requests in most cases.
2023-12-10 10:27:45 +01:00
default
1c19404258 Minor reordering code to process_input_message(). 2023-12-10 10:17:50 +01:00
default
95ccff541c process_input_message() returns -1 on errors. 2023-12-10 10:00:17 +01:00
default
d7fe3ba615 Call is_msg_for_me() from global queue input messages. 2023-12-10 09:08:30 +01:00
default
8f172f5e0e Usage of shared inboxes is now configurable from the server.json file. 2023-12-08 08:41:32 +01:00
default
ce0e782c94 Also check inside Update messages in is_msg_for_me(). 2023-12-06 19:59:59 +01:00
default
bad729c631 Started work to support shared inboxes. 2023-12-06 14:46:51 +01:00
default
b846c943b3 Fixed crash in activitypub_request() when there is no payload. 2023-11-29 08:58:31 +01:00
default
c1502219bb Local tag links now point to the search by tag URL. 2023-11-08 09:32:02 +01:00
default
759042dc9f Drop updates for unknown posts. 2023-10-16 19:19:41 +02:00
default
22cc5f42a5 Drop replies to hidden posts. 2023-10-16 19:14:44 +02:00
default
eb04c8e4f2 On output, consider HTTP status 405 (not allowed) as a fatal error. 2023-10-06 17:33:44 +02:00
default
60e8953a69 Give more retry time to timedout connections. 2023-09-29 10:34:22 +02:00
default
ac8790c3cd If a metadata starts with https:, convert it to a link. 2023-09-22 12:34:47 +02:00
default
c4b2d3bc69 If an account has metadata, return them as attachment PropertyValues in msg_actor(). 2023-09-18 11:24:30 +02:00
default
8ebfa10547 Use xs_match() in some places for more clarity. 2023-09-17 03:00:31 +02:00
default
2edbb75a18 Also accept Update activities for Page and Article. 2023-09-15 23:18:27 +02:00
default
073a2d962a Discard output messages to blocked instances. 2023-09-02 08:41:29 +02:00
default
4e87a1106a Consider error status 400 as fatal in output messages. 2023-09-01 11:50:01 +02:00
default
57c84d1c3a Some fixes to 'Undo' messages.
msg_undo() now generates valid messages for objects that are only
referenced by its id.
2023-08-31 16:11:58 +02:00
default
505084bab7 Added some support for 'Article' object types. 2023-08-23 09:44:46 +02:00
default
7e63766e4a Also propagate the 'conversation' field, if there is one. 2023-08-22 20:12:22 +02:00
default
46cfc37f2b Be more strict when serving note objects. 2023-08-18 18:21:52 +02:00
default
8c87b6894e Fixed some warning. 2023-08-14 18:04:27 +02:00
default
f09340c352 If a user 'header' field is defined, use it. 2023-08-14 13:12:16 +02:00
default
c8d535a154 Ignore 'Add' activities ASAP. 2023-08-13 16:09:20 +02:00
default
d3de540a05 Don't archive Accept + Create activities as errors.
They may be (or not, not remember from the doc), but I don't care.
2023-08-13 15:56:11 +02:00
default
a0906208ea Use some new xs_stock values. 2023-08-13 12:09:35 +02:00
default
cac1c6febd Rewritten actor_get() to not depend on a user. 2023-08-12 11:23:01 +02:00
default
499697258d Rewritten is_msg_public() to not depend on a user. 2023-08-12 09:43:01 +02:00
default
36ee16db1d Archive JSON errors in activitypub_post_handler. 2023-08-11 22:04:23 +02:00
default
fff4ff4261 More strict retries. 2023-08-09 20:04:57 +02:00
default
203dd88389 Be more strict in not retrying on permanent errors. 2023-08-09 19:36:31 +02:00
default
3e5bb109d1 Renamed json dump functions to new xs spec. 2023-08-08 19:29:34 +02:00
default
65df883b3f Fixed votersCount. 2023-08-08 13:56:12 +02:00
default
135e690a27 Limited users can announce our own posts. 2023-08-07 19:21:57 +02:00
default
bf79c8c370 Some fixes to limiting actors. 2023-08-07 06:35:31 +02:00
default
106791ff6b Added command-line interface for limit/unlimit users. 2023-08-06 19:04:30 +02:00
default
28adb6c850 Drop announces from limited users. 2023-08-06 18:42:47 +02:00
default
d455280705 Fixed a log message level. 2023-08-02 09:42:51 +02:00
default
368b1eb452 Fixed outbox to be an OrderedCollection of Create+Note, not Note. 2023-07-29 15:29:11 +02:00
default
751eb0586a msg_create() is of type @wrapper.
This means that it also generate the same id for the same Note.
2023-07-29 15:19:52 +02:00
default
0f8c0cd694 Updated comment in headers. 2023-07-28 11:34:18 +02:00
default
4af95579dc Deleted a comment that is no longer true. 2023-07-24 20:44:21 +02:00
default
e428b57865 Improved Accept + implicit Follow code. 2023-07-24 20:44:00 +02:00
default
dc5c1ce0ac Added support for Accept objects that only provide an object id.
This allows following Guppe groups.
2023-07-24 20:37:31 +02:00
default
6e5c7d4a4b Increased recursion level for timeline_request(). 2023-07-18 09:51:59 +02:00
default
35987ebb50 Avoid incomplete messages in timeline_request(). 2023-07-15 16:13:26 +02:00
default
43d2e80dc5 Use the right object id when storing Announce + Create + Note objects. 2023-07-14 09:05:27 +02:00
default
9b19a26408 Increased log level for Announce error requests. 2023-07-13 21:11:49 +02:00
default
2caeb550b9 Added support for the 'Page' ActivityPub object.
So that you can follow and interact with lemmy channels.
2023-07-13 21:01:15 +02:00
default
a05aa969d0 Added a maximum level of recursion to timeline_request(). 2023-07-13 20:19:50 +02:00
default
0bdd1f0420 Always log send status in post_message(). 2023-07-13 18:21:30 +02:00
default
545af948db New function post_message(), to send a message bypassing the output queue.
This is used when accepting Follow requests; this way, follows are
confirmed as fast as possible.

If the message cannot be immediately sent, it's queued as always.
2023-07-13 18:18:23 +02:00
default
137f775605 Minor prototype tweak. 2023-07-13 17:58:18 +02:00
Yonle
47adfa169a activitypub.c: Remove unused variable. 2023-07-12 09:18:57 +07:00
default
7e5b02be3f Fixed weird prototype of process_tags(). 2023-07-04 16:57:17 +02:00
default
6fce560f01 The actor bio now accepts tags. 2023-07-04 16:54:41 +02:00
default
78b468f013 More unfollow notification tweaks. 2023-07-04 14:23:12 +02:00
default
7db4de872d Also show unfollows in the notification area. 2023-07-04 14:07:33 +02:00
default
a114d5094d Call is_instance_blocked() from activitypub_post_handler(). 2023-06-29 08:26:44 +02:00
default
7a0efc3680 Increased log level for 'not for us' messages. 2023-06-26 08:38:49 +02:00
default
96b8791754 Defend from kbin.social messages not having a content-type header. 2023-06-19 17:39:53 +02:00
default
a260f5fec3 Increased debug level for NOT collecting inboxes. 2023-06-16 10:07:25 +02:00
default
f1294bd3d4 Added a comment about Announces of non-Notes. 2023-06-11 21:53:18 +02:00
default
5cdfd64d61 No more archiving of borked Likes. 2023-06-11 20:12:01 +02:00
default
cf2cfca624 Also reject Like messages in is_msg_for_me(). 2023-06-11 20:10:23 +02:00
default
1dd88aa6f6 Log malformed Likes from wafrn.net (who else?). 2023-06-11 20:03:42 +02:00
default
f6b836e120 Fixed comment. 2023-06-11 10:55:39 +02:00
default
723343fc42 Disable timeline_request_replies() temporarily. 2023-06-11 10:54:48 +02:00
default
e45ffa0fa2 Use a different variable name to store the id of 'embedded' children. 2023-06-11 10:41:19 +02:00
default
ecde1c219e New function enqueue_request_replies().
This way, the (potentially expensive and slow) call to
timeline_request_replies() is detached from actions like
replying a message from the web ui.
2023-06-07 12:04:59 +02:00
default
e926fa2309 Changed timeline_request_replies() to receive an id and not an object. 2023-06-07 11:39:13 +02:00
default
f90d4b2372 New function timeline_request_replies().
This function downloads and stores all replies to a message, recursively.

Increases traffic.

Mastodon instances request the user actor again and again without caching
(when the 'replies' Collection is downloaded). Maybe I'm not doing something
correctly?
2023-06-07 11:15:58 +02:00
default
85011994e1 Also accept Update + Service messages. 2023-06-04 10:49:02 +02:00
default
0d817340e2 If a user config field 'bot' is set to true, identies as such. 2023-06-04 10:48:03 +02:00
default
3a8005f9bf Updated some data types. 2023-06-04 10:34:39 +02:00
default
13ab8c73e5 More notify tweaks (I'm getting sick of this). 2023-06-02 11:48:43 +02:00
default
84152d67f5 Fixed bug in notify() (the poll id was not set). 2023-06-02 10:58:49 +02:00
default
b0337f55b5 Fixed bug in vote discarding in notify(). 2023-06-02 10:52:12 +02:00
default
e66b3ff8da Disallow empty or repeated options in msg_question(). 2023-06-01 17:14:50 +02:00
default
af88b78478 Fixed typo in notify(). 2023-06-01 17:00:17 +02:00
default
e87d5b7e20 Another tweak in notify(). 2023-06-01 10:45:06 +02:00
default
344356e488 Fixed notification bug. 2023-06-01 10:37:12 +02:00
default
d6aa3d3c55 More poll notify tweaks. 2023-06-01 08:44:27 +02:00
default
91ed98df0d Always notify about our own closed polls. 2023-05-31 22:12:44 +02:00
default
c55a2e4d13 Don't notify about closed polls that we didn't vote for. 2023-05-31 22:10:45 +02:00
default
6c2ca0d40a Don't store votes in the notification area. 2023-05-30 18:51:53 +02:00
default
dc9d6520ee Add ended polls to the notification area. 2023-05-30 14:52:18 +02:00
default
0444b77da5 Made msg_question() non-editable. 2023-05-30 10:38:17 +02:00
default
32f31e490b Log when a poll is closed. 2023-05-30 06:12:10 +02:00
default
29eb3146f0 Added some limits to poll options. 2023-05-30 06:00:11 +02:00
default
be39b52064 Create the base message of msg_question() from msg_note(). 2023-05-30 05:54:45 +02:00
default
7659362448 Enqueue a close_question user q_item. 2023-05-29 11:07:38 +02:00
default
05ac2a062d Keep the original question order after updates. 2023-05-29 10:20:45 +02:00
default
d7b74574ad update_question() also updates the count of voters. 2023-05-29 10:11:14 +02:00
default
aea0ea4416 In update_question(), send the updated question to all voters. 2023-05-29 09:37:54 +02:00
default
60ea9b3a09 Disallow updating closed polls. 2023-05-29 09:20:37 +02:00
default
32ce1fb28e Close the question over due date in update_question(). 2023-05-29 09:12:19 +02:00
default
654e171b93 New macro ISO_DATE_SPEC. 2023-05-29 09:07:27 +02:00
default
e913d03f02 Fixed some bugs in update_question(). 2023-05-29 09:03:00 +02:00
default
8551c691fb New function update_question(). 2023-05-29 08:27:16 +02:00
default
bf96512296 Added the 'replies' dict to each question. 2023-05-29 08:00:43 +02:00
default
e75b76da7c Tweaked log message. 2023-05-24 13:49:34 +02:00
default
0d8a040d90 Added some experimental 'Question' posting code. 2023-05-24 11:49:16 +02:00
default
9bc4825507 New function msg_question() (unused). 2023-05-24 11:07:47 +02:00
default
50fe76edd2 Call timeline_touch() on successful 'Update' messages. 2023-05-24 10:46:54 +02:00
default
a73636f671 Questions (polls) are now stored (but not yet shown). 2023-05-24 09:43:11 +02:00