Uses 21956K of libraries. Click here for Pure Java version (2230L/12K).
1 | !7 |
2 | |
3 | lib 1400446 // caldav4j |
4 | |
5 | import net.fortuna.ical4j.model.Calendar; |
6 | import net.fortuna.ical4j.model.Component; |
7 | import net.fortuna.ical4j.model.ComponentList; |
8 | import net.fortuna.ical4j.model.component.VEvent; |
9 | import net.fortuna.ical4j.model.Date; |
10 | import net.fortuna.ical4j.util.UidGenerator; |
11 | import org.apache.commons.httpclient.HostConfiguration; |
12 | import org.apache.commons.httpclient.UsernamePasswordCredentials; |
13 | import org.apache.commons.httpclient.auth.AuthScope; |
14 | import org.osaf.caldav4j.CalDAVCollection; |
15 | import org.osaf.caldav4j.CalDAVConstants; |
16 | import org.osaf.caldav4j.exceptions.CalDAV4JException; |
17 | import org.osaf.caldav4j.methods.CalDAV4JMethodFactory; |
18 | import org.osaf.caldav4j.methods.HttpClient; |
19 | import org.osaf.caldav4j.model.request.CalendarQuery; |
20 | import org.osaf.caldav4j.util.GenerateQuery; |
21 | |
22 | cprint { |
23 | transient Calendar mainCalendar; |
24 | transient CalDAVCollection collection; |
25 | transient HttpClient httpClient; |
26 | |
27 | double calcDuration(VEvent ve) { |
28 | return ( ve.getEndDate().getDate().getTime() |
29 | - ve.getStartDate().getDate().getTime()) |
30 | / (1000. * 60. * 60.); |
31 | } |
32 | |
33 | start-thread { |
34 | httpClient = new HttpClient; |
35 | httpClient.getHostConfiguration().setHost("localhost", 5232, "http"); |
36 | String username = "stefan"; |
37 | UsernamePasswordCredentials httpCredentials = new(username, "bla"); |
38 | httpClient.getState().setCredentials(AuthScope.ANY, httpCredentials); |
39 | httpClient.getParams().setAuthenticationPreemptive(true); |
40 | |
41 | collection = new CalDAVCollection( |
42 | //"/dav/"+ username +"/Calendar", |
43 | "/stefan/cbedc050-528e-3102-6f59-2bda1287cb87/", |
44 | (HostConfiguration) httpClient.getHostConfiguration().clone(), |
45 | new CalDAV4JMethodFactory(), |
46 | CalDAVConstants.PROC_ID_DEFAULT |
47 | ); |
48 | |
49 | new GenerateQuery gq; |
50 | // filter by date |
51 | gq.setFilter("VEVENT [20201001T000000Z;20211010T000000Z] : STATUS!=CANCELLED"); |
52 | // Get the raw caldav query |
53 | // System.out.println("Query: "+ gq.prettyPrint()); |
54 | CalendarQuery calendarQuery = gq.generate(); |
55 | L<Calendar> calendars = collection.queryCalendars(httpClient, calendarQuery); |
56 | print("Have " + n2(calendars, "calendar")); |
57 | mainCalendar = first(calendars); |
58 | |
59 | for (Calendar calendar : calendars) { |
60 | ComponentList componentList = calendar.getComponents().getComponents(Component.VEVENT); |
61 | Iterator<VEvent> eventIterator = componentList.iterator(); |
62 | while (eventIterator.hasNext()) { |
63 | VEvent ve = eventIterator.next(); |
64 | print("Event: "+ ve.toString()); |
65 | print("Duration (h): "+ String.format("%.2f", calcDuration(ve))); |
66 | print("\n\n"); |
67 | } |
68 | } |
69 | |
70 | print("done"); |
71 | } |
72 | |
73 | void createChristmas ctex { |
74 | java.util.Calendar calendar = java.util.Calendar.getInstance(); |
75 | calendar.set(java.util.Calendar.MONTH, java.util.Calendar.DECEMBER); |
76 | calendar.set(java.util.Calendar.DAY_OF_MONTH, 25); |
77 | |
78 | // initialise as an all-day event.. |
79 | VEvent christmas = new VEvent(new Date(calendar.getTime()), "Christmas Day"); |
80 | |
81 | // Generate a UID for the event.. |
82 | UidGenerator ug = new("1"); |
83 | christmas.getProperties().add(ug.generateUid()); |
84 | |
85 | mainCalendar.getComponents().add(christmas); |
86 | print("Christmas added: " + christmas); |
87 | } |
88 | |
89 | void createCalendar ctex { |
90 | collection.createCalendar(httpClient); |
91 | } |
92 | } |
download show line numbers debug dex old transpilations
Travelled to 4 computer(s): bhatertpkbcr, mqqgnosmbjvj, pyentgdyhuwx, vouqrxazstgt
No comments. add comment
Snippet ID: | #1030397 |
Snippet name: | caldav4j test for local Radicale server |
Eternal ID of this version: | #1030397/11 |
Text MD5: | 18deea8b4fdcc8f19477827f55abc779 |
Transpilation MD5: | 3281001411859da33224627c6eea0eef |
Author: | stefan |
Category: | javax / stefan's os |
Type: | JavaX source code (Dynamic Module) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2020-12-11 17:06:16 |
Source code size: | 3432 bytes / 92 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 399 / 524 |
Version history: | 10 change(s) |
Referenced in: | [show references] |