Introduction
Introduction Statistics Contact Development Disclaimer Help
tics2txt-back - ics2txt - convert icalendar .ics file to plain text
git clone git://bitreich.org/ics2txt git://hg6vgqziawt5s4dj.onion/ics2txt
Log
Files
Refs
Tags
README
---
tics2txt-back (1335B)
---
1 #!/usr/bin/awk -f
2
3 function isleap(year)
4 {
5 return (year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)
6 }
7
8 function mdays(mon, year)
9 {
10 return (mon == 2) ? (28 + isleap(year)) : (30 + (mon + (mon > 7)…
11 }
12
13 function timegm(year, mon, mday, hour, min, sec)
14 {
15 while (--mon >= 1)
16 mday += mdays(mon, year)
17 while (--year >= 1970)
18 mday += 365 + isleap(year)
19 return (((((mday - 1) * 24) + hour) * 60) + min) * 60 + sec
20 }
21
22 function date_text(str, offset,
23 year, mon, mday, hour, min)
24 {
25 year = substr(str, 1, 4)
26 mon = substr(str, 6, 2)
27 mday = substr(str, 9, 2)
28 hour = substr(str, 12, 2)
29 min = substr(str, 15, 2)
30 return timegm(year, mon, mday, hour, min, 0) - offset
31 }
32
33 {
34 gsub(/\t/, " ")
35 }
36
37 /^TZ[+-]/ {
38 hour = substr($0, 4, 2)
39 min = substr($0, 6, 2)
40 tzoffset = substr(zone, 3, 1) hour * 3600 + min * 60
41 next
42 }
43
44 /^[0-9]+-[0-9]+-[0-9]+ / {
45 time = date_text($1 " " $2, tzoffset)
46 row++
47 }
48
49 /^ / {
50 d = $0
51 sub(/^ */, "", d)
52 des = des " " d
53 }
54
55 /^$/ {
56 if (beg)
57 printf "%d\t%d\t%s\t%s\t%s\t%s\n", beg, end, cat, loc, s…
58 beg = end = cat = loc = sum = des = ""
59 }
60
61 row == 1 {
62 beg = time
63 sum = $0
64 sub(/^[^ ]+ +[^ ]+ +/, "", sum)
65 }
66
67 row == 2 {
68 end = time
69
70 line = $0
71 sub(/^[^ ]+ +[^ ]+ +/, "", line)
72
73 cat = line
74 sub(/\].*/, "", cat)
75 sub(/^\[/, "", cat)
76
77 loc = line
78 sub(/[^]]*\] */, "", loc)
79
80 row = 0
81 }
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.