-
Notifications
You must be signed in to change notification settings - Fork 25
/
parser.js
executable file
·112 lines (90 loc) · 3.71 KB
/
parser.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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/bin/env node
'use strict';
const Parser = require('../.lib/parser.js');
/**
* Recognizes the accesses to the platform Edition Diamond
* @param {Object} parsedUrl an object representing the URL to analyze
* main attributes: pathname, query, hostname
* @param {Object} ec an object representing the EC whose URL is being analyzed
* @return {Object} the result
*/
module.exports = new Parser(function analyseEC(parsedUrl, ec) {
let result = {};
let path = parsedUrl.pathname;
// uncomment this line if you need parameters
// let param = parsedUrl.query || {};
// use console.error for debuging
// console.error(parsedUrl);
let match;
if ((match = /\/content\/search/i.exec(path)) !== null) {
// https://connect.ed-diamond.com/content/search?SearchText=openvpn
result.rtype = 'SEARCH';
result.mime = 'HTML';
} else if ((match = /\/GNU-Linux-Magazine\/GLMF-\d+$/i.exec(path)) !== null) {
// https://connect.ed-diamond.com/GNU-Linux-Magazine/GLMF-218
result.rtype = 'TOC';
result.mime = 'HTML';
result.print_identifier = '1291-7834';
result.publication_title = 'GNU/Linux Magazine';
} else if ((match = /\/GNU-Linux-Magazine\/GLMF-\d+\/(\S+)$/i.exec(path)) !== null) {
// https://connect.ed-diamond.com/GNU-Linux-Magazine/GLMF-218/Gestion-de-conteneurs-en-Bash
result.rtype = 'ARTICLE';
result.mime = 'HTML';
result.unitid = match[1];
result.print_identifier = '1291-7834';
result.publication_title = 'GNU/Linux Magazine';
} else if ((match = /\/Hackable\/HK-\d+$/i.exec(path)) !== null) {
//
result.rtype = 'TOC';
result.mime = 'HTML';
result.print_identifier = '2427-4631';
result.publication_title = 'Hackable';
} else if ((match = /\/Hackable\/HK-\d+\/(\S+)$/i.exec(path)) !== null) {
//
result.rtype = 'ARTICLE';
result.mime = 'HTML';
result.unitid = match[1];
result.print_identifier = '2427-4631';
result.publication_title = 'Hackable';
} else if ((match = /\/Linux-Pratique\/LP-\d+$/i.exec(path)) !== null) {
//
result.rtype = 'TOC';
result.mime = 'HTML';
result.print_identifier = '0183-0872';
result.publication_title = 'Linux Pratique';
} else if ((match = /\/Linux-Pratique\/LP-\d+\/(\S+)$/i.exec(path)) !== null) {
// https://connect.ed-diamond.com/Linux-Pratique/LP-109/Combien-de-temps-passez-vous-sur-vos-taches
result.rtype = 'ARTICLE';
result.mime = 'HTML';
result.unitid = match[1];
result.print_identifier = '0183-0872';
result.publication_title = 'Linux Pratique';
} else if ((match = /\/Linux-Essentiel\/LPE-\d+$/i.exec(path)) !== null) {
//
result.rtype = 'TOC';
result.mime = 'HTML';
result.print_identifier = '1969-2463';
result.publication_title = 'Linux Essentiel';
} else if ((match = /\/Linux-Essentiel\/LPE-\d+\/(\S+)$/i.exec(path)) !== null) {
//
result.rtype = 'ARTICLE';
result.mime = 'HTML';
result.unitid = match[1];
result.print_identifier = '1969-2463';
result.publication_title = 'Linux Essentiel';
} else if ((match = /\/Open-Silicium\/OS-\d+$/i.exec(path)) !== null) {
//
result.rtype = 'TOC';
result.mime = 'HTML';
result.print_identifier = '2116-3324';
result.publication_title = 'Open Silicium';
} else if ((match = /\/Open-Silicium\/OS-\d+\/(\S+)$/i.exec(path)) !== null) {
//
result.rtype = 'ARTICLE';
result.mime = 'HTML';
result.unitid = match[1];
result.print_identifier = '2116-3324';
result.publication_title = 'Open Silicium';
}
return result;
});