-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
55 lines (44 loc) · 1.3 KB
/
script.js
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
var gdUrl = $('#gd-url');
$('#btn-convert').on('click', function (event) {
if (!isValidUrl(gdUrl.val())) {
alert('You have enter invalid url. Please check again.');
gdUrl.val('');
return;
}
var gdId = extractFileId(gdUrl.val());
var prefix = 'http://drive.google.com/uc?export=view&id=';
$('#result').val(prefix + gdId);
$('#result-img-tag').val("<img src='" + prefix + gdId + "' />");
$('#preview').attr('src', prefix + gdId);
});
var clipboard = new Clipboard('.btn');
clipboard.on('success', function (e) {
console.info('Action:', e.action);
console.info('Text:', e.text);
console.info('Trigger:', e.trigger);
e.clearSelection();
});
clipboard.on('error', function (e) {
console.error('Action:', e.action);
console.error('Trigger:', e.trigger);
});
// validity check. ref: https://gist.github.com/jlong/2428561
function isValidUrl(url) {
// to be impl...
var parser = document.createElement('a');
parser.href = url;
if (
url === '' ||
parser.hostname !== 'drive.google.com' ||
!parser.pathname.includes('/file/d/')
)
return false;
return true;
}
function extractFileId(url) {
if (!url) url = window.location.href;
var strip = url
.replace(/https:\/\/drive.google.com\/file\/d\//gi, '')
.replace(/\/view\?[a-zA-Z=\/]+/gi, '');
return strip;
}