Skip to content

Instantly share code, notes, and snippets.

@eclipseo
Last active August 20, 2022 19:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eclipseo/aac670755fab9d8bbe658ad353aabd5a to your computer and use it in GitHub Desktop.
Save eclipseo/aac670755fab9d8bbe658ad353aabd5a to your computer and use it in GitHub Desktop.
!function(a){var b="object"==typeof self&&self.self==self&&self||"object"==typeof global&&global.global==global&&global;"function"==typeof define&&define.amd?define(["exports"],function(c){b.Backbone=a(b,c)}):"undefined"!=typeof exports?a(b,exports):b.Imgur=a(b,{})}(function(a,b){var c=function(a){return this.account=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username});return a.request("get","account/{username}",c)},this.galleryFavorites=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username,page:b.page||0,sort:b.sort||"newest"});return a.request("get","account/{username}/gallery_favorites/{page}/{sort}",c)},this.favorites=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username});return a.request("get","account/{username}/favorites",c)},this.submissions=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username,page:b.page||0});return a.request("get","account/{username}/submissions/{page}",c)},this.settings=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username});return a.request("get","account/{username}/settings",c)},this.changeSettings=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username,data:b.data});return a.request("post","account/{username}/settings",c)},this.galleryProfile=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username});return a.request("get","account/{username}/gallery_profile",c)},this.verifyEmail=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username});return a.request("get","account/{username}/verifyemail",c)},this.sendVerificationEmail=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username});return a.request("post","account/{username}/verifyemail",c)},this.albums=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username,page:b.page||0});return a.request("get","account/{username}/albums/{page}",c)},this.album=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");if(!b.hasOwnProperty("id"))throw new Error("id required");var c=Object.assign(b,{username:b.username,id:b.id});return a.request("get","account/{username}/album/{id}",c)},this.albumIds=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username,page:b.page||0});return a.request("get","account/{username}/albums/ids/{page}",c)},this.albumCount=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username});return a.request("get","account/{username}/albums/acount",c)},this.deleteAlbum=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");if(!b.hasOwnProperty("id"))throw new Error("id required");var c=Object.assign(b,{username:b.username,id:b.id});return a.request("delete","account/{username}/album/{id}",c)},this.comments=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username,sort:b.sort||"newest",page:b.page||0});return a.request("get","account/{username}/comments/{sort}/{page}",c)},this.comment=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");if(!b.hasOwnProperty("id"))throw new Error("id required");var c=Object.assign(b,{username:b.username,id:b.id});return a.request("get","account/{username}/comment/{id}",c)},this.commentIds=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username,sort:b.sort||"newest",page:b.page||0});return a.request("get","account/{username}/comments/ids/{sort}/{page}",c)},this.commentCount=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username});return a.request("get","account/{username}/comments/count",c)},this.deleteComment=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");if(!b.hasOwnProperty("id"))throw new Error("id required");var c=Object.assign(b,{username:b.username,id:b.id});return a.request("delete","account/{username}/comment/{id}",c)},this.images=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username,page:b.page||0});return a.request("get","account/{username}/images/{page}",c)},this.image=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");if(!b.hasOwnProperty("id"))throw new Error("id required");var c=Object.assign(b,{username:b.username,id:b.id});return a.request("get","account/{username}/image/{id}",c)},this.imageIds=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username,page:b.page||0});return a.request("get","account/{username}/images/ids/{page}",c)},this.imageCount=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username});return a.request("get","account/{username}/images/count",c)},this.deleteImage=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");if(!b.hasOwnProperty("deletehash"))throw new Error("id required");var c=Object.assign(b,{username:b.username,deletehash:b.deletehash});return a.request("get","account/{username}/image/{deletehash}",c)},this.replies=function(b){if(b=b||{},!b.hasOwnProperty("username"))throw new Error("username required");var c=Object.assign(b,{username:b.username,newReplies:b.newReplies||"true"});return a.request("get","account/{username}/notifications/replies?newReplies={newReplies}",c)},this},d=function(a){return this.album=function(b){if(b=b||{},!b.hasOwnProperty("id"))throw new Error("id required");var c=Object.assign(b,{id:b.id});return a.request("get","album/{id}",c)},this.images=function(b){if(b=b||{},!b.hasOwnProperty("id"))throw new Error("id required");var c=Object.assign(b,{id:b.id});return a.request("get","album/{id}/images",c)},this.image=function(b){if(b=b||{},!b.hasOwnProperty("album_id"))throw new Error("album_id required");if(!b.hasOwnProperty("image_id"))throw new Error("image_id required");var c=Object.assign(b,{album_id:b.album_id,image_id:b.image_id});return a.request("get","album/{album_id}/image/{image_id}",c)},this.create=function(b){b=b||{};var c=Object.assign(b,{data:b.data});return a.request("post","album",c)},this.update=function(b){if(b=b||{},!b.hasOwnProperty("id"))throw new Error("id required");var c=Object.assign(b,{id:b.id,data:b.data});return a.request("post","album/{id}",c)},this["delete"]=function(b){if(b=b||{},!b.hasOwnProperty("id"))throw new Error("album id required");var c=Object.assign(b,{id:b.id});return a.request("delete","album/{id}",c)},this.favorite=function(b){if(b=b||{},!b.hasOwnProperty("id"))throw new Error("id required");var c=Object.assign(b,{id:b.id});return a.request("post","album/{id}/favorite",c)},this.setImages=function(b){if(b=b||{},!b.hasOwnProperty("album_id"))throw new Error("album_id required");if(!b.hasOwnProperty("image_ids")||!Array.isArray(b.image_ids))throw new Error("array of image_ids required");var c=Object.assign(b,{album_id:b.album_id,data:{ids:b.image_ids.join(",")}});return a.request("post","album/{album_id}",c)},this.addImages=function(b){if(b=b||{},!b.hasOwnProperty("album_id"))throw new Error("album_id required");if(!b.hasOwnProperty("image_ids")||!Array.isArray(b.image_ids))throw new Error("array of image_ids required");var c=Object.assign(b,{album_id:b.album_id,data:{ids:b.image_ids.join(",")}});return a.request("put","album/{album_id}/add",c)},this.deleteImages=function(b){if(b=b||{},!b.hasOwnProperty("album_id"))throw new Error("album_id required");if(!b.hasOwnProperty("image_ids")||!Array.isArray(b.image_ids))throw new Error("array of image_ids required");var c=Object.assign(b,{album_id:b.album_id,data:{ids:b.image_ids.join(",")}});return a.request("delete","album/{album_id}/remove_images?"+JSON.stringify(c.data),c)},this},e=function(a){return this.image=function(b){if(b=b||{},!b.hasOwnProperty("id"))throw new Error("id required");var c=Object.assign(b,{id:b.id});return a.request("get","image/{id}",c)},this.upload=function(b){if(b=b||{},!b.hasOwnProperty("file"))throw new Error("file required, can be a binary file, base64 data or a URL");b.data=Object.assign(b.data,{image:b.file});var c=Object.assign(b,{data:b.data||{}});return a.request("post","image",c)},this["delete"]=function(b){if(b=b||{},!b.hasOwnProperty("id"))throw new Error("id required");var c=Object.assign(b,{id:b.id});return a.request("delete","image/{id}",c)},this.update=function(b){if(b=b||{},!b.hasOwnProperty("id"))throw new Error("id required");var c=Object.assign(b,{id:b.id,data:b.data});return a.request("post","image/{id}",c)},this.favorite=function(b){if(b=b||{},!b.hasOwnProperty("id"))throw new Error("id required");var c=Object.assign(b,{id:b.id});return a.request("post","image/{id}/favorite",c)},this},f=function(a){return this.getOauthUrl=function(){return"https://api.imgur.com/oauth2/authorize?client_id="+a.options.clientId+"&response_type=pin"},this.authorizeCallback=function(b){if(b=b||{},"undefined"==typeof b.pin||!b.pin)throw new Error("authorization code required");var c={data:{client_id:a.options.clientId,client_secret:a.options.clientSecret,grant_type:"pin",pin:b.pin}};return a.request("post","https://api.imgur.com/oauth2/token",c).then(function(a){return a.expiresAt=Math.round(Date.now()+1e3*a.expires_in),a})},this.refreshToken=function(b){if(b=b||{},"undefined"==typeof b.refreshToken||!b.refreshToken)throw new Error("No refresh token defined");var c={data:{client_id:a.options.clientId,client_secret:a.options.clientSecret,grant_type:"refresh_token",refresh_token:b.refreshToken}};return a.request("post","https://api.imgur.com/oauth2/token",c).then(function(a){return a.expiresAt=Math.round(Date.now()+1e3*a.expires_in),a})},this},g=function(a,b,c){if(c=c||{},"undefined"==typeof a||-1===["get","post","head","delete"].indexOf(a.toLowerCase()))throw new Error("no method specified or method isn\\\'t in [get, post, head, delete]");var d=new Headers({Accept:"application/json","Content-Type":"application/json",Authorization:"Client-ID "+this.options.clientId});"undefined"!=typeof this.options.access_token&&d.set("Authorization","Bearer "+this.options.access_token),"undefined"!=typeof c.access_token&&d.set("Authorization","Bearer "+c.access_token);var e={method:a,headers:d};("undefined"!=typeof c.data&&"get"!==a.toLowerCase()||"delete"!==a.toLowerCase())&&(e.body=JSON.stringify(c.data));for(var f in c)-1==["data","file","access_token"].indexOf(f)&&c.hasOwnProperty(f)&&(b=b.replace(new RegExp("{"+f+"}","g"),c[f]));var g=/^https?:/.test(b)?b:this.options.endPoint+b;return fetch(new Request(g,e))},b=function(a){if(this.options={},"undefined"==typeof a)throw new Error("No options specified");if("undefined"==typeof a.clientId||!a.clientId)throw new Error('No client ID specified, register one at "https://api.imgur.com/oauth2/addclient"');"undefined"!=typeof a.clientSecret&&(this.options.clientSecret=a.clientSecret),"undefined"!=typeof a.access_token&&(this.options.access_token=a.access_token),this.options.clientId=a.clientId,this.options.version=a.version||3,this.options.endPoint="https://api.imgur.com/"+this.options.version+"/",this.Account=new c(this),this.Album=new d(this),this.Image=new e(this),this.Oauth=new f(this)};return b.prototype={constructor:b,request:g},b});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment