Giter VIP home page Giter VIP logo

imgbox-js's Introduction

imgbox-js ๐Ÿ—ณ๏ธ

Code Quality Score Code Quality Score GitHub license npm version

Lightweight IMGBOX API. Unlimited free hosting for images ๐Ÿ—ณ๏ธ.

Installation

npm install imgbox-js

Import

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

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));

imgbox('my_folder/img.jpg')
    .then(res => console.log(res));
  • Multiple URL/Path
const images = [
    'https://picsum.photos/200/300',
    'my_folder/img.jpg',
    'my_folder/photo.png'
]

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));

const image2 = { source: 'my_folder/photo.png', filename: 'Photo from Local Path' }
imgbox(image2)
    .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: 'img.jpg', filename: 'Lorem Photos from Path' }

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

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

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' },
    { source: 'img.jpg', filename: 'Lorem Photos from Path' }
]

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));

imgbox('img.jpg', 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

imgbox-js's People

Contributors

arifvn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

imgbox-js's Issues

CDN Question

Hi, how can I import via CDN this imgbox-js ?

error upload

[
  {
    error: '#<ActiveModel::Errors:0x007ff3e6bbb048>',
    error_code: 999,
    url: '',
    thumbnail_url: '',
    delete_url: '',
    delete_type: 'DELETE',
    name: 'img.jpg',
    size: 68728
  }
]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.