whowas: return all responses from the server#372
whowas: return all responses from the server#372ItsOnlyBinary merged 6 commits intokiwiirc:masterfrom
Conversation
Whowas results are a list of all known RPL_WHOWASUSER replies.
Return the most recent event as the top level and add the
rest to a `historical` field as an array.
Example:
```
:inspircd.server.example 314 val someone ident3 127.0.0.1 * :Realname
:inspircd.server.example 312 val someone My.Little.Server :Sun Mar 20 2022 10:59:26
:inspircd.server.example 314 val someone ident2 127.0.0.1 * :Realname
:inspircd.server.example 312 val someone My.Little.Server :Sun Mar 20 2022 10:59:16
:inspircd.server.example 314 val someone ident1 127.0.0.1 * :Realname
:inspircd.server.example 312 val someone My.Little.Server :Sun Mar 19 2022 9:23:06
:inspircd.server.example 369 val someone :End of WHOWAS
whowas {
nick: 'someone',
ident: 'ident3',
hostname: '127.0.0.1',
real_name: 'Realname',
server: 'My.Little.Server',
server_info: 'Sun Mar 20 2022 10:59:26',
historical: [
{
nick: 'someone',
ident: 'ident2',
hostname: '127.0.0.1',
real_name: 'Realname',
server: 'My.Little.Server',
server_info: 'Sun Mar 20 2022 10:59:16'
},
{
nick: 'someone',
ident: 'ident1',
hostname: '127.0.0.1',
real_name: 'Realname',
server: 'My.Little.Server',
server_info: 'Sun Mar 19 2022 9:23:06'
}
]
}
```
Fixes: kiwiirc#371
|
@ItsOnlyBinary something along those lines? Or what did you have in mind? I tried to do it with only one cache key, but it gets rather hairy as we don't know which numeric replies we get in between responses... so in the end I opted for the second key, that we can use as a scratch space. |
|
Why not add That way it's still backwards compatible, as required here, but anybody parsing historical data can just loop over the (I don't have anything to do with this project. I just consume it, and was looking through issues) |
|
not sure if duplicating the info really benefits you much? But yeah you have a point. |
Return all results in event.historical
ba234cf to
b9d4fd7
Compare
Whowas results are a list of all known RPL_WHOWASUSER replies. Return the most recent event as the top level and add the rest to a
historicalfield as an array.Example:
Fixes: #371