-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreatePhoneList.js
More file actions
102 lines (81 loc) · 3.13 KB
/
createPhoneList.js
File metadata and controls
102 lines (81 loc) · 3.13 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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/usr/bin/node
var $ = require('jquery');
var fs = require('fs');
//--------------------------------------------------------------------------------------------------
var OUTPUT_FILENAME = 'phonelist.json';
var PHONE_PREFIX = '0241/559709-';
var phonelist = {
'Festangestellte': null,
'Hiwis': null,
'Besprechungsräume': null
};
//--------------------------------------------------------------------------------------------------
/*function extractTableHeader( tableRow ) {
var headers = $( 'th', tableRow );
headers.each( function handleHeader( index, element ) {
console.log( index, $( element).html() );
});
}*/
//--------------------------------------------------------------------------------------------------
function extractTableData( tableRow ) {
var datas = $( 'td', tableRow );
var user = $( datas[ 0 ] ).html();
var userName = $.trim( $( 'a', datas[ 1 ] ).html() );
var userNumber = $.trim( $( 'p', datas[ 2 ] ).html() );
var userMobile = $.trim( $( 'p', datas[ 3 ] ).html() );
userNumber = PHONE_PREFIX + userNumber;
if( userMobile.length <=3 && userMobile.length > 0 ) {
userMobile = PHONE_PREFIX + userMobile;
}
//console.log( user, ',', userName, ',', userNumber, ',', userMobile );
/*datas.each( function handleData( index, element ) {
console.log( index, $( element ).html() );
});*/
return {
'shortName': user,
'name': userName,
'firstNumber': userNumber,
'secondNumber': userMobile
};
}
//--------------------------------------------------------------------------------------------------
function extractTableRows( htmlTable, phonelist ) {
var rows = $( 'tr', htmlTable );
rows.each( function handleRow( index, element ) {
if( index !== 0) {
phonelist.push( extractTableData( element ) );
} /*else {
//extractTableHeader( element );
}*/
});
}
//--------------------------------------------------------------------------------------------------
// main
//--------------------------------------------------------------------------------------------------
$.get( 'http://wiki/index.php/Office:Telefonliste', function gotPhoneList( phoneListHtmlPage ) {
return phoneListHtmlPage;
} ).done( function( data ) {
var tables = $( '.defaultTable', data );
var employees = [];
var hiwis = [];
var raeume = [];
extractTableRows( tables[ 0 ], employees );
extractTableRows( tables[ 1 ], employees );
extractTableRows( tables[ 2 ], hiwis );
extractTableRows( tables[ 3 ], raeume );
//extractTableRows( tables[ 4 ], etc );
phonelist.Festangestellte = employees;
phonelist.Hiwis = hiwis;
phonelist[ 'Besprechungsräume' ] = raeume;
//console.log( phonelist );
fs.writeFile( OUTPUT_FILENAME, JSON.stringify( phonelist ), function( err ) {
if(err) {
console.log(err);
} else {
console.log("phonelist extracted and saved.");
}
});
/*$( '.defaultTable', data ).each( function handleTable( index, element ) {
extractTableRows( element );
});*/
});