Commit graph

483 commits

Author SHA1 Message Date
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
default
49362f5404 Convert image links in notes to attachments. 2023-05-21 20:32:23 +02:00
default
f136426a25 Minor refactor to msg_note(). 2023-05-21 20:12:59 +02:00
default
d055b63a0d More image tweaks. 2023-05-20 19:33:57 +02:00
default
a597eb7352 Improved default avatars. 2023-05-20 19:25:52 +02:00
default
93d1649ba6 New config option 'drop_dm_from_unknown'. 2023-05-17 11:24:47 +02:00
default
b5eaabe77e When updating the user info, also spam the following list. 2023-05-17 10:49:46 +02:00
default
970ad7a540 Got rid of xs_encdec.h. 2023-05-17 10:08:57 +02:00
default
24f802be7e Use a different approach towards incomplete mentions.
This time, incomplete mentions are completed using a) the host of
the first mention, if there are any, or b) the current host.
2023-05-12 19:01:53 +02:00
default
d35c949a13 Resolve (partially) the issue with mentions without server.
Mastodon (mainly from the API) usually include mentions without server,
which is just stupid. This patch tries to resolve these broken mentions in
process_tags() by looking for a user name starting with it in the already
pre-populated tag list. As of now, this only works if the message is an
inReplyTo and the broken mention is the one of the original
(attributedTo) poster.
2023-05-12 11:56:17 +02:00
default
2e27a805fc Minor refactor to msg_note(): the tag list is created here, not in process_tags(). 2023-05-12 10:33:59 +02:00
default
3d4bf235f0 Minor function prototype tweak. 2023-05-12 10:15:44 +02:00
poesty
e65760a349 Merge pull request 'master' (#1) from grunfink/snac2:master into master
Reviewed-on: https://codeberg.org/poesty/snac2/pulls/1
2023-05-07 07:27:24 +00:00
poesty
7d3a909598 Fixed webfinger and curl issues 2023-05-07 13:42:47 +08:00
default
d3a36218a6 Implemented 'Ping' and 'Pong' activities.
According to https://humungus.tedunangst.com/r/honk/v/tip/f/docs/ping.txt
2023-05-05 09:54:41 +02:00
default
980a8d524f Fixed more warnings. 2023-05-04 09:34:33 +02:00
default
185aac2387 Added -Wextra to C flags. 2023-05-04 09:28:36 +02:00
default
753eadfd17 Added some const here and there. 2023-05-04 09:25:09 +02:00
default
511f5062b7 Deleted real unused parameters. 2023-05-04 09:19:26 +02:00
default
21fa6c7904 Strip the query string in msg_follow(). 2023-04-23 14:33:53 +02:00
default
291f251ced Added mastoapi follow. 2023-04-23 08:44:26 +02:00
default
5b93e9069e Added mastoapi code for account search. 2023-04-23 05:33:54 +02:00
default
81100cb825 Posts can now be sent (still no images). 2023-04-15 19:05:26 +02:00
default
bd21d144de New function timeline_touch(). 2023-04-14 19:17:16 +02:00
default
a050be9107 Don't show the full tree in notifications. 2023-04-14 13:05:36 +02:00
default
bcde97c2d5 New function notify_add(). 2023-04-13 16:59:17 +02:00
default
2d5d63554c Started working on a notification list. 2023-04-13 15:32:13 +02:00
default
79224ca2b5 New function mastodon_status(). 2023-04-11 09:50:12 +02:00
default
5d26f31a8a Fixed overzealous rejection of Announces. 2023-04-05 23:23:19 +02:00
default
976083bf87 Some log tweaks. 2023-04-02 11:17:51 +02:00
default
c83b601f90 In is_msg_public(), also look at 'Announce' messages. 2023-03-31 19:09:59 +02:00
default
21e562cfbd Inbox collection can be disabled from the config file. 2023-03-08 10:14:40 +01:00
default
985bb474ba Enable back inbox recollection. 2023-03-07 10:29:50 +01:00
default
71394774f4 Disabled inbox recollection temporarily (for global re push). 2023-03-07 10:27:50 +01:00
default
35995d03be Reject messages not for me. 2023-03-07 10:04:13 +01:00
default
23177e9395 is_msg_for_me() also accepts msgs where a followed is cc'ed. 2023-03-07 09:40:55 +01:00
default
946c29773a Some improvements to is_msg_for_me(). 2023-03-06 20:07:44 +01:00
default
b032e3d522 Fixed is_msg_for_me(). 2023-03-06 14:35:11 +01:00
default
e3e45b7c98 New function is_msg_for_me(). 2023-03-06 14:28:53 +01:00
default
60f77b6cad msg_update() sends copies the 'to' and 'cc' fields in notes. 2023-03-06 11:26:43 +01:00
default
751211684f Don't send public admirations of non-public messages. 2023-03-06 11:16:15 +01:00
default
79ea0bf4ab Reject MUTEd actor messages ASAP with a 403 status. 2023-03-04 00:26:50 +01:00
default
45f490286a Send to collected inboxes AFTER sending to explicit recipients. 2023-03-03 06:04:40 +01:00
default
8451d66601 Log the user-agent when serving the actor. 2023-03-02 15:34:04 +01:00
default
1ca94dab67 Added user-agent in non-signed http connections. 2023-03-02 13:30:29 +01:00
default
5036cb5e11 Connection jobs are treated as urgent. 2023-03-02 12:38:02 +01:00
default
e705e5c3ed Show a bigger piece of a connection error. 2023-03-02 12:30:00 +01:00
default
4773d6c64c Output to the shared inboxes only the public messages. 2023-03-02 10:26:52 +01:00
default
d53d9af2be Enqueue messages to the collected inboxes first. 2023-03-02 09:28:19 +01:00
default
29b12498dd Simplified is_msg_public(). 2023-03-02 09:15:40 +01:00
default
e74ae0f589 Renamed inboxes/ to inbox/. 2023-03-02 09:01:08 +01:00
default
5e3c50d6e1 New inbox collection functions. 2023-03-02 08:43:50 +01:00
default
eb0c7eabbb Minor refactoring to actor_request().
Including commented out experimental code for collecting sharedInboxes.
2023-03-01 09:22:32 +01:00
default
d75a22adab New function srv_archive_error(). 2023-03-01 08:25:36 +01:00
default
1d82d13d62 In activitypub_request(), retry failed signed requests as non-signed. 2023-02-24 09:00:03 +01:00
default
2bfebba7be Don't wait for 3 seconds if there were some q_items processed. 2023-02-22 08:39:54 +01:00
default
3a97721c30 Unrolled the recipient-to-inbox process in process_user_queue_item().
Instead of calling inbox_list(), waiting for it to end and then
sending to all the "uniqueized" inboxes, the sending is done everytime
a unique inbox is found.
2023-02-20 13:19:29 +01:00
default
58c01be996 Use actor_request() again in get_actor_inbox().
This was faster, but some actors not already here (i.e. some
mentions) were not posted.
2023-02-20 10:02:21 +01:00
default
5230435b31 New boolean argument 'priv' to msg_note(). 2023-02-20 09:32:44 +01:00
default
9083bef5cb Don't try to send to empty email addresses. 2023-02-20 06:12:23 +01:00
default
f1f3e3b116 Email notifications can be disabled. 2023-02-20 06:00:54 +01:00
default
d3da67eaba Don't request the actor in get_actor_inbox(). 2023-02-15 06:01:47 +01:00
default
1af96788f0 Even more tweaks to connection reply logging. 2023-02-14 08:49:17 +01:00
default
e71c72f037 More tweaks to connection reply logging. 2023-02-14 08:32:07 +01:00
default
f832e6a508 Some tweaks to connection reply logging. 2023-02-14 08:26:39 +01:00
default
7e27ccfde8 Try to show a piece of the error after connecting. 2023-02-14 08:15:43 +01:00
default
f5d3859e07 Added the user to the notification. 2023-02-08 14:47:23 +01:00
default
944bd60e06 Deleted old output message processing in user queue. 2023-02-07 13:34:26 +01:00
default
4cca157641 Output messages are now processed by the pool of threads. 2023-02-07 13:31:48 +01:00
default
8f63c6259a Log unexpected q_item types. 2023-02-07 13:19:27 +01:00
default
7be01b7f34 Output messages are sent with send_to_inbox_raw(). 2023-02-07 10:33:58 +01:00
default
3ddf76c2aa New function send_to_inbox_raw(). 2023-02-07 10:29:06 +01:00
default
2db57c9df9 Added internals for Telegram notifications. 2023-02-07 07:37:23 +01:00
default
f6d51357af process_queue() now posts the q_item to the thread pool.
Instead of calling process_queue_item() itself.
2023-02-06 20:29:18 +01:00
default
b2d186cd0f The pool of threads now process q_items.
Also, the purge is commanded as a q_item.
2023-02-06 20:07:29 +01:00
default
71a7569467 Deleted the type argument from object_get_my_md5() and object_get().
It was never used.
2023-02-05 17:45:00 +01:00
default
d49089898f Elevated debug level to bad user / invalid user messages. 2023-02-03 16:51:59 +01:00
default
928f22fbba Email notifications have been moved to the global queue. 2023-02-02 05:21:16 +01:00
default
c639553836 New function queue() (the global queue). 2023-02-02 05:07:20 +01:00
default
108ed072e2 Renamed process_queue_item() to process_user_queue_item(). 2023-02-02 04:55:58 +01:00
default
8d22c448d4 process_queue() has been renamed to process_user_queue(). 2023-02-02 04:50:51 +01:00
default
106c94ef86 queue() renamed to user_queue(). 2023-02-02 04:47:59 +01:00
default
ee77e45abb dequeue() does not need a snac argument. 2023-02-02 04:44:30 +01:00
default
c2524323a9 New function process_queue_item(). 2023-01-31 22:30:34 +01:00
default
cabbdbe209 Deleted dead code. 2023-01-31 20:26:33 +01:00
default
94c4790bd7 Unified queue message field names. 2023-01-31 20:22:36 +01:00
default
4e86847f72 Image attachments in posts can now have descriptions ('alt text'). 2023-01-28 18:22:42 +01:00
default
756e8cb2a7 More tweaks to the default avatar. 2023-01-27 18:28:55 +01:00
default
aecfcacc32 Some tweaks to the default avatar. 2023-01-27 18:21:54 +01:00
default
a3ed2408fc New function default_avatar_base64(). 2023-01-27 18:17:11 +01:00
default
fd1e281cba Use a shorter timeout for first output connections. 2023-01-24 15:06:58 +01:00
default
2921dbe058 Always make ids unique. 2023-01-22 20:31:16 +01:00
default
7199c00403 In msg_note(), store the original content in the sourceContent field. 2023-01-20 10:09:32 +01:00