Commit Graph

433 Commits

Author SHA1 Message Date
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
default
a38c7aeadc Updated year in copyright notices. 2023-01-17 09:50:16 +01:00
default
b262961c93 Process HTML Unicode entities specially in process_tags(). 2023-01-17 09:37:41 +01:00
Andrew Alderwick
3cb1725225 Added OpenBSD's unveil() and pledge() support. 2023-01-13 13:25:14 +01:00
default
11ba44ff9f Some mention formatting tweaks. 2023-01-13 07:12:19 +01:00
default
1d0ab9c156 Added (partial) support for #HashTags in posts. 2023-01-12 13:49:37 +01:00
default
6b344b8c2e Deleted unused argument in timeline_request(). 2023-01-11 20:51:15 +01:00
default
40b3f739d2 Deleted unused argument in timeline_admire(). 2023-01-11 20:47:36 +01:00
default
75f8554e38 Deleted unused arguments in timeline_add(). 2023-01-11 20:40:13 +01:00
default
1aac24ca75 More keyId/signature tweaks. 2023-01-11 09:38:19 +01:00
default
1438d046a5 Log tweaks. 2023-01-10 20:37:53 +01:00
default
23eb05ee99 Use the already loaded actor in check_signature(). 2023-01-10 18:21:00 +01:00
default
292d7c3e95 Fixed log level for 'serving actor'. 2022-12-24 07:05:01 +01:00
default
850259b269 Added a working space to timeline_request(). 2022-12-23 21:41:52 +01:00
default
e762d942de Don't rewrite the id unless it's different. 2022-12-23 21:30:18 +01:00
default
f9f6d96579 Corrected a debug level. 2022-12-23 12:32:59 +01:00
default
f83ff46b6b Fixed crash on some webfinger errors. 2022-12-23 12:20:54 +01:00
default
0bba515cf0 timeline_request() fixes the canonical id for the object. 2022-12-23 10:01:10 +01:00
default
a24b27bf29 Don't generate inReplyTo as an empty string. 2022-12-23 08:05:00 +01:00
default
8461fbfbcc Log the actor request. 2022-12-16 08:35:52 +01:00
default
e6c48cc96a In msg_note(), delete all cc recipients also in the to. 2022-12-16 07:51:10 +01:00
default
25acaf178c Replaced all calls to post() with enqueue_message(). 2022-12-16 07:16:00 +01:00
default
427f7341fa New function enqueue_message(). 2022-12-16 07:09:25 +01:00
default
286eb291c7 Lower debug level to repeated follows. 2022-12-15 16:43:01 +01:00
default
df612873d6 Log repeated Follow messages. 2022-12-15 16:37:34 +01:00
default
6a7007e381 Added support for Update + Note on input. 2022-12-15 11:06:31 +01:00
default
645e7ec43e Some code reordering to placate scan-build's wrath. 2022-12-14 04:55:47 +01:00
default
79270abd09 Log the response date in send_to_inbox() errors. 2022-12-11 09:08:12 +01:00
default
6fd5d14428 In process_queue(), do not retry for 404 or 410 status. 2022-12-10 10:36:31 +01:00
default
cef10f5678 Added level of debug for 'Delete' messages. 2022-12-08 08:19:24 +01:00
Alex Schroeder
a221237637 Pagination of the public and private page
Use the query parameters skip and show to control what you can see,
e.g. /alex/admin?skip=0&show=4

Don't use or save the timeline cache if either is set.

The following functions were changed from accepting a single max
parameter to accepting both skip and show:
timeline_simple_list, timeline_list, index_list_desc.
2022-12-06 18:27:33 +01:00
Alex Schroeder
20f862a651 Use "new" instead of "New" for log messages
The messages for new "Like" and new "Delete" started with an uppercase
n instead of a lowercase n like all the other log messages.
2022-12-04 10:35:01 +01:00
default
af6d31ff83 New function timeline_simple_list(). 2022-12-03 07:27:26 +01:00
default
a133427e8d More old code cleaning. 2022-12-02 20:56:51 +01:00
default
3e2891b100 Renamed timeline_here() to object_here(). 2022-12-02 20:44:51 +01:00
default
c06136a8ac Fixed one post queries. 2022-12-02 19:39:17 +01:00
default
33c8a73c17 Fixed RSS and outbox to use the new data storage. 2022-12-02 19:30:59 +01:00
default
c00e3afcdc Big data storage change. 2022-12-02 19:14:59 +01:00
default
e98dbe4eb5 Added the profile="" argument to Person content-type. 2022-12-01 19:38:11 +01:00
default
8b4dbfd708 Deleted dump of debugging code. 2022-11-28 17:54:32 +01:00
default
f209c3205d Use xs_set in recipient_list() and inbox_list(). 2022-11-28 15:49:56 +01:00
default
07fec71273 Upgraded followers to the new db. 2022-11-28 10:46:42 +01:00
default
832bbfd5eb Dump bad signature headers to /tmp/ (temporary). 2022-11-27 09:18:35 +01:00
default
a9d3e0ca79 I was using fclose() instead of pclose(). What a moron. 2022-11-27 09:09:55 +01:00
default
1243e26a0d New function object_add_ow(). 2022-11-26 05:18:48 +01:00
default
afeec970a3 Also call object_del() on a renewed actor in actor_request(). 2022-11-25 12:50:19 +01:00
default
e2c332c68a On Update + Person, call object_del() before actor_add(). 2022-11-25 12:09:30 +01:00
default
9145cca97a In msg_note(), also add the in_reply_to author as a tag.Mention. 2022-11-22 20:31:22 +01:00
default
f4bebf0323 Logging tweaks. 2022-11-18 18:08:09 +01:00
default
e6bf647b98 Always log process_queue sending. 2022-11-18 08:04:20 +01:00
default
f0e17d6753 Queue messages to inboxes instead of actors. 2022-11-17 18:33:54 +01:00