Skip to content

Render Patchwork-Classic/patchfoo-style mentions

Charles E. Lehner requested to merge cel/manyverse:mentions into master

Render feed mentions made by Patchwork Classic and patchfoo.

These mentions consist of an ASCII name beginning with @, mapping to a feed id in the mentions array via a link object with matching name property.

References regarding the regex: %eR1NloNHgdoX4h+khZk+LJtsAAsymIGwRvtR6/csNeo=.sha256, %NM8tXGBBDKKcpRbbyd/5uN1p/2OtBMFDylLMDPGoq8Q=.sha256 (from @cel)

Example message

Markdown
## Vote for SSB projects to be funded

- %cBoVhpkwrQLZa7YVQ9zbjVNE4Jpfg3Sk7Tvs5As7orc=.sha256 - Handshake Grants Community Vote, Budget, and Disbursement Schedule (2nd Batch) [@elavoie]
  - %DjS1mvvnktfiYYuFpvWROxdGoW7UBpf8E3rjC5go/p4=.sha256 - Improving Patchfox (2nd Phase), lead by @SoapDog
  - %EB23M3gZ15C/EMI6F/E6T0rZjoeXGcXuJdxzncSP4e8=.sha256 - MadeFromScratch, Recipes and Inventory Management on SSB by @nanomonkey
  - %zk2gaso2pReUrg81fFEzKD2zg+OEv9o6V3qKTlCHI78=.sha256 - PeachPub, led by @glyph, @cblgh, and @notplants

Note: the square-bracketed mention in this message, [@elavoie], is not rendered at all in Manyverse currently - but this MR does not address that.

JSON
{
  "key": "%toP9ctnkf4gTq5olbI/PQgeqfSf7Wg0an5HKeskpidk=.sha256",
  "value": {
    "previous": "%p+MXUcl1kKIMaDyb7jiMZPlW87OQg7JPO7PUjlT/u80=.sha256",
    "sequence": 17075,
    "author": "@f/6sQ6d2CMxRUhLpspgGIulDxDCwYD7DzFzPNr7u5AU=.ed25519",
    "timestamp": 1635543664525,
    "hash": "sha256",
    "content": {
      "type": "post",
      "text": "## Vote for SSB projects to be funded\n\n- %cBoVhpkwrQLZa7YVQ9zbjVNE4Jpfg3Sk7Tvs5As7orc=.sha256 - Handshake Grants Community Vote, Budget, and Disbursement Schedule (2nd Batch) [@elavoie]\n  - %DjS1mvvnktfiYYuFpvWROxdGoW7UBpf8E3rjC5go/p4=.sha256 - Improving Patchfox (2nd Phase), lead by @SoapDog\n  - %EB23M3gZ15C/EMI6F/E6T0rZjoeXGcXuJdxzncSP4e8=.sha256 - MadeFromScratch, Recipes and Inventory Management on SSB by @nanomonkey\n  - %zk2gaso2pReUrg81fFEzKD2zg+OEv9o6V3qKTlCHI78=.sha256 - PeachPub, led by @glyph, @cblgh, and @notplants\n\nLike/upvote the above linked messages to vote for each project.\n\nVoting period ends in ~2 days.",
      "mentions": [
        {
          "link": "%cBoVhpkwrQLZa7YVQ9zbjVNE4Jpfg3Sk7Tvs5As7orc=.sha256"
        },
        {
          "link": "@IgYpd+tCtXnlE2tYX/8rR2AGt+P8svC98WH3MdYAa8Y=.ed25519",
          "name": "elavoie"
        },
        {
          "link": "%DjS1mvvnktfiYYuFpvWROxdGoW7UBpf8E3rjC5go/p4=.sha256"
        },
        {
          "link": "@qv10rF4IsmxRZb7g5ekJ33EakYBpdrmV/vtP1ij5BS4=.ed25519",
          "name": "SoapDog"
        },
        {
          "link": "%EB23M3gZ15C/EMI6F/E6T0rZjoeXGcXuJdxzncSP4e8=.sha256"
        },
        {
          "link": "@+D0ku/LReK6kqd3PSrcVCfbLYbDtTmS4Bd21rqhpYNA=.ed25519",
          "name": "nanomonkey"
        },
        {
          "link": "%zk2gaso2pReUrg81fFEzKD2zg+OEv9o6V3qKTlCHI78=.sha256"
        },
        {
          "link": "@HEqy940T6uB+T+d9Jaa58aNfRzLx9eRWqkZljBmnkmk=.ed25519",
          "name": "glyph"
        },
        {
          "link": "@C6fAmdXgqTDbmZGAohUaYuyKdz3m6GBoLLtml3fUn+o=.ed25519",
          "name": "cblgh"
        },
        {
          "link": "@5Pt3dKy2HTJ0mWuS78oIiklIX0gBz6BTfEnXsbvke9c=.ed25519",
          "name": "notplants"
        }
      ]
    },
    "signature": "dQRXLKB6CY4iFenPLuHj6UN03TumKF6YI6gp0ez66eHGYULggOrvEegvIMKRuvyPLmQ9LINfj/dRjAMaceg9CQ==.sig.ed25519"
  }
}
Rendered (Before)

2021-12-31T21-24-41-806x489

Rendered (After)

2021-12-31T21-22-25-805x490

Merge request reports