@ormoshe/js-video-url-parser 0.5.7 → 0.5.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/jsVideoUrlParser.js +41 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.js +1 -0
- package/lib/provider/canva.js +42 -0
- package/lib/provider/canva.ts +14 -0
- package/package.json +1 -1
package/dist/jsVideoUrlParser.js
CHANGED
|
@@ -1698,6 +1698,47 @@
|
|
|
1698
1698
|
|
|
1699
1699
|
base.bind(new Bunny());
|
|
1700
1700
|
|
|
1701
|
+
var combineParams$i = util.combineParams;
|
|
1702
|
+
|
|
1703
|
+
function Canva() {
|
|
1704
|
+
this.provider = 'canva';
|
|
1705
|
+
this.defaultFormat = 'long';
|
|
1706
|
+
this.formats = {
|
|
1707
|
+
long: this.createLongUrl,
|
|
1708
|
+
};
|
|
1709
|
+
this.mediaTypes = {
|
|
1710
|
+
VIDEO: 'video',
|
|
1711
|
+
};
|
|
1712
|
+
}
|
|
1713
|
+
|
|
1714
|
+
Canva.prototype.parse = function(url, params) {
|
|
1715
|
+
var match = url.match(
|
|
1716
|
+
/(?:watch|design)\/([a-zA-Z\d]+)/i
|
|
1717
|
+
);
|
|
1718
|
+
var result = {
|
|
1719
|
+
mediaType: this.mediaTypes.VIDEO,
|
|
1720
|
+
params: params,
|
|
1721
|
+
id: match[1]
|
|
1722
|
+
};
|
|
1723
|
+
return result.id ? result : undefined;
|
|
1724
|
+
};
|
|
1725
|
+
|
|
1726
|
+
Canva.prototype.createUrl = function(baseUrl, vi, params) {
|
|
1727
|
+
if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {
|
|
1728
|
+
return undefined;
|
|
1729
|
+
}
|
|
1730
|
+
|
|
1731
|
+
var url = baseUrl + vi.id + '/watch?embed';
|
|
1732
|
+
url += combineParams$i(params);
|
|
1733
|
+
return url;
|
|
1734
|
+
};
|
|
1735
|
+
|
|
1736
|
+
Canva.prototype.createLongUrl = function(vi, params) {
|
|
1737
|
+
return this.createUrl('https://www.canva.com/design/', vi, params);
|
|
1738
|
+
};
|
|
1739
|
+
|
|
1740
|
+
base.bind(new Canva());
|
|
1741
|
+
|
|
1701
1742
|
var lib = base;
|
|
1702
1743
|
|
|
1703
1744
|
return lib;
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const { combineParams } = require('../util');
|
|
2
|
+
|
|
3
|
+
function Canva() {
|
|
4
|
+
this.provider = 'canva';
|
|
5
|
+
this.defaultFormat = 'long';
|
|
6
|
+
this.formats = {
|
|
7
|
+
long: this.createLongUrl,
|
|
8
|
+
};
|
|
9
|
+
this.mediaTypes = {
|
|
10
|
+
VIDEO: 'video',
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
module.exports = Canva;
|
|
15
|
+
|
|
16
|
+
Canva.prototype.parse = function(url, params) {
|
|
17
|
+
var match = url.match(
|
|
18
|
+
/(?:watch|design)\/([a-zA-Z\d]+)/i
|
|
19
|
+
);
|
|
20
|
+
var result = {
|
|
21
|
+
mediaType: this.mediaTypes.VIDEO,
|
|
22
|
+
params: params,
|
|
23
|
+
id: match[1]
|
|
24
|
+
};
|
|
25
|
+
return result.id ? result : undefined;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
Canva.prototype.createUrl = function(baseUrl, vi, params) {
|
|
29
|
+
if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
var url = baseUrl + vi.id + '/watch?embed';
|
|
34
|
+
url += combineParams(params);
|
|
35
|
+
return url;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
Canva.prototype.createLongUrl = function(vi, params) {
|
|
39
|
+
return this.createUrl('https://www.canva.com/design/', vi, params);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
require('../base').bind(new Canva());
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { VideoInfo } from '../urlParser';
|
|
2
|
+
|
|
3
|
+
export interface CanvaUrlParameters {
|
|
4
|
+
[key: string]: any;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export type CanvaMediaTypes = 'video';
|
|
8
|
+
|
|
9
|
+
export interface CanvaVideoInfo extends VideoInfo<CanvaUrlParameters, CanvaMediaTypes> {
|
|
10
|
+
provider: 'canva';
|
|
11
|
+
channel: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export type CanvaParseResult = CanvaVideoInfo | undefined;
|
package/package.json
CHANGED