Skip to content

Commit 7c79f70

Browse files
committed
Merge branch 'develop'
2 parents cf05cf3 + 36f3f9c commit 7c79f70

20 files changed

+412
-174
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/.idea
12
/bin
23
/.settings
34
/.classpath

pom.xml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77

88
<properties>
99
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
10+
<!-- select one for build + select plugin in IliasManager.java -->
11+
<!-- supported: kit tueb -->
12+
<project.university>kit</project.university>
1013
</properties>
1114

1215
<organization>
@@ -99,7 +102,7 @@
99102
</goals>
100103
<configuration>
101104
<outputDirectory>
102-
release/IliasDownloaderTool-${project.version}/lib
105+
release/IliasDownloaderTool-${project.university}-${project.version}/lib
103106
</outputDirectory>
104107
</configuration>
105108
</execution>
@@ -117,7 +120,7 @@
117120
<configuration>
118121
<target>
119122
<copy file="target/Ilias-${project.version}.jar"
120-
tofile="release/IliasDownloaderTool-${project.version}/Ilias-Downloader-Tool-${project.version}.jar">
123+
tofile="release/IliasDownloaderTool-${project.university}-${project.version}/Ilias-Downloader-Tool-${project.university}-${project.version}.jar">
121124
</copy>
122125
</target>
123126
</configuration>

src/main/java/control/IliasManager.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
package control;
22

3-
import org.apache.http.impl.client.*;
4-
5-
import plugin.*;
3+
import org.apache.http.impl.client.CloseableHttpClient;
4+
import plugin.IliasPlugin;
65
import plugin.IliasPlugin.LoginStatus;
6+
import plugin.KITIlias;
7+
import plugin.TuebIlias;
78

89
public class IliasManager {
910
private IliasPlugin ilias;
1011
private static IliasManager iliasManager;
1112

1213
private IliasManager() {
14+
this.ilias = new KITIlias();
15+
// this.ilias = new TuebIlias();
1316
}
1417

1518
public static IliasManager getInstance() {
@@ -19,10 +22,6 @@ public static IliasManager getInstance() {
1922
return iliasManager;
2023
}
2124

22-
public void setIliasPlugin(IliasPlugin ilias) {
23-
this.ilias = ilias;
24-
}
25-
2625
public LoginStatus login(String username, String password) {
2726
return this.ilias.login(username, password);
2827
}
@@ -31,7 +30,7 @@ public String getDashboardHTML() {
3130
return this.ilias.getDashboardHTML();
3231
}
3332

34-
public DefaultHttpClient getIliasClient() {
33+
public CloseableHttpClient getIliasClient() {
3534
return this.ilias.getClient();
3635
}
3736

src/main/java/control/IliasScraper.java

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,18 @@ public IliasScraper(Dashboard dashboard) {
2828

2929
public void run(String dashboardHtml) {
3030
this.iliasTree = getCourses(dashboardHtml);
31-
startThread(iliasTree);
32-
}
3331

34-
private void startThread(List<IliasFolder> iliasTree) {
35-
if (Settings.getInstance().getFlags().updateCanceled()) {
36-
return;
32+
for (IliasFolder parent : iliasTree) {
33+
if (!Settings.getInstance().getFlags().updateCanceled()) {
34+
startThread(parent);
35+
}
3736
}
37+
38+
}
39+
40+
private void startThread(IliasFolder parent) {
3841
threadCount.incrementAndGet();
39-
new Thread(new IliasScraperThread(this, iliasTree)).start();
42+
new Thread(new IliasScraperThread(this, parent)).start();
4043
}
4144

4245
public List<IliasFolder> getIliasTree() {
@@ -72,19 +75,17 @@ private List<IliasFolder> getCourses(String dashboardHtml) {
7275
private class IliasScraperThread implements Runnable {
7376
String BASE_URI = IliasManager.getInstance().getBaseUri();
7477
private final IliasScraper iliasScraper;
75-
private final List<IliasFolder> courses;
78+
private final IliasFolder parent;
7679

77-
private IliasScraperThread(IliasScraper iliasScraper, List<IliasFolder> courses) {
80+
private IliasScraperThread(IliasScraper iliasScraper, IliasFolder parent) {
7881
this.iliasScraper = iliasScraper;
79-
this.courses = courses;
82+
this.parent = parent;
8083
}
8184

8285
@Override
8386
public void run() {
84-
for (IliasFolder parent : courses) {
85-
if (Settings.getInstance().getFlags().updateCanceled()) {
86-
break;
87-
}
87+
if (!Settings.getInstance().getFlags().updateCanceled()) {
88+
8889
List<Element> directory = openFolder(parent);
8990
for (Element dir : directory) {
9091
if (Settings.getInstance().getFlags().updateCanceled()) {
@@ -105,15 +106,14 @@ public void run() {
105106
} else if (linkToForum) {
106107
createForum(parent, dir);
107108
} else if (linkToFolder) {
108-
List<IliasFolder> tempo = new ArrayList<IliasFolder>();
109109
IliasFolder newFolder = createFolder(parent, dir);
110-
tempo.add(newFolder);
111-
iliasScraper.startThread(tempo);
110+
iliasScraper.startThread(newFolder);
112111
} else if (linkToHyperlink) {
113112
// TODO implement
114113
}
115114
}
116115
}
116+
117117
iliasScraper.threadCount.decrementAndGet();
118118
}
119119

@@ -140,8 +140,8 @@ private IliasFile createFile(IliasFolder parentFolder, Element dir) {
140140
final String link = dir.attr("abs:href");
141141
final int fileSize = new IliasConnector().getFileSize(link);
142142
final IliasFileMetaInformation metaInf = suggestMetaInformation(dir);
143-
final IliasFile iliasFile = new IliasFile(name, link, parentFolder, fileSize,
144-
metaInf.getSizeLabel(), metaInf.getFileExtension());
143+
final IliasFile iliasFile = new IliasFile(name, link, parentFolder, fileSize, metaInf.getSizeLabel(),
144+
metaInf.getFileExtension());
145145
return iliasFile;
146146
}
147147

src/main/java/control/IliasSessionUtils.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,21 @@
11
package control;
22

33
import java.io.*;
4-
import java.util.*;
5-
64
import org.apache.http.*;
75
import org.apache.http.client.*;
86
import org.apache.http.client.methods.*;
97
import org.apache.http.cookie.*;
10-
import org.apache.http.impl.client.*;
118
import org.apache.http.protocol.*;
129

1310
public class IliasSessionUtils {
14-
public void printCookies(DefaultHttpClient client) {
11+
public void printCookies(CookieStore cookieStore) {
1512
int counter = 1;
1613
System.out.println("----------->Cookies: " + counter + ":");
17-
List<Cookie> cookies = client.getCookieStore().getCookies();
18-
if (cookies.isEmpty()) {
14+
if (cookieStore.getCookies().isEmpty()) {
1915
System.out.println("\nNone");
2016
} else {
21-
for (int i = 0; i < cookies.size(); i++) {
22-
System.out.println("\n- " + cookies.get(i).toString());
17+
for (Cookie cookie : cookieStore.getCookies()) {
18+
System.out.println("\n- " + cookie);
2319
}
2420
}
2521
System.out.println("\n");
@@ -37,7 +33,7 @@ public static void getStatus(HttpResponse response) {
3733
System.out.println("\nStatus: " + response.getStatusLine() + "\n");
3834
}
3935

40-
public void logout() {
36+
public void logout() throws IOException {
4137
final String urlLogout = "https://ilias.studium.kit.edu/logout.php?lang=de";
4238
final String urlLogoutIdp = "https://idp.scc.kit.edu/idp/Logout";
4339
BasicHttpContext context = new BasicHttpContext();
@@ -66,6 +62,6 @@ public void logout() {
6662
}
6763
request.releaseConnection();
6864

69-
IliasManager.getInstance().getIliasClient().getConnectionManager().shutdown();
65+
IliasManager.getInstance().getIliasClient().close();
7066
}
7167
}

src/main/java/control/IliasStarter.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ public IliasStarter(Dashboard dashboard, String username, String password) {
2626
}
2727

2828
public boolean login() {
29-
KITIlias kitIlias = new KITIlias();
30-
IliasManager.getInstance().setIliasPlugin(kitIlias);
3129
LoginStatus loginStatusMessage = IliasManager.getInstance().login(username, password);
3230
if (loginStatusMessage.equals(LoginStatus.WRONG_PASSWORD)) {
3331
Platform.runLater(new Runnable() {

src/main/java/control/LocalFileStorage.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313

1414
/**
1515
* This class stores all Files. Currently a .zip {@link IliasZip} is treated as a "File" and derives from {@link IliasFile}.
16-
*
17-
* @author David
1816
*
1917
*/
2018
public class LocalFileStorage {

src/main/java/control/LoginProvider.java

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ public class LoginProvider implements EventHandler<ActionEvent> {
1717
private final RadioButton savePwd;
1818
private final Dashboard dashboard;
1919

20-
public LoginProvider(Dashboard dashboard, TextField usernameField, PasswordField passwordField, RadioButton savePwd) {
20+
public LoginProvider(Dashboard dashboard, TextField usernameField, PasswordField passwordField,
21+
RadioButton savePwd) {
2122
this.dashboard = dashboard;
2223
this.usernameField = usernameField;
2324
this.passwordField = passwordField;
@@ -31,33 +32,29 @@ public void handle(ActionEvent event) {
3132
dashboard.setMenuTransparent(false);
3233
dashboard.setSigInTransparent(true);
3334
final String username = usernameField.getText();
34-
final boolean validUsername = username.length() == 5 || username.startsWith("u");
35-
if (!validUsername) {
36-
toggleDashboardLoginState("Ungültiger Benutzername");
35+
final String password = passwordField.getText();
36+
if (password.length() < 1) {
37+
toggleDashboardLoginState("Ungültiges Passwort");
3738
return;
38-
} else {
39-
final String password = passwordField.getText();
40-
if (password.length() < 1) {
41-
toggleDashboardLoginState("Ungültiges Passwort");
42-
return;
43-
}
44-
User user = Settings.getInstance().getUser();
45-
if (savePwd.isSelected()) {
46-
user.setName(username);
47-
user.setPassword(password);
48-
} else {
49-
user.setName("");
50-
user.setPassword("");
51-
}
39+
}
5240

53-
new Thread(new Runnable() {
54-
@Override
55-
public void run() {
56-
new IliasStarter(dashboard, username, password).login();
57-
}
58-
}).start();
41+
User user = Settings.getInstance().getUser();
42+
if (savePwd.isSelected()) {
43+
user.setName(username);
44+
user.setPassword(password);
45+
} else {
46+
user.setName("");
47+
user.setPassword("");
5948
}
49+
50+
new Thread(new Runnable() {
51+
@Override
52+
public void run() {
53+
new IliasStarter(dashboard, username, password).login();
54+
}
55+
}).start();
6056
}
57+
6158
private void toggleDashboardLoginState(final String message) {
6259
Platform.runLater(new Runnable() {
6360
@Override
@@ -70,5 +67,5 @@ public void run() {
7067
}
7168
});
7269
}
73-
74-
}
70+
71+
}

src/main/java/control/VersionValidator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class VersionValidator {
2323

2424
public boolean validate() {
2525

26-
DefaultHttpClient client = new DefaultHttpClient();
26+
CloseableHttpClient client = HttpClientBuilder.create().build();
2727
final HttpGet request = new HttpGet(
2828
"https://github.com/DeOldSax/iliasDownloaderTool/releases/latest");
2929
HttpResponse response = null;

src/main/java/model/ActualisationDate.java

Lines changed: 0 additions & 42 deletions
This file was deleted.

0 commit comments

Comments
 (0)