Giter Club home page Giter Club logo

Comments (5)

 avatar commented on July 21, 2024 1

Tupperbox does this by adding a \u200a (invisible space) character between the first and second character of the webhook username.
This is now simpler to implement because of the LastMessageCache. Maybe worth looking into, not sure if this is still an issue?

from pluralkit.

xSke avatar xSke commented on July 21, 2024

Currently unsure how to effectively solve this. I know adding a space "breaks" the grouping but I'm not sure what state to keep to do this properly. "if a proxy has the same name as the last message proxied in the same channel but different member id" doesn't work because that a) breaks once, then unbreaks, which will break the group twice, and b) not work if you're interrupted by an unproxied message.

from pluralkit.

specifictionally avatar specifictionally commented on July 21, 2024

I think the stateful idea you had is almost there? You keep track of the name and userid of the last proxied message, as well as whether or not you added a space. Then when the new proxied message has the same name:

  • if it's by the same user, add the same suffix as before (space or nothing)
  • if it's by a different user, add the opposite suffix (nothing or space)

If you're interrupted by an unproxied message this might add a space when it doesn't need to, but that doesn't cause any problems. If the same person proxies the same name several times in a row, it'll either add the space to all of the messages or none of them.

from pluralkit.

xSke avatar xSke commented on July 21, 2024

Yeah, that makes sense. That'd require me to refactor proxy.py into actually holding state somewhere rather than just being a few free functions, and that's something I'm kind of reluctant to do, but I'll work it out :)

from pluralkit.

 avatar commented on July 21, 2024

Closed in 25f96dd.

from pluralkit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.