ADC Search Types
July 12, 2010 Leave a comment
Search in both ADC and NMDC has already described in great detail in various older posts of this blog. Among those the most important for us now is the one describing the difference of search between ADC and NMDC protocol, mostly the part that tells us how filtering for file types differ in ADC.
In short, when you filter your searches by file types in ADC the big difference (and advantage) is that its you (the sender) who specify what types you want in the result list by sending a file extension list. As written in the posts linked above the old NMDC way leaves up to others (the responders) to decide what file extensions belong to a certain file type you choose to filter by when you do a search. In NMDC predefined file extensions cannot be modified, they are hardcoded to the clients and actually they even differ client by client, version by version. In NMDC the five existing file type categories are predefined and hardcoded as well.
In ADC, the file extension list used to filter search results can be sent by EX parameters of the SCH command. This feature is in the ADC protocol specification for a very long time. Even the code that responsible for proper responding (results filtering) to the EX parameters are implemented long ago in DC++ and its derivative clients. However the ability of the actual use of this filtering feature for searches in ADC hubs had been missing from DC++ until the release of version 0.770. In older versions selecting a search type filter (other than TTH and Directory) had no effect in ADC hubs.
Maybe this was the last missing feature whose absence have put users of ADC hubs into a slight disadvantage over NMDC users so it was really time to patch this last hole and implement user configurable search types for ADC searches in DC++. The new function is added in a compatible way so it retains the behaviour for searches in NMDC hubs while it allows to use even a custom defined search type to filter results of ADC searches.
To make the user’s life easier there are 5 predefined search types to ADC searches (corresponding to the NMDC ones) as well. But opposite to the NMDC ones, ADC types are fully configurable and extensible with custom defined groups. There’s a new pane in Settings dialog of DC++ where you can add, modify or delete your custom search types or even modify the extension list of prefefined types as you wish. Currently predefined ADC types cannot be renamed or deleted.
In the Search window of DC++ you’ll see all the predefined and custom search types listed in the File Types combobox regardless of what type of hubs you’re logged on. You can do searches for both hub type parallel as before, however, there’s no change of behaviour for NMDC hubs only for ADC ones:
- Selecting a predefined search type will filter results from ADC hubs according the search type configuration and will work the same old way for results from NMDC hubs (what you see is what you get from responder clients)
- Selecting a custom search type will filter results from ADC hubs according the search type configuration as well and it has no effect on results from NMDC hubs (behaves the same as ‘Any’ type).