Remove unneeded files
This commit is contained in:
parent
11aefede1d
commit
45a9bbf14d
48 changed files with 0 additions and 1576 deletions
|
@ -1,69 +0,0 @@
|
|||
[Settings]
|
||||
;game appid here
|
||||
|
||||
AppID = 1150690
|
||||
|
||||
;source steam_api.dll version
|
||||
|
||||
API = 4.28.51.7
|
||||
|
||||
;player name
|
||||
|
||||
PlayerName = STEAMRIP
|
||||
|
||||
;game Language
|
||||
;english german french italian koreana
|
||||
;spanish schinese tchinese russian thai
|
||||
;japanese portuguese polish danish dutch
|
||||
;finnish norwegian swedish hungarian czech
|
||||
;romanian turkish
|
||||
|
||||
Language = english
|
||||
|
||||
;save types:
|
||||
;ALI213(game dir) 0
|
||||
;ALI213(my documents) 1
|
||||
;RELOADED 4
|
||||
;SKIDROW 5
|
||||
;FLT 6
|
||||
;CODEX(3.0.4+/my documents) 7
|
||||
;CODEX(1.0.0.0+/APPDATA) 8
|
||||
|
||||
SaveType = 0
|
||||
|
||||
;Achievements Count limit
|
||||
|
||||
;AchievementsCount = 0
|
||||
|
||||
;game exe path
|
||||
|
||||
;GameEXE = game.exe
|
||||
|
||||
;SteamUserID = 12345678
|
||||
;SteamUserIDH = 12345678
|
||||
|
||||
;IsLoggedOn = 0
|
||||
|
||||
;Online = 0
|
||||
|
||||
UnLockListedDLCOnly = 1
|
||||
|
||||
[DLC]
|
||||
;SET DLC USE "APPID=NAME"
|
||||
|
||||
|
||||
[Option]
|
||||
;Block Network.
|
||||
|
||||
;FullBlockNetwork = 0
|
||||
|
||||
;Redirect File Handle to ".valve"
|
||||
|
||||
FileRedirectCheck = 1
|
||||
|
||||
;DECRYPT STEAM STUB
|
||||
;set 1 tells steam_api.dll / steam_api64.dll to decrypt the steam stub as soon as possible
|
||||
;set 2 tells SteamClient.dll / SteamClient64.dll to decrypt the steam stub as soon as possible
|
||||
;set 0 to disable it.
|
||||
|
||||
;DECRYPT_STEAM_STUB = 0
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,715 +0,0 @@
|
|||
var CordovaPromiseFS =
|
||||
/******/ (function(modules) { // webpackBootstrap
|
||||
/******/ // The module cache
|
||||
/******/ var installedModules = {};
|
||||
/******/
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
/******/
|
||||
/******/ // Check if module is in cache
|
||||
/******/ if(installedModules[moduleId]) {
|
||||
/******/ return installedModules[moduleId].exports;
|
||||
/******/ }
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = installedModules[moduleId] = {
|
||||
/******/ i: moduleId,
|
||||
/******/ l: false,
|
||||
/******/ exports: {}
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Execute the module function
|
||||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||||
/******/
|
||||
/******/ // Flag the module as loaded
|
||||
/******/ module.l = true;
|
||||
/******/
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
/******/
|
||||
/******/
|
||||
/******/ // expose the modules object (__webpack_modules__)
|
||||
/******/ __webpack_require__.m = modules;
|
||||
/******/
|
||||
/******/ // expose the module cache
|
||||
/******/ __webpack_require__.c = installedModules;
|
||||
/******/
|
||||
/******/ // identity function for calling harmony imports with the correct context
|
||||
/******/ __webpack_require__.i = function(value) { return value; };
|
||||
/******/
|
||||
/******/ // define getter function for harmony exports
|
||||
/******/ __webpack_require__.d = function(exports, name, getter) {
|
||||
/******/ if(!__webpack_require__.o(exports, name)) {
|
||||
/******/ Object.defineProperty(exports, name, {
|
||||
/******/ configurable: false,
|
||||
/******/ enumerable: true,
|
||||
/******/ get: getter
|
||||
/******/ });
|
||||
/******/ }
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||||
/******/ __webpack_require__.n = function(module) {
|
||||
/******/ var getter = module && module.__esModule ?
|
||||
/******/ function getDefault() { return module['default']; } :
|
||||
/******/ function getModuleExports() { return module; };
|
||||
/******/ __webpack_require__.d(getter, 'a', getter);
|
||||
/******/ return getter;
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Object.prototype.hasOwnProperty.call
|
||||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
||||
/******/
|
||||
/******/ // __webpack_public_path__
|
||||
/******/ __webpack_require__.p = "";
|
||||
/******/
|
||||
/******/ // Load entry module and return exports
|
||||
/******/ return __webpack_require__(__webpack_require__.s = 0);
|
||||
/******/ })
|
||||
/************************************************************************/
|
||||
/******/ ([
|
||||
/* 0 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
/**
|
||||
* Static Private functions
|
||||
*/
|
||||
|
||||
/* createDir, recursively */
|
||||
function __createDir(rootDirEntry, folders, success,error) {
|
||||
rootDirEntry.getDirectory(folders[0], {create: true}, function(dirEntry) {
|
||||
// Recursively add the new subfolder (if we still have another to create).
|
||||
if (folders.length > 1) {
|
||||
__createDir(dirEntry, folders.slice(1),success,error);
|
||||
} else {
|
||||
success(dirEntry);
|
||||
}
|
||||
}, error);
|
||||
}
|
||||
|
||||
function dirname(str) {
|
||||
str = str.substr(0,str.lastIndexOf('/')+1);
|
||||
if(str[0] === '/') str = str.substr(1);
|
||||
return str;
|
||||
}
|
||||
|
||||
function filename(str) {
|
||||
return str.substr(str.lastIndexOf('/')+1);
|
||||
}
|
||||
|
||||
function normalize(str){
|
||||
str = str || '';
|
||||
if(str[0] === '/') str = str.substr(1);
|
||||
|
||||
var tokens = str.split('/'), last = tokens[0];
|
||||
|
||||
// check tokens for instances of .. and .
|
||||
for(var i=1;i < tokens.length;i++) {
|
||||
last = tokens[i];
|
||||
if (tokens[i] === '..') {
|
||||
// remove the .. and the previous token
|
||||
tokens.splice(i-1,2);
|
||||
// rewind 'cursor' 2 tokens
|
||||
i = i - 2;
|
||||
} else if (tokens[i] === '.') {
|
||||
// remove the .. and the previous token
|
||||
tokens.splice(i,1);
|
||||
// rewind 'cursor' 1 token
|
||||
i--;
|
||||
}
|
||||
}
|
||||
|
||||
str = tokens.join('/');
|
||||
if(str === './') {
|
||||
str = '';
|
||||
} else if(last && last.indexOf('.') < 0 && str[str.length - 1] != '/'){
|
||||
str += '/';
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
var transferQueue = [], // queued fileTransfers
|
||||
inprogress = 0; // currently active filetransfers
|
||||
|
||||
/**
|
||||
* Factory function: Create a single instance (based on single FileSystem)
|
||||
*/
|
||||
module.exports = function(options){
|
||||
/* Promise implementation */
|
||||
var Promise = options.Promise || window.Promise;
|
||||
var CDV_INTERNAL_URL_ROOT = 'cdvfile://localhost/'+(options.persistent? 'persistent/':'temporary/');
|
||||
var CDV_URL_ROOT = '';
|
||||
if(!Promise) { throw new Error("No Promise library given in options.Promise"); }
|
||||
|
||||
/* default options */
|
||||
options = options || {};
|
||||
options.crosswalk = !!options.crosswalk;
|
||||
options.persistent = options.persistent !== undefined? options.persistent: true;
|
||||
options.storageSize = options.storageSize || 20*1024*1024;
|
||||
options.concurrency = options.concurrency || 3;
|
||||
options.retry = options.retry || [];
|
||||
options.debug = !!options.debug;
|
||||
|
||||
/* Cordova deviceready promise */
|
||||
var deviceready,
|
||||
isCordova = typeof cordova !== 'undefined' && !options.crosswalk,
|
||||
isCrosswalk = options.crosswalk;
|
||||
if(isCordova){
|
||||
deviceready = new Promise(function(resolve,reject){
|
||||
document.addEventListener("deviceready", resolve, false);
|
||||
setTimeout(function(){ reject(new Error('deviceready has not fired after 5 seconds.')); },5100);
|
||||
});
|
||||
} else if(isCrosswalk) {
|
||||
deviceready = ResolvedPromise(true);
|
||||
} else {
|
||||
/* FileTransfer implementation for Chrome */
|
||||
deviceready = ResolvedPromise(true);
|
||||
if(typeof webkitRequestFileSystem !== 'undefined'){
|
||||
window.requestFileSystem = webkitRequestFileSystem;
|
||||
} else {
|
||||
window.requestFileSystem = function(x,y,z,fail){
|
||||
fail(new Error('requestFileSystem not supported!'));
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Polyfill Filetransfer
|
||||
if(!isCordova){
|
||||
window.FileTransfer = function FileTransfer(){};
|
||||
FileTransfer.prototype.download = function download(url,file,win,fail) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open('GET', url);
|
||||
xhr.responseType = "blob";
|
||||
xhr.onreadystatechange = function(onSuccess, onError, cb) {
|
||||
if (xhr.readyState == 4) {
|
||||
if(xhr.status === 200 && !this._aborted){
|
||||
write(file,xhr.response).then(win,fail);
|
||||
} else {
|
||||
fail(xhr.status);
|
||||
}
|
||||
}
|
||||
};
|
||||
xhr.send();
|
||||
return xhr;
|
||||
};
|
||||
FileTransfer.prototype.abort = function(){
|
||||
this._aborted = true;
|
||||
};
|
||||
window.ProgressEvent = function ProgressEvent(){};
|
||||
window.FileEntry = function FileEntry(){};
|
||||
}
|
||||
|
||||
/* Promise resolve helper */
|
||||
function ResolvedPromise(value){
|
||||
return new Promise(function(resolve){
|
||||
return resolve(value);
|
||||
});
|
||||
}
|
||||
|
||||
/* the filesystem! */
|
||||
var fs = new Promise(function(resolve,reject){
|
||||
deviceready.then(function(){
|
||||
var type = options.persistent? 1: 0;
|
||||
if(options.fileSystem && isCordova){
|
||||
type = options.fileSystem;
|
||||
}
|
||||
// Crosswalk
|
||||
if(isCrosswalk){
|
||||
var system = options.fileSystem || 'cachedir';
|
||||
xwalk.experimental.native_file_system.requestNativeFileSystem(system,resolve,reject);
|
||||
// On chrome, request quota to store persistent files
|
||||
} else if (!isCordova && type === 1 && navigator.webkitPersistentStorage) {
|
||||
navigator.webkitPersistentStorage.requestQuota(options.storageSize, function(grantedBytes) {
|
||||
window.requestFileSystem(type, grantedBytes, resolve, reject);
|
||||
}, reject);
|
||||
|
||||
// Exotic Cordova Directories (options.fileSystem = string)
|
||||
} else if(isNaN(type)) {
|
||||
window.resolveLocalFileSystemURL(type,function(directory){
|
||||
resolve(directory.filesystem);
|
||||
},reject);
|
||||
// Normal browser usage
|
||||
} else {
|
||||
window.requestFileSystem(type, options.storageSize, resolve, reject);
|
||||
}
|
||||
|
||||
setTimeout(function(){ reject(new Error('Could not retrieve FileSystem after 5 seconds.')); },5100);
|
||||
},reject);
|
||||
});
|
||||
|
||||
/* debug */
|
||||
fs.then(function(fs){
|
||||
CDV_URL_ROOT = fs.root.toURL();
|
||||
CDV_INTERNAL_URL_ROOT = isCordova? fs.root.toInternalURL(): CDV_URL_ROOT;
|
||||
window.__fs = fs;
|
||||
},function(err){
|
||||
console.error('Could not get Cordova FileSystem:',err);
|
||||
});
|
||||
|
||||
/* ensure directory exists */
|
||||
function ensure(folders) {
|
||||
return new Promise(function(resolve,reject){
|
||||
return fs.then(function(fs){
|
||||
if(!folders) {
|
||||
resolve(fs.root);
|
||||
} else {
|
||||
folders = folders.split('/').filter(function(folder) {
|
||||
return folder && folder.length > 0 && folder !== '.' && folder !== '..';
|
||||
});
|
||||
__createDir(fs.root,folders,resolve,reject);
|
||||
}
|
||||
},reject);
|
||||
});
|
||||
}
|
||||
|
||||
/* get file file */
|
||||
function file(path,options){
|
||||
return new Promise(function(resolve,reject){
|
||||
if(typeof path === 'object') {
|
||||
return resolve(path);
|
||||
}
|
||||
path = normalize(path);
|
||||
options = options || {};
|
||||
return fs.then(function(fs){
|
||||
fs.root.getFile(path,options,resolve,reject);
|
||||
},reject);
|
||||
});
|
||||
}
|
||||
|
||||
/* get directory entry */
|
||||
function dir(path,options){
|
||||
path = normalize(path);
|
||||
options = options || {};
|
||||
return new Promise(function(resolve,reject){
|
||||
return fs.then(function(fs){
|
||||
if(!path || path === '/') {
|
||||
resolve(fs.root);
|
||||
} else {
|
||||
fs.root.getDirectory(path,options,resolve,reject);
|
||||
}
|
||||
},reject);
|
||||
});
|
||||
}
|
||||
|
||||
/* list contents of a directory */
|
||||
function list(path,mode) {
|
||||
mode = mode || '';
|
||||
var recursive = mode.indexOf('r') > -1;
|
||||
var getAsEntries = mode.indexOf('e') > -1;
|
||||
var onlyFiles = mode.indexOf('f') > -1;
|
||||
var onlyDirs = mode.indexOf('d') > -1;
|
||||
if(onlyFiles && onlyDirs) {
|
||||
onlyFiles = false;
|
||||
onlyDirs = false;
|
||||
}
|
||||
|
||||
return dir(path)
|
||||
.then(function(dirEntry){
|
||||
return new Promise(function(resolve, reject){
|
||||
var entries = [];
|
||||
var dirReader = dirEntry.createReader();
|
||||
var fetchEntries = function(){
|
||||
dirReader.readEntries(function(newEntries){
|
||||
if(newEntries.length === 0) {
|
||||
resolve(entries);
|
||||
} else {
|
||||
var args = [0,0].concat(newEntries);
|
||||
entries.splice.apply(entries,args);
|
||||
fetchEntries();
|
||||
}
|
||||
});
|
||||
}
|
||||
fetchEntries();
|
||||
});
|
||||
})
|
||||
.then(function(entries){
|
||||
var promises = [ResolvedPromise(entries)];
|
||||
if(recursive) {
|
||||
entries
|
||||
.filter(function(entry){return entry.isDirectory; })
|
||||
.forEach(function(entry){
|
||||
promises.push(list(entry.fullPath,'re'));
|
||||
});
|
||||
}
|
||||
return Promise.all(promises);
|
||||
})
|
||||
.then(function(values){
|
||||
var entries = [];
|
||||
entries = entries.concat.apply(entries,values);
|
||||
if(onlyFiles) entries = entries.filter(function(entry) { return entry.isFile; });
|
||||
if(onlyDirs) entries = entries.filter(function(entry) { return entry.isDirectory; });
|
||||
if(!getAsEntries) entries = entries.map(function(entry) { return entry.fullPath; });
|
||||
return entries;
|
||||
});
|
||||
}
|
||||
|
||||
/* does file exist? If so, resolve with fileEntry, if not, resolve with false. */
|
||||
function exists(path){
|
||||
return new Promise(function(resolve,reject){
|
||||
file(path).then(
|
||||
function(fileEntry){
|
||||
resolve(fileEntry);
|
||||
},
|
||||
function(err){
|
||||
if(err.code === 1) {
|
||||
resolve(false);
|
||||
} else {
|
||||
reject(err);
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
/* does dir exist? If so, resolve with fileEntry, if not, resolve with false. */
|
||||
function existsDir(path){
|
||||
return new Promise(function(resolve,reject){
|
||||
dir(path).then(
|
||||
function(dirEntry){
|
||||
resolve(dirEntry);
|
||||
},
|
||||
function(err){
|
||||
if(err.code === 1) {
|
||||
resolve(false);
|
||||
} else {
|
||||
reject(err);
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
function create(path){
|
||||
return ensure(dirname(path)).then(function(){
|
||||
return file(path,{create:true});
|
||||
});
|
||||
}
|
||||
|
||||
/* convert path to URL to be used in JS/CSS/HTML */
|
||||
function toURL(path) {
|
||||
return file(path).then(function(fileEntry) {
|
||||
return fileEntry.toURL();
|
||||
});
|
||||
}
|
||||
|
||||
/* convert path to URL to be used in JS/CSS/HTML */
|
||||
var toInternalURL,toInternalURLSync,toURLSync;
|
||||
if(isCordova) {
|
||||
/* synchronous helper to get internal URL. */
|
||||
toInternalURLSync = function(path){
|
||||
path = normalize(path);
|
||||
return path.indexOf('://') < 0? CDV_INTERNAL_URL_ROOT + path: path;
|
||||
};
|
||||
/* synchronous helper to get native URL. */
|
||||
toURLSync = function(path){
|
||||
path = normalize(path);
|
||||
return path.indexOf('://') < 0? CDV_URL_ROOT + path: path;
|
||||
};
|
||||
|
||||
toInternalURL = function(path) {
|
||||
return file(path).then(function(fileEntry) {
|
||||
return fileEntry.toInternalURL();
|
||||
});
|
||||
};
|
||||
} else if(isCrosswalk){
|
||||
var system = options.fileSystem || 'cachedir';
|
||||
/* synchronous helper to get internal URL. */
|
||||
toInternalURLSync = function(path){
|
||||
path = normalize(path);
|
||||
return path.indexOf(system) < 0? '/'+system+'/' + path: path;
|
||||
};
|
||||
toInternalURL = function(path) {
|
||||
return file(path).then(function(fileEntry) {
|
||||
return fileEntry.toURL();
|
||||
});
|
||||
};
|
||||
toURLSync = toInternalURLSync;
|
||||
} else {
|
||||
/* synchronous helper to get internal URL. */
|
||||
toInternalURLSync = function(path){
|
||||
path = normalize(path);
|
||||
return 'filesystem:'+location.origin+(options.persistent? '/persistent/':'/temporary/') + path;
|
||||
};
|
||||
|
||||
toInternalURL = function(path) {
|
||||
return file(path).then(function(fileEntry) {
|
||||
return fileEntry.toURL();
|
||||
});
|
||||
};
|
||||
toURLSync = toInternalURLSync;
|
||||
}
|
||||
|
||||
/* return contents of a file */
|
||||
function read(path,method) {
|
||||
method = method || 'readAsText';
|
||||
return file(path).then(function(fileEntry) {
|
||||
return new Promise(function(resolve,reject){
|
||||
fileEntry.file(function(file){
|
||||
var reader = new FileReader();
|
||||
reader.onloadend = function(){
|
||||
resolve(this.result);
|
||||
};
|
||||
reader[method](file);
|
||||
},reject);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/* convert path to base64 date URI */
|
||||
function toDataURL(path) {
|
||||
return read(path,'readAsDataURL');
|
||||
}
|
||||
|
||||
|
||||
function readJSON(path){
|
||||
return read(path).then(JSON.parse);
|
||||
}
|
||||
|
||||
/* write contents to a file */
|
||||
function write(path,blob,mimeType) {
|
||||
return ensure(dirname(path))
|
||||
.then(function() { return file(path,{create:true}); })
|
||||
.then(function(fileEntry) {
|
||||
return new Promise(function(resolve,reject){
|
||||
fileEntry.createWriter(function(writer){
|
||||
writer.onwriteend = resolve;
|
||||
writer.onerror = reject;
|
||||
if(typeof blob === 'string') {
|
||||
blob = createBlob([blob], mimeType || 'text/plain');
|
||||
} else if(blob instanceof Blob !== true){
|
||||
blob = createBlob([JSON.stringify(blob,null,4)], mimeType || 'application/json');
|
||||
}
|
||||
writer.write(blob);
|
||||
},reject);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function createBlob(parts, type) {
|
||||
var BlobBuilder,
|
||||
bb;
|
||||
try {
|
||||
return new Blob(parts, {type: type});
|
||||
} catch(e) {
|
||||
BlobBuilder = window.BlobBuilder ||
|
||||
window.WebKitBlobBuilder ||
|
||||
window.MozBlobBuilder ||
|
||||
window.MSBlobBuilder;
|
||||
if(BlobBuilder) {
|
||||
bb = new BlobBuilder();
|
||||
bb.append(parts);
|
||||
return bb.getBlob(type);
|
||||
} else {
|
||||
throw new Error("Unable to create blob");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* move a file */
|
||||
function move(src,dest) {
|
||||
return ensure(dirname(dest))
|
||||
.then(function(dir) {
|
||||
return file(src).then(function(fileEntry){
|
||||
return new Promise(function(resolve,reject){
|
||||
fileEntry.moveTo(dir,filename(dest),resolve,reject);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/* move a dir */
|
||||
function moveDir(src,dest) {
|
||||
src = src.replace(/\/$/, '');
|
||||
dest = dest.replace(/\/$/, '');
|
||||
return ensure(dirname(dest))
|
||||
.then(function(destDir) {
|
||||
return dir(src).then(function(dirEntry){
|
||||
return new Promise(function(resolve,reject){
|
||||
dirEntry.moveTo(destDir,filename(dest),resolve,reject);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/* copy a file */
|
||||
function copy(src,dest) {
|
||||
return ensure(dirname(dest))
|
||||
.then(function(dir) {
|
||||
return file(src).then(function(fileEntry){
|
||||
return new Promise(function(resolve,reject){
|
||||
fileEntry.copyTo(dir,filename(dest),resolve,reject);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/* delete a file */
|
||||
function remove(path,mustExist) {
|
||||
var method = mustExist? file:exists;
|
||||
return new Promise(function(resolve,reject){
|
||||
method(path).then(function(fileEntry){
|
||||
if(fileEntry !== false) {
|
||||
fileEntry.remove(resolve,reject);
|
||||
} else {
|
||||
resolve(1);
|
||||
}
|
||||
},reject);
|
||||
}).then(function(val){
|
||||
return val === 1? false: true;
|
||||
});
|
||||
}
|
||||
|
||||
/* delete a directory */
|
||||
function removeDir(path) {
|
||||
return dir(path).then(function(dirEntry){
|
||||
return new Promise(function(resolve,reject) {
|
||||
dirEntry.removeRecursively(resolve,reject);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Whenever we want to start a transfer, we call popTransferQueue
|
||||
function popTransferQueue(){
|
||||
// while we are not at max concurrency
|
||||
while(transferQueue.length > 0 && inprogress < options.concurrency){
|
||||
// increment activity counter
|
||||
inprogress++;
|
||||
|
||||
// fetch filetranfer, method-type (isDownload) and arguments
|
||||
var args = transferQueue.pop();
|
||||
var ft = args.fileTransfer,
|
||||
isDownload = args.isDownload,
|
||||
serverUrl = args.serverUrl,
|
||||
localPath = args.localPath,
|
||||
trustAllHosts = args.trustAllHosts,
|
||||
transferOptions = args.transferOptions,
|
||||
win = args.win,
|
||||
fail = args.fail;
|
||||
|
||||
if(ft._aborted) {
|
||||
inprogress--;
|
||||
} else if(isDownload){
|
||||
ft.download.call(ft,serverUrl,localPath,win,fail,trustAllHosts,transferOptions);
|
||||
if(ft.onprogress) ft.onprogress(new ProgressEvent());
|
||||
} else {
|
||||
ft.upload.call(ft,localPath,serverUrl,win,fail,transferOptions,trustAllHosts);
|
||||
}
|
||||
}
|
||||
// if we are at max concurrency, popTransferQueue() will be called whenever
|
||||
// the transfer is ready and there is space avaialable.
|
||||
}
|
||||
|
||||
// Promise callback to check if there are any more queued transfers
|
||||
function nextTransfer(result){
|
||||
inprogress--; // decrement counter to free up one space to start transfers again!
|
||||
popTransferQueue(); // check if there are any queued transfers
|
||||
return result;
|
||||
}
|
||||
|
||||
function filetransfer(isDownload,serverUrl,localPath,transferOptions,onprogress){
|
||||
if(typeof transferOptions === 'function') {
|
||||
onprogress = transferOptions;
|
||||
transferOptions = {};
|
||||
}
|
||||
if(isCordova && localPath.indexOf('://') < 0) localPath = toURLSync(localPath);
|
||||
|
||||
transferOptions = transferOptions || {};
|
||||
if(!transferOptions.retry || !transferOptions.retry.length) {
|
||||
transferOptions.retry = options.retry;
|
||||
}
|
||||
transferOptions.retry = transferOptions.retry.concat();
|
||||
if(!transferOptions.file && !isDownload){
|
||||
transferOptions.fileName = filename(localPath);
|
||||
}
|
||||
|
||||
var ft = new FileTransfer();
|
||||
onprogress = onprogress || transferOptions.onprogress;
|
||||
if(typeof onprogress === 'function') ft.onprogress = onprogress;
|
||||
var promise = new Promise(function(resolve,reject){
|
||||
var attempt = function(err){
|
||||
if(transferOptions.retry.length === 0) {
|
||||
if(options.debug) console.log('FileTransfer Error: '+serverUrl,err);
|
||||
reject(err);
|
||||
} else {
|
||||
|
||||
var transferJob = {
|
||||
fileTransfer:ft,
|
||||
isDownload:isDownload,
|
||||
serverUrl:serverUrl,
|
||||
localPath:localPath,
|
||||
trustAllHosts:transferOptions.trustAllHosts || false,
|
||||
transferOptions:transferOptions,
|
||||
win:resolve,
|
||||
fail:attempt
|
||||
};
|
||||
transferQueue.unshift(transferJob);
|
||||
var timeout = transferOptions.retry.shift();
|
||||
if(timeout > 0) {
|
||||
setTimeout(nextTransfer,timeout);
|
||||
} else {
|
||||
nextTransfer();
|
||||
}
|
||||
}
|
||||
};
|
||||
transferOptions.retry.unshift(0);
|
||||
inprogress++;
|
||||
attempt();
|
||||
});
|
||||
promise.then(nextTransfer,nextTransfer);
|
||||
promise.progress = function(onprogress){
|
||||
ft.onprogress = onprogress;
|
||||
return promise;
|
||||
};
|
||||
promise.abort = function(){
|
||||
ft._aborted = true;
|
||||
ft.abort();
|
||||
return promise;
|
||||
};
|
||||
return promise;
|
||||
}
|
||||
|
||||
function download(url,dest,options,onprogress){
|
||||
return filetransfer(true,url,dest,options,onprogress);
|
||||
}
|
||||
|
||||
function upload(source,dest,options,onprogress){
|
||||
return filetransfer(false,dest,source,options,onprogress);
|
||||
}
|
||||
|
||||
return {
|
||||
fs: fs,
|
||||
normalize: normalize,
|
||||
file: file,
|
||||
filename: filename,
|
||||
dir: dir,
|
||||
dirname: dirname,
|
||||
create:create,
|
||||
read: read,
|
||||
readJSON: readJSON,
|
||||
write: write,
|
||||
move: move,
|
||||
moveDir: moveDir,
|
||||
copy: copy,
|
||||
remove: remove,
|
||||
removeDir: removeDir,
|
||||
list: list,
|
||||
ensure: ensure,
|
||||
exists: exists,
|
||||
existsDir: existsDir,
|
||||
download: download,
|
||||
upload: upload,
|
||||
toURL:toURL,
|
||||
toURLSync: toURLSync,
|
||||
isCordova:isCordova,
|
||||
toInternalURLSync: toInternalURLSync,
|
||||
toInternalURL:toInternalURL,
|
||||
toDataURL:toDataURL,
|
||||
deviceready: deviceready,
|
||||
options: options,
|
||||
Promise: Promise
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/***/ })
|
||||
/******/ ]);
|
Loading…
Add table
Add a link
Reference in a new issue