-
Notifications
You must be signed in to change notification settings - Fork 0
/
Extract.java
196 lines (182 loc) · 7.67 KB
/
Extract.java
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
/**
* Diese Klasse Extract enthält statische Methoden für das Herausfiltern von Informationen aus dem HTML Dokument.
* @author Thomas Davies
* @version 1.0
*/
public class Extract{
/**
* Filtert das Studienelement aus der entsprechenden HTML-Zeile heraus.
* @param snippet Enthält die ausgelesene Zeile des HTML Dokuments.
* @return Gibt das Studienelement in Form eines Strings zurück.
*/
public static String studienElement(String snippet){
snippet = snippet.substring(snippet.indexOf('>', snippet.indexOf("pageLoad")));
snippet = snippet.substring(snippet.lastIndexOf('.')+1,snippet.indexOf('<'));
return snippet;
}
/**
* Filtert den Modulnamen aus der entsprechenden HTML-Zeile heraus.
* @param snippet Enthält die ausgelesene Zeile des HTML Dokuments.
* @return Gibt den Modulnamen in Form eines Strings zurück.
*/
public static String subject(String snippet){
snippet = snippet.substring(snippet.indexOf('>'));
snippet = snippet.substring(1,snippet.indexOf('<'));
return snippet;
}
/**
* Filtert die Note aus der entsprechenden HTML-Zeile heraus.
* @param snippet Enthält die ausgelesene Zeile des HTML Dokuments.
* @return Gibt die Note in Form eines Floats zurück.
*/
public static float score(String snippet){
snippet = snippet.substring(snippet.indexOf('>'));
snippet = snippet.substring(1,snippet.indexOf('<'))
.replace(',','.');
float score = 0.0f;
if(snippet.contains("#") || snippet.length() == 0){
}else{
score=Float.parseFloat(snippet);
}
return score;
}
/**
* Filtert die Anzahl der Versuche für ein Modul aus der entsprechenden HTML-Zeile heraus.
* @param snippet Enthält die ausgelesene Zeile des HTML Dokuments.
* @return Gibt di Versuche in Form eines int zurück.
*/
public static int attempts(String snippet){
int attempt = 0;
snippet = snippet.substring(snippet.indexOf('>'));
snippet = snippet.substring(1,snippet.indexOf('<'));
if(snippet.matches(".*\\d.*")){
snippet = snippet.replaceAll("\\D+","");
attempt = Integer.parseInt(snippet);
}
return attempt;
}
/**
* Filter den Studienschwerpunkt aus der entsprechenden HTML-Zeile heraus.
* @param snippet Enthält die ausgelesene Zeile des HTML Dokuments.
* @return Gibt den Studienschwerpunkt in Form eines Strings zurück.
*/
public static String fieldOfStudy(String snippet){
snippet = snippet.substring(snippet.indexOf('>')+1);
snippet = snippet.substring(snippet.indexOf('>'));
snippet = snippet.substring(1,snippet.indexOf('<'));
return snippet;
}
/**
* Filtert den Namen des Studenten aus der entsprechenden HTML-Zeile heraus.
* @param snippet Enthält die ausgelesene Zeile des HTML Dokuments.
* @return Gibt den Namen in Form eines Strings zurück.
*/
public static String name(String snippet){
snippet = snippet.substring(snippet.indexOf("'Label'"));
snippet = snippet.substring(snippet.indexOf('>'));
snippet = snippet.substring(1,snippet.indexOf('<'));
return snippet;
}
/**
* Filtert den Studiengang aus der entsprechenden HTML-Zeile heraus.
* @param snippet Enthält die ausgelesene Zeile des HTML Dokuments.
* @return Gibt den Studiengang in Form eines Strings zurück.
*/
public static String course(String snippet){
snippet = snippet.substring(snippet.indexOf("'Label'"));
snippet = snippet.substring(snippet.indexOf('>'));
snippet = snippet.substring(1,snippet.indexOf('<'));
return snippet;
}
/**
* Filtert das Studienelement aus der entsprechenden HTML-Zeile heraus.
* @param snippet Enthält die ausgelesene Zeile des HTML Dokuments.
* @return Gibt das Studienelement in Form eines Strings zurück.
*/
public static String syllabusStudienElement(String snippet){
snippet = snippet.substring(snippet.lastIndexOf("onclick"));
snippet = snippet.substring(snippet.indexOf('>'));
snippet = snippet.substring(1,snippet.indexOf('<'));
return snippet;
}
/**
* Filtert den Modulnamen aus der entsprechenden HTML-Zeile heraus.
* @param snippet Enthält die ausgelesene Zeile des HTML Dokuments.
* @return Gibt den Modulnamen in Form eines Strings zurück.
*/
public static String syllabusSubject(String snippet){
snippet = snippet.substring(snippet.lastIndexOf("</a>")+"</a>".length());
snippet = snippet.substring(1,snippet.indexOf('<'));
if(snippet.contains("&")){
snippet = snippet.replace("&", "&");
}
return snippet;
}
/**
* Filtert die Gewichtung eines Moduls aus der entsprechenden HTML-Zeile heraus.
* @param snippet Enthält die ausgelesene Zeile des HTML Dokuments.
* @return Gibt die Gewichtung in Form eines int[] zurück.
*/
public static int[] syllabusWeight(String snippet){
int denominator = Integer.parseInt(snippet.substring(snippet.indexOf('/')-1,snippet.indexOf('/')).replace("*",""));
int numerator = Integer.parseInt(snippet.substring(snippet.indexOf('/')+1,snippet.lastIndexOf('<')).replace("*",""));
int[] weight = {denominator, numerator};
return weight;
}
/**
* Filtert die Gewichtung eines Wahlpflichtmoduls aus der entsprechenden HTML-Zeile heraus.
* @param snippet Enthält die ausgelesene Zeile des HTML Dokuments.
* @return Gibt die Gewichtung in Form eines int[] zurück.
*/
public static int[] wpfWeight(String snippet){
snippet = snippet.substring(snippet.lastIndexOf("</a>"));
int denominator = Integer.parseInt(snippet.substring(snippet.indexOf('(')+1, snippet.indexOf("aus")-1));
int numerator = Integer.parseInt(snippet.substring(snippet.indexOf("aus ")+"aus ".length(),snippet.indexOf(')')));
int[] wpfWeight = new int[2];
wpfWeight[0] = denominator;
wpfWeight[1] = numerator;
return wpfWeight;
}
/**
* Filtert das Wahlpflichtthema aus der entsprechenden HTML-Zeile heraus.
* @param snippet Enthält die ausgelesene Zeile des HTML Dokuments.
* @return Gibt das Wahlpflichtthema in Form eines Strings zurück.
*/
public static String wpfTopic(String snippet){
if(snippet.contains("WPF ")){
snippet = snippet.substring(snippet.lastIndexOf("WPF ")+"WPF ".length(), snippet.lastIndexOf('('));
}else if(snippet.contains("WPF ")){
snippet = snippet.substring(snippet.lastIndexOf("Spezialisierung "), snippet.lastIndexOf('('));
}else if(snippet.contains("Wahlpflicht_")){
snippet = snippet.substring(snippet.lastIndexOf("Wahlpflicht_")+"Wahlpflicht_".length(), snippet.lastIndexOf('('));
}else{
snippet = snippet.substring(snippet.lastIndexOf("Wahlpflicht ")+"Wahlpflicht ".length(), snippet.lastIndexOf('('));
}
snippet = snippet.trim();
return snippet;
}
/**
* Filtert das Semester aus der entsprechenden HTML-Zeile heraus.
* @param snippet Enthält die ausgelesene Zeile des HTML Dokuments.
* @return Gibt das entsprechende Semster in Form eines int zurück.
*/
public static int semester(String snippet){
int semester = 0;
snippet = snippet.substring(snippet.indexOf('>'));
snippet = snippet.substring(1,snippet.indexOf('<')).trim();
if(snippet.length()>0){
semester = Integer.parseInt(snippet);
}
return semester;
}
/**
* Filtert das Systree Level aus der entsprechenden HTML-Zeile heraus. Diese Methode hilft nur zur Koordinierung im HTML Dokument.
* @param snippet Enthält die ausgelesene Zeile des HTML Dokuments.
* @return Gibt das Systreelevel in Form eines int zurück.
*/
public static int level(String snippet){
snippet = snippet.substring(snippet.indexOf("SysTreeLevel")+"SysTreeLevel".length());
snippet = snippet.substring(0, snippet.indexOf("'"));
return Integer.parseInt(snippet);
}
}