4shared

1.0.1 • Public • Published

4Shared-API / fourShared API (www.4shared.com)

This is API Wrapper Library for Consuming 4Shared API usin NodeJS.Please visit the below link for more info 4Shared_Docs

  • All API's implemented.
  • All API's are only for Authenticated, Except FileSearch.
Search, Filter & Sorting:

Categories: - Music -1 - Video - 2 - Photo - 3 - Archieves - 4 - Books/Office - 5 - Programs - 6 - Web - 7 - Mobile - 8 - Android - 10

Sample use of Libarary is also, in the examples folder. Just Replace your keys there, to start testing the application.

Version

1.0.0

Tech

4Shared Uses OAuth Library for Authentication & Authorization

  • OAuth - Authentication & Authorization
  • Grunt - for JS Hint & Testing
  • Express - for Sample use of Lib Functionality

Installation

You need npm installed globally:

$ npm install -g npm

After that install the module as below,

$ npm install 4shared

Example

First Tab:

var fourSharedApi = require('../index');
var express = require('express');
var app = express();
var fs = require('fs');
 
 
var fileId = "";
var rootFolder = "";
var folderID = "";
var userID= "";
 
var client = new fourSharedApi({
    "oauth_consumer_key""xxxx",
    "oauth_secret_key""xxxx",
    "callback""http://localhost:8080/callback",
    "access_token""optional",
    "access_secret""optional",
    "authorized"true
});
 
client.on('error', function(err) {
    console.log(err);
});
 
client.on('connected', function(is) {
    console.log(is);
});
 
app.get('/start', function(req, res) {
    client.authenticate(function(err, data) {
        if (err) throw err;
        res.redirect('https://api.4shared.com/v0/oauth/authorize?oauth_token=' + data.token);
    });
});
 
app.get('/callback', function(req, res) {
    client.callback(function(err, data) {
        if (err) throw err;
        res.json(data);
    });
});
 
app.get('/filesearch', function(req, res) {
    client.fileSearch(function(err, resp, body) {
        console.log(err);
        res.send(body)
    });
});
 
app.get('/filesearchparams', function(req, res) {
    var queryOpts = {
        category: "2",
        query: "Sky"
    };
    client.fileSearch(queryOpts, function(err, resp, body) {
        console.log(err);
        res.send(body)
    });
});
 
app.get('/userinfo', function(req, res) {
    client.userInfo(function(err, resp, body) {
        console.log(err);
        rootFolder = JSON.parse(body).rootFolderId;
        userID = JSON.parse(body).id;
        res.send(body);
    });
});
 
app.get('/uploadFile', function(req, res) {
    var formData = {
        folderId: "2iVI6yt1",
        description: "testing",
        tags: "test",
        file: fs.createReadStream(__dirname + '/origin.js')
    };
 
    client.uploadFile(formData, function(err, resp, body) {
        console.log(err);
        fileId = JSON.parse(body).id;
        res.send(body);
    });
});
 
app.get('/updateFile', function(req, res) {
    var formData2 = {
        file: fs.createReadStream(__dirname + '/replacement.js')
    }
    console.log(fileId);
    client.updateFile(fileId, formData2, function(err, resp, body) {
        console.log(err);
        res.send(body);
    });
});
 
app.get('/updateFileInfo', function(req, res) {
    var dad = {
        name: "nameisChanged"
    }
    console.log(fileId);
    client.updateFileInfo(fileId, dad, function(err, resp, body) {
        console.log(err);
        res.send(body);
    });
});
 
app.get('/fileinfo', function(req, res) {
    client.getfileInfo(fileId, false, function(err, resp, body) {
        console.log(err);
        res.send(body);
    });
})
 
app.get('/updateUserInfo', function(req, res) {
    var data = {
        firstName: "UpdateUser",
        description: "Hi How Are Yu!!"
    };
    client.updateUserInfo(data, function(err, resp, body) {
        console.log(err);
        res.send(body);
    });
});
 
app.get('/userfiles', function(req, res) {
    client.userFiles(function(err, resp, body) {
        console.log(err);
        res.send(body);
    });
});
 
app.get('/getOwnerInfo', function(req, res) {
    client.getOwnerInfo(userID, function(err, resp, body) {
        console.log(err);
        res.send(body);
    });
});
 
app.get('/foldersInfo', function(req, res) {
    console.log(rootFolder);
    client.foldersInfo(rootFolder, function(err, resp, body) {
        console.log(err);
        res.send(body);
    });
});
 
app.get('/childrenFolderInfo', function(req, res) {
    client.childrenFolderInfo(rootFolder, function(err, resp, body) {
        console.log(err);
        res.send(body);
    });
});
 
app.get('/listFilesInFolder', function(req, res) {
    client.listFilesInFolder(rootFolder, function(err, resp, body) {
        console.log(err);
        res.send(body);
    });
});
 
app.get('/createFolder', function(req, res) {
    var foldata = {
        parentId: "2iVI6yt1",
        name: "testFolder",
        description: "test Folder.."
    }
    client.createFolder(foldata, function(err, resp, body) {
        console.log(err);
        folderID = JSON.parse(body).id;
        res.send(body);
    });
});
 
app.get('/updateFolderInfo', function(req, res) {
    var foldata = {
        name: "testFolderUpdated",
        description: "test Folder.."
    }
    client.updateFolderInfo(folderID, foldata, function(err, resp, body) {
        console.log(err);
        res.send(body);
    });
});
 
 
app.get('/deleteFolder', function(req, res) {
    client.deleteFolder(folderID, function(err, resp, body) {
        console.log(err);
        res.send(body);
    });
});
 
app.get('/deleteFile', function(req, res) {
    client.deleteFile(fileId, function(err, resp, body) {
        console.log(err);
        res.send(body);
    });
});
 
var server = app.listen(8080,function(){
    console.log("Server Started");
});

Todo's

  • Write Tests
  • Add Code Comments

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i 4shared

Weekly Downloads

1

Version

1.0.1

License

MIT

Last publish

Collaborators

  • bboysathish