preparing importer for ReparierCafe

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2026-08-31 15:36:54 +02:00
parent 80f92263b3
commit 3167065232
31 changed files with 124 additions and 413 deletions
-1
View File
@@ -3,7 +3,6 @@ description = "OpenCloudCal : Base"
dependencies {
implementation(project(":de.srsoftware.cal.api"))
implementation("de.srsoftware:tools.container:1.0.6")
implementation("de.srsoftware:tools.mime:1.1.4")
implementation("de.srsoftware:tools.optionals:1.0.0")
implementation("de.srsoftware:tools.util:2.1.1")
@@ -2,17 +2,16 @@
package de.srsoftware.cal;
import static de.srsoftware.cal.Util.*;
import static de.srsoftware.tools.container.Error.error;
import static de.srsoftware.tools.container.Container.transform;
import static de.srsoftware.tools.Tag.HREF;
import static de.srsoftware.tools.TagFilter.*;
import static de.srsoftware.tools.container.Container.transform;
import static de.srsoftware.tools.container.Error.error;
import static java.lang.System.Logger.Level.DEBUG;
import de.srsoftware.cal.api.*;
import de.srsoftware.tools.*;
import de.srsoftware.tools.container.Container;
import de.srsoftware.tools.container.Payload;
import java.io.InputStream;
import java.net.*;
import java.time.LocalDate;
@@ -0,0 +1,49 @@
/* © SRSoftware 2026 */
package de.srsoftware.cal;
import static de.srsoftware.tools.container.Container.transform;
import static de.srsoftware.tools.container.Error.error;
import de.srsoftware.cal.api.Appointment;
import de.srsoftware.cal.api.Importer;
import de.srsoftware.tools.container.Container;
import de.srsoftware.tools.container.Payload;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Stream;
public abstract class IcalImporter implements Importer {
@Override
public Stream<Appointment> fetch() throws IOException {
var programPage = Payload.of(url()).map(Util::url);
return programPage
.map(Util::open)
.map(Util::preload)
.map(IcalImporter::parse)
.stream();
}
private static Container<List<Appointment>> parse(Container<InputStream> input) {
if (input.optional().isEmpty()) return transform(input);
InputStream stream = input.optional().get();
var scanner = new Scanner(stream);
while (scanner.hasNextLine()){
var line = scanner.nextLine();
System.out.println(line);
}
scanner.close();
try {
stream.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
return error("Not implemented");
}
public abstract String url();
}
@@ -5,9 +5,9 @@ import static de.srsoftware.cal.Util.url;
import de.srsoftware.cal.api.Appointment;
import de.srsoftware.cal.api.Link;
import de.srsoftware.tools.container.Payload;
import de.srsoftware.tools.container.Container;
import de.srsoftware.tools.Tag;
import de.srsoftware.tools.container.Container;
import de.srsoftware.tools.container.Payload;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.List;
@@ -4,8 +4,6 @@ package de.srsoftware.cal;
import static de.srsoftware.tools.Tag.STYLE;
import static de.srsoftware.tools.container.Container.transform;
import static de.srsoftware.tools.container.Error.error;
import static java.lang.System.Logger.Level.DEBUG;
import static java.lang.System.Logger.Level.WARNING;
import de.srsoftware.cal.api.Attachment;
@@ -13,7 +11,6 @@ import de.srsoftware.cal.api.Coords;
import de.srsoftware.tools.*;
import de.srsoftware.tools.container.Container;
import de.srsoftware.tools.container.Payload;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;