Code Repositories xandikos / 0fbd280
Remove files not relevant for Xandikos. Jelmer Vernooń≥ 3 years ago
3 changed file(s) with 0 addition(s) and 92 deletion(s). Raw diff Collapse all Expand all
+0
-44
notes/import-framework.txt less more
0 + Import consists of:
1 1) Fetcher
2 3) Importer
3
4 The fetcher is responsible for retrieving data and post-processing it. This
5 includes e.g. converting it to the right format, but also getting rid of any
6 weird artefacts (like that fact that songkick doesn't use the STATUS field in
7 VEVENTS).
8
9 It is fine for the fetcher to retrieve data that has been previously retrieved.
10
11 The importer takes care of integrating the transactions into the local
12 repository. In its simplest form, it would just append the fetched file
13 to the repository.
14
15 It is responsible for making sure:
16 * items are not imported more than once
17 * any required UIDs are set appropriately, e.g. including prefixes
18 * local modifications are preserved
19 * any remote updates are integrated
20 * timestamps (e.g. DTIMESTAMP) aren't unnecessarily changed
21
22 To make synchronisation easier, the importer keeps a branch named
23 "<prefix>/master" around with the contents of the upstream repository.
24 After importing, it then does a git merge to combine the upstream
25 changes and the local ones.
26
27 When the importer is invoked, a command-line flag controls what
28 should be done to items that are no longer appearing in the stream.
29 Options are:
30
31 * don't preserve old items
32 * preserve items that have already happened
33 * preserve any items older than the oldest item that does appear
34
35 Formats:
36 1) ics
37 2) ledger
38 ...
39
40 Transaction types:
41 * Past
42 * Tentative
43 * Confirmed
+0
-5
notes/importer-songkick.txt less more
0 - Remove URL from description
1 - Remove location from summary
2
3 - "You're tracking this event." -> STATUS:TENTATIVE
4 - "You're going." -> STATUS:CONFIRMED
+0
-43
templates/travel.html less more
0 <html xmlns="http://www.w3.org/1999/xhtml">
1 <head>
2 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3 <title>travel</title>
4
5 <meta name="viewport" content="width=device-width, initial-scale=1" />
6 </head>
7 <body>
8
9 <div class="page">
10
11 <div class="pageheader">
12 <div class="header">
13 <span>
14 <span class="parentlinks">
15
16 </span>
17 <span class="title">
18 travel
19
20 </span>
21 </span>
22 </div>
23
24 </div>
25 </div>
26
27 <div id="pagebody">
28
29 <div id="content" role="main">
30
31 {% for year in sorted(events.keys(), reverse=True) %}
32 <h2>{{ year }}</h2>
33 <ul>
34 {% for event in events[year] %} <li>{% if iscurrent(event) %}<strong>{% endif %}{% if event.status == "CANCELLED" %}<del>{% endif %}{{ format_daterange(event.start, event.end)}}: {% if event.url %}<a href="{{ event.url }}">{{ event.summary }}</a>{% else %}{{ event.summary }}{% endif %}{% if event.location %} @ {{ event.location }}{% endif %}{{ status_char(event.status) }}{% if iscurrent(event) %}</strong>{% endif %}{% if event.status == "CANCELLED" %}</del>{% endif %}</li>
35 {% endfor %}
36 </ul>
37 {% endfor %}
38
39 </div>
40 </div>
41 </body>
42 </html>