1.2.0 β€’ Published 2 years ago

imgbox-js-browser v1.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

imgbox-js-browser πŸ—³οΈ

A fork from the original imgbox-js project.

Lightweight IMGBOX API. Unlimited free hosting for images ON THE BROWSER! πŸ—³οΈ .

Installation

npm install imgbox-js-browser

Import

import { imgbox } from 'imgbox-js-browser'
// or
const imgbox = require('imgbox-js-browser')

Usage

  • Pattern
imgbox(images, options)
    .then(res => console.log(res))

// images is mandatory
// options is optional
  • Singe URL/Path
imgbox('https://picsum.photos/200/300')
    .then(res => console.log(res));
  • Multiple URL/Path
const images = [
    'https://picsum.photos/200/300',
    'https://picsum.photos/200/300',
    'https://picsum.photos/200/300'
]

imgbox(images)
    .then(res => console.log(res));
  • Singe URL/Path + Filename
const image1 = { source: 'https://picsum.photos/200/300', filename: 'Photo from URL' }
imgbox(image1)
    .then(res => console.log(res));
  • Multiple URL/Path + Filename
const image1 = { source: 'https://picsum.photos/200/300', filename: 'Lorem Photos from URL' }
const image2 = { source: 'https://picsum.photos/200/300', filename: 'Lorem Photos from URL' }

imgbox([ image1, image2 ])
    .then(res => console.log(res));

  • Images + Options
const images = [
    'https://picsum.photos/200/300',
    'https://picsum.photos/200/300'
]

const options = {
    auth_cookie: 'nxIksl91sXxS8ls1', // default null 
    album_title: 'Lorem Photos Album', // default null 
    content_type: 'safe', // default 'safe' 
    thumbnail_size: '350c', // default '100c'
    comments_enabled: false, // default false 
    logger: true // default true 
}

imgbox(images, options)
    .then(res => console.log(res));

Note : πŸš€ | options | type | description | |------------------ |--------- |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | auth_cookie | string | As default images is uploaded as a guest. To get cookie and upload as logged in user jump here | | album_title | string | Title of gallery/album | | content_type | string | 'safe'= family safe content 'adult'= adult content |
| thumbnail_size | string | c = thumbnail will be cropped r = thumbnail will be resized '100c', '150c', '200c', '250c', '300c', '350c', '500c', '800c' '100r', '150r', '200r', '250r', '300r', '350r', '500r', '800r' | | comments_enabled | boolean | enable/disable comment section for particular image/gallery true, false | | logger | boolean | enable/disable request log true, false |

  • Multiple URL/Path + Filename + Create Album
const auth_cookie = '_imgbox_session=ZmtjTFR...'

const images = [
    { source: 'https://picsum.photos/200/300', filename: 'Lorem Photos from URL' },
    { source: 'https://picsum.photos/200', filename: 'Lorem Photos from URL' },
    { source: 'https://picsum.photos/300', filename: 'Lorem Photos from URL' }
]

const options = {
    auth_cookie: auth_cookie,
    album_title: 'Lorem Photos Album',
    content_type: 'safe',
    thumbnail_size: '350c',
    comments_enabled: false,
    logger: false
}

imgbox(images, options).then(res => console.log(res));
  • URL/Path + Create Album
const options = {
    album_title: 'My Album',
    content_type: 'safe',
    thumbnail_size: '350r',
    comments_enabled: 1
}

imgbox('https://picsum.photos/200', options)
    .then(res => console.log(res));

  • Get Images
const auth_cookie = '_imgbox_session=ZmtjTFR...'

const options = {
    auth_cookie: auth_cookie, // mandatory
    scope: 'all', // optional, default 'all'
    page: 1, // optional, default 1
    logger: true // optional, default true
}

imgbox
    .getImages(options)
    .then(res => console.log(res));

Note : πŸš€ | options | type | description | |------------ |--------- |-------------------------------------------------------------------------------------------- | | auth_cookie | string | this is mandatory to get access to your images. | | scope | string | 'all'= get all images from your account 'unbound'= get images that belong to a gallery | | page | number | pagination, return empty array [] if images are empty in particular page | | logger | boolean | enable/disable request log true, false |

  • Get Galleries
const options = {
    auth_cookie: '_imgbox_session=ZmtjTFR...', // mandatory
    page: 1, // optional, default 1
    logger: true,  // optional, default true
    order_by: 'updated'  // optional, default 'updated'
}

// get galleries along with it's images from your account
imgbox
    .getGalleries(options)
    .then(res => console.log(res));

Note : πŸš€ order_by is string. Possible values : 'updated' or 'created' or 'title'


  • Delete Images
// you can pass ID or Image's URL
// as Array 
const images = [
    'KEqFMTKX',
    'https://imgbox.com/xxXsDvUv'
]

// delete images from your account
imgbox
    .deleteImages(images, { auth_cookie: '_imgbox_session=ZmtjTFR...' })
    .then(res => console.log(res));
  • Delete Gallery
// url got from upload images + create album
const gallery_edit_url = 'https://imgbox.com/gallery/edit/zTFrSKPFF4/JR0hdNWKEAeChDFi'

// delete as logged in user
imgbox
    .deleteGallery(gallery_edit_url, { auth_cookie: '_imgbox_session=ZmtjTFR...' })
    .then(res => console.log(res

  • Enable/Disable Gallery Comment
// url got from upload images + create album
const gallery_edit_url = 'https://imgbox.com/gallery/edit/zTFrSKPFF4/JR0hdNWKEAeChDFi'

imgbox
    .updateComment(gallery_edit_url, { comments_enabled: true })
    .then(res => console.log(res));

Get Login Cookie

Unfortunately, there's no way to get Http Only Cookie by just using Javascript. IMGBOX does not provide such as api_token either. So, to get access it's protected route we need to open up the browser and grab the Cookie after we are logged in. get_login_cookie.jpg

// then you can use it whenever you dealing with this API, eg.
const auth_cookie = '_imgbox_session=ZmtjTFR...'

Contributing

Pull requests are welcome.

License

MIT