moved methods to Util
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -8,11 +8,10 @@ import static java.lang.System.Logger.Level.WARNING;
|
||||
|
||||
import de.srsoftware.cal.api.Attachment;
|
||||
import de.srsoftware.cal.api.Coords;
|
||||
import de.srsoftware.tools.Payload;
|
||||
import de.srsoftware.tools.Result;
|
||||
import de.srsoftware.tools.Tag;
|
||||
|
||||
import de.srsoftware.tools.*;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.nio.file.Files;
|
||||
@@ -101,7 +100,19 @@ public class Util {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static Result<InputStream> open(Result<URL> url) {
|
||||
var opt = url.optional();
|
||||
if (opt.isEmpty()) return transform(url);
|
||||
try {
|
||||
var conn = (HttpURLConnection) opt.get().openConnection();
|
||||
conn.setRequestProperty("Accept","*/*");
|
||||
conn.setRequestProperty("Host",opt.get().getHost());
|
||||
conn.setRequestProperty("User-Agent","OpenCloudCal/0.1");
|
||||
return Payload.of(conn.getInputStream());
|
||||
} catch (IOException e) {
|
||||
return error(e, "Failed to open %s", url, e);
|
||||
}
|
||||
}
|
||||
|
||||
public static String paramText(String param) {
|
||||
return param
|
||||
@@ -148,6 +159,20 @@ public class Util {
|
||||
return error("Failed to find time");
|
||||
}
|
||||
|
||||
public static Result<Tag> parseXML(Result<InputStream> inputStream) {
|
||||
var opt = inputStream.optional();
|
||||
return opt.isEmpty() ? transform((inputStream)) : XMLParser.parse(opt.get());
|
||||
}
|
||||
|
||||
public static Result<InputStream> preload(Result<InputStream> inputStream) {
|
||||
var opt = inputStream.optional();
|
||||
if (opt.isEmpty()) return transform(inputStream);
|
||||
try {
|
||||
return Payload.of(XMLParser.preload(opt.get()));
|
||||
} catch (IOException e) {
|
||||
return error(e, "Failed to buffer data from %s", inputStream);
|
||||
}
|
||||
}
|
||||
|
||||
public static Result<Integer> toNumericMonth(String month) {
|
||||
month = month.toLowerCase();
|
||||
@@ -201,7 +226,7 @@ public class Util {
|
||||
var opt = urlResult.optional();
|
||||
if (opt.isEmpty()) return transform(urlResult);
|
||||
try {
|
||||
var mime = opt.get().openConnection().getContentType();
|
||||
var mime = MimeType.guessMime(opt.get());
|
||||
return Payload.of(new Attachment(opt.get(), mime));
|
||||
} catch (Exception e) {
|
||||
LOG.log(WARNING, "Failed to read mime type of {0}", opt.get());
|
||||
|
||||
Reference in New Issue
Block a user