Skip to content
  • 18 Votes
    42 Posts
    1k Views
    nutomic@socialhub.activitypub.rocksN
    Thats how FEP-1b12 works, its necessary if you want to federate activities such as voting, deletions or mod actions and not only post creations. But Lemmy doesnt support arbitrarily wrapped activities, only specific hardcoded ones like Announce/Create/Note, Announce/Like or Announce/Delete.
  • 10 Votes
    6 Posts
    87 Views
    blake@infosec.townB

    @julian Iceshrimp classic shows the link as https://community.nodebb.org//community.nodebb.org (and links to that) and assigns it "nofollow noopener". I think the page doesn't render unless you use JavaScript anyway so it shouldn't affect search rankings?

  • 9 Votes
    6 Posts
    419 Views
    luceos@socialhub.activitypub.rocksL
    trwnh: Topics can be split In addition to splitting topics, topics or their posts can also be merged into another topic. The UX for this is quite variable; sometimes entire topics can be merged into another, sometimes a certain range of posts within a topic (post 5 .. 10 from 15 posts), and sometimes a selection (post 5 and 10 from 15 posts or just a singular item post 5 from 15 posts). trwnh: Topics exist in a category For #Flarum topics can also not exist in a Category (we call them tags and that extension is optional, like all of our extensions). Even when using a Category, once the Category is deleted, we do not hard delete any topics contained within but unlink them, making them less visible but still existing within the Forum. Regardless, to us, Topics CAN exist in a category, it's not required. trwnh: Users can be followed for posts and topics Users can be messaged directly This sounds as if this is a given, I don't think it's guaranteed in every Forum software. But if can implies optional, then
  • 8 Votes
    11 Posts
    250 Views
    rimu@mastodon.nzoss.nzR

    @julian Ooo good point about adding the ? back on.

    If you're interested in a non-regex solution, here's what I have - https://codeberg.org/rimu/pyfedi/src/branch/main/app/utils.py#L247

  • 8 Votes
    4 Posts
    307 Views
    trwnh@mastodon.socialT

    @julian to clarify: this is mostly about "canonical" identifiers vs. aliases. there is generally one canonical identifier for the conversation collection, and this is what should be used as the value of `context`. this could get a bit complicated but there are potential ways to coordinate replication between equivalent conversation collections, probably involving mutual following/follower relationship, plus some indicator of aliases like `alsoKnownAs` or some other extension property.

  • 7 Votes
    18 Posts
    273 Views
    C

    @Julian yeah that's a good point - I think tag would work but I always got the impression that they were more of a micro-level part of a specific piece of content vs. macro-level (being the place they're being discussed in). context would be set at the forum level (whatever the forum's owner specified) whereas tags might be decided by the user. So in that sense, context would more about origination of a post.

    Example might be something like this -

    { id: "https://yuforium.com/forums/cars", type: "Service", name: "Example Forum About Cars", context: "https://another-instance.org/topic/cars" }

    Where a POST to that forum's outbox with a Note would result in that note's context defaulting to the one set to the forum. Posting with another context would result in an error. This makes things a little different than a tag which is what would be user specified. In that sense, context is more about where the post was created, vs. what it was created about. In a federated system, where could be an authoritative entity that encompasses multiple instances and is dereferenceable, or where could be defined as a UUID and be completely unauthoritative and ephemeral.

    Given that it's more about the origination of the post, I would agree that the term "Community" is better in this case to define what context relates (instead of "Topic") so in the example, context could be switched to https://another-instance.org/community/cars.

    It's been a while since I wrote that up, and at the time I was considering using "Community" as the terminology for a context so I might update that soon (especially with "Topic" being a frequently used convention in forums meaning something totally different).

    In the Activity Streams docs, the one part about context that got my attention was this - "An example could be all activities relating to a common project or event", meaning that context exists outside of the scope of what a thread would be, and is more indicative of a forum level or federation setting vs. the contents (objects, activities, etc.) of a single thread.

  • 7 Votes
    8 Posts
    138 Views
    julianJ

    @[email protected] right. I think functionally I'll never encounter a Delete, check the origin, and find that the note hasn't actually been deleted, but stranger things have happened!

  • 7 Votes
    2 Posts
    117 Views
    julianJ

    Technical stuff ahead 🚨...

    This is merely exposing the frontend UI to the already established backend logic.

    We have two methods internally that are used for this:

    Notes.assert, which when given a object url or id, parses it and attempts to resolve the parent chain all the way to the top-level post. It then creates a topic to house all of those posts. Actors.assert, which when given an object url, id, or handle, creates a local representation of the user. How come "query"/etc. didn't show up?

    For both user and post searching, if the passed-in url does not resolve or does not resolve to a processable object, then we do not proceed. It's important to realize that while in an ideal world, we'd all be passing immutable identifiers everywhere, the real world is just a bit messier.

    Search queries could be a post or user URL, or a webfinger handle, so additional logic was required to handle those use cases. Most ActivityPub-enabled software I've encountered handle these vanity URLs when queried via ActivityPub β€” it returns the appropriate representation for processing. Some do not, and so in those cases, those items will not show up in the search results.

  • 5 Votes
    6 Posts
    75 Views
    julianJ

    Of course you have a wiki page for this already! Why am I not surprised.

    Yes, that follow-accept has state synchronization responsibilities means that some additional specification would be nice, though as long as everybody tends to conform to the same behaviour I suppose thats less urgent.

    I still don't like that the current UX is "follow is in a pending state", but short of additional specification re: error handling, there's not much to do here.

    At any rate it seems I am now correctly following @[email protected] so I suppose maybe my server was slow at processing the accept.

  • NodeBB 3.8.0

    NodeBB Development
    1
    5 Votes
    1 Posts
    127 Views
    barisB

    Hello Everyone πŸ‘‹!

    Today we are releasing NodeBB 3.8.0. Please read below for all the changes in this release.

    Moderation Improvements πŸ”¨

    We made some improvements on the user account info page. Namely:

    Unmutes and Unbans will show up in the user history. If the account is flagged it will show up in the "Latest Flags" section. Moderation notes are editable. Username & email history will show who made the change.

    cfe7c601-f49e-4f16-8341-00ca5dbd0b5e-image.png

    User/Group filter on admin events page πŸ“…

    dd3b7804-33fd-4ecd-9087-73e26fca9f9e-image.png

    Events in the admin page can be filtered by a single user or a group of users.

    Field selector for user export πŸ‘₯

    export-user-fields.png

    Exporting a list of users in the acp now let's you select which fields to include in the export.

    Docker improvements πŸ‹

    Thanks to more work by @oplik0 we have more improvements to our docker setup, full PR https://github.com/NodeBB/NodeBB/pull/12335

    Bug fixes & Misc πŸ›

    As usual there are plenty of bug fixes in this release.

    Full list of closed issues.

    Let us know if you run into any issues in our support thread.

  • 3 Votes
    18 Posts
    323 Views
    julianJ

    Thanks @[email protected]! That's good feedback and it's really exciting to know that there exist implementors out there whose default is not Note.

    I think at this point a real-time discussion at the next ForumWG re: the distinction between Article vs. Note would be beneficial. It'd be a continuation of the discussion we had last month.

    It's clear there are varied opinions on it, but as intimated by others, this might not actually be a problem that has technical solution.

  • 0 Votes
    28 Posts
    258 Views
    jenniferplusplus@hachyderm.ioJ

    @julian @thisismissem It genuinely never occurs to me to use tags as a means of controlling notifications. In fact, the very idea that the sender has more control over notifications than the recipient is mind boggling.

  • 0 Votes
    22 Posts
    569 Views
    julianJ

    @[email protected] said in Traversing the reply chain when working with topics:

    infinite inReplyTo chain.

    I think this could be solved in part by the chain traversal sanity checking to ensure that the id is not already retrieved, but I'm not naive enough to assuming that that can't be circumvented.

    ... so yes, in that sense a limit makes sense from a security standpoint.

  • Preview Plugin

    NodeBB Plugins
    14
    0 Votes
    14 Posts
    192 Views
    phenomlabP

    @huige Do you have any headers set which restrict the ability for sites to display the images?

  • 0 Votes
    13 Posts
    254 Views
    PitaJP

    @eeeee these are difference templates are sent in different ways. We've implemented the test to use the same infrastructure as when those emails are actually sent out. For instance, when you tell it to send a ban email, it actually goes to the banning code for sending an email out. Some of those cases don't report back an error, so we can't report it back to you. I think the "Test" template is one that reports errors correctly.

  • 0 Votes
    11 Posts
    345 Views
    N

    In fact, what we want to do is to embed a grafana dashboard into that section to show data from another app that we have for the user. Grafana was using iframe but this latest update changes that to an API.

  • 0 Votes
    8 Posts
    186 Views
    PitaJP

    @wnfdh2 yoyo need to move your plugin so it has a greater priority than the markdown plugin. Right now, the markdown is being parsed first so you already have the link when it comes to you.

  • 0 Votes
    8 Posts
    317 Views
    PitaJP

    There's are other reasons to have two separate NodeBB installs:

    you may want to run different sets of plugins uploaded files are stored within the NodeBB directory, best to keep those separate plugins like emoji and customize store files specific to a certain forum, and all plugin files are within the NodeBB folder
  • 0 Votes
    7 Posts
    111 Views
    julianJ

    @[email protected] @[email protected], @oplik0 and I took a closer look today and found the one place where IDs were not sent with Announce activities.

    Let me know if you find any other oddities πŸ™‚

  • Blog comments on external blog website

    Unsolved Technical Support
    6
    0 Votes
    6 Posts
    220 Views
    crazycellsC

    @julian said in Blog comments on external blog website:

    @crazycells ah sorry, I didn't respond because I wasn't sure...

    But I think it should be fine. Technically according to browser security policy, nodebb.org and community.nodebb.org are essentially different sites.

    So if you used a different domain the same restrictions apply, but the plugin should still work.

    Thank you very much, we will try it and report the outcome then...