kvirc / KVIrc

The KVIrc IRC Client
http://www.kvirc.net/
GNU General Public License v2.0
244 stars 74 forks source link

Manually reattach message history to client that pinged out with an alt nick #2080

Open Xaekai opened 8 years ago

Xaekai commented 8 years ago

Please excuse my blindness if this feature already exists, but I couldn't seem to find it. Consider it a feature request otherwise.

Example: You are talking to "personA" in PM "personA" nicks to "personA|afk" "personA|afk" pings out "personA" reconnects later

You now have a dangling history to "personA|afk" It gets automerged if they happen to nick afk again, but if they alted to something uncommon like "personA|roadtrip" you're pretty much stuck.

un1versal commented 8 years ago

mmm this seem to work here I think, and is enabled by default, so please check it on for you...

https://github.com/kvirc/KVIrc/blob/master/src/kvirc/kernel/KviOptions.cpp#L184-L184

Option is called /option boolEnableQueryTracing 1

capture

Xaekai commented 8 years ago

Yes it is on, as by default. Since you're pointing it out, I would presume that's responsible for why if they change to the same alt nick again the conversation history gets merged. But that requires either waiting for them to alt or asking them (a strange request to be sure, e.g. "Hey bro, can you set your nick to 'personA|groceryshopping' again?") I'm looking for a more self-service solution.

un1versal commented 8 years ago

Self service is script it yourself or maybe try a already existing script.

for instance https://github.com/kvirc/kvirc-scripts/tree/master/ExScripts-NickTracker

un1versal commented 8 years ago

ping @Xaekai did you try the script above?

FYI after giving this some thought, this goes above and beyond what core client should do and in my opinion should remain domain of addons and scripts.

@staticfox what do you think?

Xaekai commented 8 years ago

The script does not do what I asked.

It also gets identification wrong most of the time. I actually need to remove it.

un1versal commented 8 years ago

We will see if @staticfox actually replies.

staticfox commented 8 years ago

KVIrc does not keep track of used nicks, rather, it tries to align queries against nicks when they return or change their nick or join with said nick. No other information is used, as a nick name is the single point of reference in IRC that can be unique to the user. (e.g. people can share hosts, accounts, etc.) So outside of storing nicks in a nick database for long term lookup, this does not seem possible. As @un1versal, scripts would most likely be the best way to go about this. The only other alternative I can think of without storing a huge amount of nick names in a LTHW (long term who was) database would be manually sticking together queries through the GUI.

Some points to make on an LTHW database could be to store a max (user set) amount of nick data in a storage container, but then that makes collisions rather volatile as multiple users can connect to the same nicks which makes the logic for this more tricky. As a core feature request, this is a maybe due to the logic involved, and the amount of new options that would have to be implemented. Solely because if we store every nick, then several botnets later and you OOM.

For now, I vote on scripts.

un1versal commented 8 years ago

@extiostorm can you fix your script and add this feature?

extioStorm commented 8 years ago

to do this I would need a scriptable command to merge the message history according to the nick. is there such a command? also, username matching is why it's misidentified users. can easily be disable with /nicktracker and disable username tracking.