For quite a long time, Drupal has had several "friends APIs". Buddylist, Buddylist2, Friend, Ajax Friend, User Relationships, FriendList, etc.
This made it _really_ hard for module developers to just ask: "are user A and user B friends...?" Each module had a different way of answering that question, and with different outcomes.
This API is meant to be the answer to this problem.
It provides a general API which answers the most important questions about user relations. Who are user A's friends? Is user A friends with User B? What elation types are available?
Right now, the API interfaces with FriendList as a demonstration. However, it has a _simple_ plugin architecture, so that any API can be used.
This module allows you to log your user's activity.
The module itself is tiny: it's basically a glue module between:
* A database structure that holds uid, uid_target, nid_target and logged_message. Only the logged message is mandatory. A message might not have a target nid or a target uid.
* The Views module, used to create blocks with the db structure
* The Rules module, used to intercept module's events and log things onto the activity log table
This module is amazingly simple and yet amazingly powerful. Here are the advantages of using a glue module rather than a specialised module:
* No need for a new API. A lot of modules already interface themselves with Rules. The ones that don't... should!
* The messages are very, very easy to customise. The Token module gives you unthinkable power
* The integration with Views means that the module's abilities will grow along with Views
What is missing? At the moment, what is missing is a set of predefined Views (to show the data) and Actions (to log common events). I am expecting the community to contribute them.
What is Friendlist?
Friendlist is a Drupal 6 module that will give your site the ability to create relationships between your users.
It has:
* A clear, well defined API which works separately and independently of any interface module. The API is mainly used to establish a relationship, delete a relationship and check the status of a relationship
* A UI module which will allow you to use the APIi at a basic (but satisfactory) level.
Other modules available
The other modules available in Drupal right now are:
* User Relationships. This module has been abandoned by its author. The separation. The code had some good ideas, but it would have needed far too much work to fix it. Also, it tried to do too much without using other Drupal modules
* Buddylist. Only available for Drupal 5. No separation between the module and the ApI. Not actively maintained. It never made out of its beta version.
* Buddylist2. Still very incomplete. The source uses some ideas and some code from User Relationships. Some of the code integration is odd.
* Friend. It does a specific task well, but its API is not clearly defined nor documented.