preparing importer for ReparierCafe
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user