File information in searches
August 6, 2007 Leave a comment
A frequently requested feature in DC++ is the ability to search for files, and also specify (and get back) certain information about the actual file. (Normally called “metadata”.)
This information is eg the ID3 tag in MP3 files or the author of a Microsoft Word document. That is, information about a file, that isn’t really the content of the file.
The request is quite fine and valid, but it’s going to be quite difficult to implement in a good way.
In NMDC, you can’t send “ohh, by the way, the ID3 tag is this and that” when you’re about to send a search reply. If you’d wanted to do that, you’d have to write a totally new command, since no other client would probably understand your normal search reply.
In ADC, you could add a new parameter to the search, but it’s going to be ugly. If you add a new parameter for ID3 tags, you’re opening yourself up to the query “how about authors in Microsoft Word documents, then?” So, you’ll have to add a parameter for that. And for that other file information. Etc. Etc. Basically, ending up in a huge sea of annoying parameters.
Yes, you could add a new command or parameter that will say “send me everything about the file”. That’s going to a huge overhead in traffic. The hub is going to get so annoyed by the vast amount of bandwidth required to broadcast, that they’re just simply going to kick the clients supporting this. (Yeah, yeah. That’s up to the hubs, sure. But let us face it. Most hubs think of user count; This is going to have a severe impact on that.)
Yes, it’s quite a nifty feature. Yes, I’d like for it to happen with DC(++), too. But likely, the implementation is going to be quite ugly.
(Note: I have no idea how other P2P-networks do it, but I’m sure it’s not so damaging there. Why? Because they’re most likely not centralized, as DC is.)