New Libravatar addon
Just updated and finished the Libravatar addon for ~friendica . #Libravatar is a free and #federated avatar hosting service and can replace the Gravatar addon.
The Libravatar addon is based on the MIT licensed Services Libravatar PHP-library by Melissa Draper.
Please test and give feedback if somthing is wrong or not working correctly. Unfortunately I did not get libravatar running on my CentOS server to test the lookup on other instances than the central on. Had some problems to solve dependencies, but for Debian there are complete install instructions to set up your own Libravatar instance.
This pull request adds a new avatar addon for Libravatar. It can be used instead of gravatar to look up avatar images. Libravatar is a free and open replacement for gravatar. You can also host it on your own server if you like.
It also includes a che...
tony baldwin likes this.
Adding Libravatar support
I would like to add Libravatar lookup as an optional replacement for Gravatar in ~friendica . But I have some questions how it would be done best:
#Libravatar is a #federated #avatar hosting service. There is a central service comparable to #Gravatar, but you could also run your own instance of it. Unfortunately it is not so easy to set the hosting service up on your own server, but I would like to add support to query Libravatar. There exists a PHP class to query Libravatar that I would need to use. It is MIT licensed so that should be no problem to include. It requires PHP5.3 would that be a problem?
There is a config option to enable Gravatar support right now. So I thought if it would make sense to implement Gravatar support and then also Libravatar support as plugins?
I just looked shortly into the code and it seems that there is only 1 function I would need to hook into and this function is only used in 2 places. I have thought to rename the function gravatar_img($email) in include/network.php to a more generic avatar_img($email) and placing the hook inside that function that the plugin would use then.
I would also like to add options to the Gravatar plugin then to select the image-rating and default-image. Right now friendica's Gravatar implementation allows pg-rated images hardcoded. Libravatar only allows g-rated images and also only looks these up as a fallback at Gravatar. So no pg-rated images would be possible with the Libravatar plugin anymore as a downside. And a maybe bit slower lookup to find the right hosting service trough DNS or if it needs to fall back to Gravatar. But I don't think that should be a problem and the admin could anyway switch back to Gravatar-only lookup with the Gravatar plugin.
In include/Scrape.php the function gravatar_img() is also called once, but there is no check if $use_gravatar is enabled at all. Was there a special reason for that? Would it break if no avatar is returned?
How would a migration work? Friendica core and the addons would need to be updated at the same time and then there should be an update function that checks if $use_gravatar was enabled before and then enable the Gravatar plugin? Would that work somehow automatically? What if someone forgets to update the addons at the same time?
What would be the right way to check that only one of these two plugins is loaded at any time?
Would like to hear your comments about how this should be implemented in a correct way.
Thank you very much!
I wonder how many more #Friendica instances are out there who haven't made their presence known, not because they are not federating (ie. in private mode), rather because they chose not to list themselves in the global-public directory.
If no user choose to get listed in the global-public directory, no one will know they exist until someone reshare one of their post by well-connected federated users or their friends (of friends), or they post in a public group with federated members.
The media <span style="text-decoration: line-through;">should</span> must understand that concept before they assume Friendica (or any other #DDFON ) only have few users and/or few instances/nodes/pods. Because in the #decentralized, #distributed, #federated, #open, #social network world, it is not about numbers, it is about #freedom, #ownership, and #privacy.
#socnet
Mike Macgirvin
in reply to Klaus Weidenbach • •We can always fall back on our "default person" images if no avatar plugins are enabled. So as long as after the hook call one looks to see if they've got an image and uses the fallback image if nothing was returned, you can safely turn both into plugins and not worry about upgrades. I don't think anybody is passionate about gravatar so existing sites which use it wouldn't be horribly inconvenienced if it stopped working.
Since we can only return one image, you might consider what would happen if gravatar and libravatar are both installed. Perhaps a flag in the hook array that says an image has been found. The plugins would check and only get an image if no image had yet been found.
We don't require php 5.3, so I think as a plugin it should fail to install (with a notice() message) if 5.3 or greater isn't available. Except this might be hard to implement, because we'll keep trying to install it on every web access. I think instead it should probably install but not work, and provide a log message whenever the "get_gravatar/image" function is called if 5.3 isn't there. And also put the 5.3 requirement in the plugin description.
g rated is fine - we just don't want porn avatars if we have a choice.
In Scrape.php - yes it should check if gravatar is allowed. That was an oversight.
I don't care about the hardwired options really (though rating is nice) - gravatar also provides a choice of default fall-back choices, and I chose a random kaleidoscope pattern. But our default person fallback should work there as well, and would be the right choice if you need to set a flag that an image was found or not.
Klaus Weidenbach
in reply to Klaus Weidenbach • •Could you review this and see if it fits to the greater design of friendica and tell me if I need to change something.
When this is working I will create the Libravatar plugin.
Mike Macgirvin
in reply to Klaus Weidenbach • •