-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathffmpeg.js
More file actions
77 lines (71 loc) · 1.97 KB
/
Copy pathffmpeg.js
File metadata and controls
77 lines (71 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
'use strict';
var ffmpeg = {
sep: navigator.platform.startsWith('Win') ? '\\' : '/'
};
ffmpeg.convert = function (command, args, dictionary) {
return new Promise((resolve, reject) => {
args = args.split(/\s/).map(s => {
Object.keys(dictionary).forEach(key => s = s.replace(key, dictionary[key]));
return s;
});
chrome.runtime.sendNativeMessage('com.add0n.node', {
cmd: 'exec',
kill: true,
command,
arguments: args
}, obj => {
console.error(obj);
if (!obj || obj.error || (obj.code && obj.code !== 0)) {
reject(new Error(obj ? obj.error || obj.stderr : 'error_12'));
}
else {
resolve();
}
});
});
};
ffmpeg.parent = (path) => {
return path.split(ffmpeg.sep).slice(0, -1).join(ffmpeg.sep);
};
ffmpeg.extract = (path) => {
return path.split(ffmpeg.sep).pop().split('.');
};
ffmpeg.resolve = (path, name, extension) => {
function check (files, name, extension, index = 0) {
let leafname = name.replace(/\-\d+$/, '') + (index ? '-' + index : '') + '.' + extension;
for (let n of files) {
if (n.endsWith(leafname)) {
return check(files, name, extension, index + 1);
}
}
return leafname;
}
return new Promise((resolve, reject) => {
chrome.runtime.sendNativeMessage('com.add0n.node', {
cmd: 'dir',
path
}, obj => {
if (!obj || obj.error || (obj.code && obj.code !== 0)) {
reject(new Error(obj ? obj.error || obj.stderr : 'error_10'));
}
else {
resolve(path + ffmpeg.sep + check(obj.files, name, extension));
}
});
});
};
ffmpeg.remove = files => {
return new Promise((resolve, reject) => {
chrome.runtime.sendNativeMessage('com.add0n.node', {
cmd: 'remove',
files
}, obj => {
if (!obj || obj.error || (obj.code && obj.code !== 0)) {
reject(new Error(obj ? obj.error || obj.stderr : 'error_11'));
}
else {
resolve();
}
});
});
};