THIS IS NOT FINAL... If you have any suggestions please post them on the discussion page
The recommendation system is thought to enhance the filesharing experience. While most ppl do not offer their list of shared files or do not want to show all files on it or even want to promote files they aren't sharing any longer recommendations will provide a useful addition.
The current recommendation system includes:
- manual adding of currently shared/downloading files, search results and ed2k-links to the recommendation list
- possibility to manually (de-)select if a recommendation gets shared
- AICH hash support
- comment support
- rating support
How it works
Recommendations are kept in a separate editable list (preferably with a listctrl in sharedfileswnd). The recommendation support has to be announced via ModProt and uses 2 bits. Bit number 1 shows if recommendations are supported. This is evaluated in case someone wants to request our list of recommendations and in case we want to request the list from someone. Bit number 2 shows if some recommendations (at least one) are available. This is evaluated in case we want to request the list from someone. (this is rather cosmetic but should save some overhead).
The request and answer are done via one opcode, if the received packet has "zero" size then it's a request, otherwise it's an answer. I'd prefere to use
#define OP_RECOMMENDATIONS 0x52 //'R'
for that packet.