Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eldimious/network-avatar-picker
A npm module that returns user's social network avatar. Supported providers: facebook, instagram, twitter, tumblr, vimeo, github, youtube and gmail
https://github.com/eldimious/network-avatar-picker
avatar avatar-generator avatar-service buffer facebook github image instagram node-module nodejs npm-module profile-image profile-picture social-network tumblr twitter user-avatar username vimeo youtube
Last synced: 5 days ago
JSON representation
A npm module that returns user's social network avatar. Supported providers: facebook, instagram, twitter, tumblr, vimeo, github, youtube and gmail
- Host: GitHub
- URL: https://github.com/eldimious/network-avatar-picker
- Owner: eldimious
- License: apache-2.0
- Created: 2017-09-22T10:29:16.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-01-24T08:53:25.000Z (almost 2 years ago)
- Last Synced: 2024-10-17T03:58:05.329Z (19 days ago)
- Topics: avatar, avatar-generator, avatar-service, buffer, facebook, github, image, instagram, node-module, nodejs, npm-module, profile-image, profile-picture, social-network, tumblr, twitter, user-avatar, username, vimeo, youtube
- Language: JavaScript
- Homepage:
- Size: 1.34 MB
- Stars: 96
- Watchers: 4
- Forks: 4
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# network-avatar-picker
> A npm module that returns a user's avatar from his social networks as Buffer or as URL. You can choose among Facebook, Twitter, Instagram, Tumblr, Vimeo, Github, Gmail and Youtube provider. Then, you just need to pass a username **without the need of token or API keys** and retrieve user's social network profile picture!
[![npm version](https://badge.fury.io/js/network-avatar-picker.svg)](https://badge.fury.io/js/network-avatar-picker) [![Build Status](https://travis-ci.org/eldimious/network-avatar-picker.svg?branch=master)](https://travis-ci.org/eldimious/network-avatar-picker) [![Coverage Status](https://coveralls.io/repos/github/eldimious/network-avatar-picker/badge.svg?branch=master)](https://coveralls.io/github/eldimious/network-avatar-picker?branch=master)
## Supported Providers
- Github
- Gmail
- Tumblr
- Vimeo
- Youtube## Getting Started
### Installing
First, install `network-avatar-picker` as a dependency:
```shell
npm install --save network-avatar-picker
```### Usage
#### Basic configuration
You should require the dependency in order to be able use it:
```javascript
const NetworkAvatarPicker = require('network-avatar-picker');
const avatarPicker = new NetworkAvatarPicker();
```#### Cache configuration using Redis
In **1.4.0** we have introduced support to cache results with Redis! Just pass redis config as param to the NetworkAvatarPicker and it will create a new redis client. Then, we will store the images and avatar's URL to redis.
```javascript
const NetworkAvatarPicker = require('network-avatar-picker');
const avatarPicker = new NetworkAvatarPicker({
redis: {
host: '127.0.0.1', // required
port: '6379', // required
password : 'your password', // optional: replace with your password
ttl: 3600, // optional: Add your expiration caching time in seconds. Default value: 3600
}
});
```This way we create a local Redis client with expiration caching time 3600sec.
### Methods
Use the `async` methods of the `avatarPicker` instance to fetch user avatars:
A) **getAvatar**: Fetch avatar image as **Buffer**
- `avatarPicker.facebook.getAvatar(username)`
- `avatarPicker.twitter.getAvatar(username)`
- `avatarPicker.instagram.getAvatar(username)`
- `avatarPicker.tumblr.getAvatar(username)`
- `avatarPicker.vimeo.getAvatar(username)`
- `avatarPicker.github.getAvatar(username)`
- `avatarPicker.youtube.getAvatar(username)`
- `avatarPicker.gmail.getAvatar(email)`B) **getAvatarUrl**: Fetch avatar image as **URL**
- `avatarPicker.facebook.getAvatarUrl(username)`
- `avatarPicker.twitter.getAvatarUrl(username)`
- `avatarPicker.instagram.getAvatarUrl(username)`
- `avatarPicker.tumblr.getAvatarUrl(username)`
- `avatarPicker.vimeo.getAvatarUrl(username)`
- `avatarPicker.github.getAvatarUrl(username)`
- `avatarPicker.youtube.getAvatarUrl(username)`
- `avatarPicker.gmail.getAvatarUrl(email)`## Examples
1) Fetch **twitter's** cnn user profile picture:
**Buffer**:
```JavaScript
(async () => {
try {
const res = await avatarPicker.twitter.getAvatar('cnn');
} catch (e) {
// Deal with the fact the chain failed
}
})();
```**URL**:
```JavaScript
(async () => {
try {
const res = await avatarPicker.twitter.getAvatarUrl('cnn');
} catch (e) {
// Deal with the fact the chain failed
}
})();
```2) Fetch **facebook's** zuck user profile picture:
**Buffer**:
```JavaScript
(async () => {
try {
const res = await avatarPicker.facebook.getAvatar('zuck');
} catch (e) {
// Deal with the fact the chain failed
}
})();
```**URL**:
```JavaScript
(async () => {
try {
const res = await avatarPicker.facebook.getAvatarUrl('zuck');
} catch (e) {
// Deal with the fact the chain failed
}
})();
```3) Fetch **instagram's** cnn user profile picture:
**Buffer**:
```JavaScript
(async () => {
try {
const res = await avatarPicker.instagram.getAvatar('cnn');
} catch (e) {
// Deal with the fact the chain failed
}
})();
```**URL**:
```JavaScript
(async () => {
try {
const res = await avatarPicker.instagram.getAvatarUrl('cnn');
} catch (e) {
// Deal with the fact the chain failed
}
})();
```## Running the tests
In order to run tests you have to run:
```shell
npm run tests
```## Support Me
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/Y8Y797KCA)
## Show your support
Give a ⭐️ if this project helped you!