Skip to content

Commit b93b0ae

Browse files
committed
Merge branch 'develop'
2 parents c0fbcb1 + 7ee414d commit b93b0ae

File tree

5 files changed

+125
-11
lines changed

5 files changed

+125
-11
lines changed

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
<properties>
99
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1010
<!-- select one for build + select plugin in IliasManager.java -->
11-
<!-- supported: kit tueb stugge kn phtg hsf-->
12-
<project.university>kn</project.university>
11+
<!-- supported: kit tueb stugge kn phtg hsf wbs -->
12+
<project.university>wbs</project.university>
1313
</properties>
1414

1515
<organization>

src/main/java/analytics/AnalyticsLogger.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import control.IliasManager;
44
import control.VersionValidator;
55
import model.persistance.Settings;
6+
import model.persistance.User;
67
import org.apache.http.client.methods.HttpPost;
78
import org.apache.http.entity.StringEntity;
89
import org.apache.http.impl.client.CloseableHttpClient;
@@ -41,10 +42,15 @@ public static AnalyticsLogger getInstance() {
4142
}
4243

4344
private String generateUserID() {
44-
String name = Settings.getInstance().getUser().getName();
4545
String pluginShortName = IliasManager.getInstance().getShortName();
46+
User user = Settings.getInstance().getUser();
4647

47-
return hash(hash(name) + hash(pluginShortName) + hash("G(xpt+OgoLltz5b#e(Bu-YcYF$cokfmp9349fdjd!-4sdvf2"));
48+
if (user.getName() == null) {
49+
return hash("init");
50+
} else {
51+
String name = hash(user.getName());
52+
return hash(name + hash(pluginShortName) + hash("G(xpt+OgoLltz5b#e(Bu-YcYF$cokfmp9349fdjd!-4sdvf2"));
53+
}
4854
}
4955

5056
private String generateSessionID() {

src/main/java/control/IliasManager.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ public class IliasManager {
1111
private static IliasManager iliasManager;
1212

1313
private IliasManager() {
14-
//this.ilias = new KITIlias();
15-
//this.ilias = new StuggeIlias();
14+
// this.ilias = new KITIlias();
15+
// this.ilias = new StuggeIlias();
1616
// this.ilias = new TuebIlias();
17-
this.ilias = new KNIlias();
18-
//this.ilias = new PHTGIlias();
19-
//this.ilias = new HSFIlias();
17+
// this.ilias = new KNIlias();
18+
// this.ilias = new PHTGIlias();
19+
// this.ilias = new HSFIlias();
20+
this.ilias = new WBSIlias();
2021
}
2122

2223
public static IliasManager getInstance() {

src/main/java/control/IliasScraper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ private List<IliasFolder> getCourses(String dashboardHtml) {
6464
aTag.setBaseUri(BASE_URI);
6565
String url = aTag.attr("abs:href");
6666

67-
if (url.toLowerCase().contains("baseclass=ilrepositorygui") // kit + tueb
67+
if (url.toLowerCase().contains("baseclass=ilrepositorygui") // kit + tueb + wbs
6868
|| url.toLowerCase().contains("stuttgart_crs") // stuttgart
6969
|| url.toLowerCase().contains("uni_crs") // konstanz
7070
|| url.toLowerCase().contains("goto_hsf") // hsf
@@ -99,7 +99,7 @@ public void run() {
9999
dir.setBaseUri(BASE_URI);
100100

101101
// TODO check group folder
102-
final boolean linkToFolder = dir.attr("href").contains("cmd=view") // kit
102+
final boolean linkToFolder = dir.attr("href").contains("cmd=view") // kit + wbs
103103
|| dir.attr("href").toLowerCase().contains("stuttgart_fold") // stuttgart
104104
|| dir.attr("href").toLowerCase().contains("hsf_fold") // hsf
105105
|| dir.attr("href").toLowerCase().contains("uni_fold"); // konstanz

src/main/java/plugin/WBSIlias.java

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
package plugin;
2+
3+
import org.apache.http.*;
4+
import org.apache.http.client.ClientProtocolException;
5+
import org.apache.http.client.entity.UrlEncodedFormEntity;
6+
import org.apache.http.client.methods.HttpPost;
7+
import org.apache.http.message.BasicNameValuePair;
8+
import org.apache.http.protocol.BasicHttpContext;
9+
import org.apache.http.util.EntityUtils;
10+
import org.apache.log4j.Logger;
11+
import org.jsoup.Jsoup;
12+
import org.jsoup.nodes.Document;
13+
import org.jsoup.nodes.Element;
14+
15+
import java.io.IOException;
16+
import java.util.ArrayList;
17+
import java.util.List;
18+
19+
public class WBSIlias extends IliasPlugin {
20+
21+
private HttpPost post;
22+
private HttpResponse response;
23+
private HttpEntity entity;
24+
private Logger LOGGER = Logger.getLogger(getClass());
25+
private String dashboardHTML;
26+
private BasicHttpContext context;
27+
private List<NameValuePair> nvps;
28+
29+
@Override
30+
public LoginStatus login(String username, String password) {
31+
LoginStatus loginStatus = LoginStatus.CONNECTION_FAILED;
32+
context = new BasicHttpContext();
33+
nvps = new ArrayList<>();
34+
35+
try {
36+
post = new HttpPost("https://ecampus50.wbstraining.de/ilias.php");
37+
38+
executePost();
39+
40+
String html = null;
41+
try {
42+
html = EntityUtils.toString(entity);
43+
} catch (IOException | ParseException e) {
44+
LOGGER.warn(e.getStackTrace());
45+
}
46+
47+
Document doc = Jsoup.parse(html);
48+
Element form = doc.select("form[name=formlogin").first();
49+
50+
post = new HttpPost("https://ecampus50.wbstraining.de/" + form.attr("action"));
51+
nvps.add(new BasicNameValuePair("username", username));
52+
nvps.add(new BasicNameValuePair("password", password));
53+
nvps.add(new BasicNameValuePair("cmd[doStandardAuthentication]", "Anmelden"));
54+
post.setEntity(new UrlEncodedFormEntity(nvps, Consts.UTF_8));
55+
56+
executePost();
57+
58+
try {
59+
String htmlStartpage = EntityUtils.toString(entity);
60+
if (htmlStartpage.equals("1")) {
61+
loginStatus = LoginStatus.CONNECTION_FAILED;
62+
} else {
63+
loginStatus = LoginStatus.SUCCESS;
64+
this.dashboardHTML = htmlStartpage;
65+
}
66+
} catch (ParseException | IOException e) {
67+
LOGGER.warn(e.getStackTrace());
68+
}
69+
} finally {
70+
post.releaseConnection();
71+
}
72+
73+
return loginStatus;
74+
}
75+
76+
private void executePost() {
77+
try {
78+
this.response = this.client.execute(this.post, this.context);
79+
} catch (ClientProtocolException e) {
80+
e.printStackTrace();
81+
this.LOGGER.warn(e.getStackTrace());
82+
} catch (IOException e) {
83+
e.printStackTrace();
84+
this.LOGGER.warn(e.getStackTrace());
85+
} finally {
86+
this.entity = this.response.getEntity();
87+
}
88+
89+
this.nvps.clear();
90+
}
91+
92+
@Override
93+
public String getBaseUri() {
94+
return "https://ecampus50.wbstraining.de";
95+
}
96+
97+
@Override
98+
public String getDashboardHTML() {
99+
return this.dashboardHTML;
100+
}
101+
102+
@Override
103+
public String getShortName() {
104+
return "WBS";
105+
}
106+
107+
}

0 commit comments

Comments
 (0)