X-Git-Url: https://git.plutz.net/?a=blobdiff_plain;ds=sidebyside;f=templates%2Fview_attendee.sh;h=40f09926914ffd608f98b2857ba292850e7f41d0;hb=74402713921d878553d9a7385d5e66c74775380f;hp=8a0f2d53b6aae0170ef544de02c6fdcadc8367b1;hpb=794a134935cb59c5bd014026f1bed4a08a5645c9;p=lobster
diff --git a/templates/view_attendee.sh b/templates/view_attendee.sh
index 8a0f2d5..40f0992 100755
--- a/templates/view_attendee.sh
+++ b/templates/view_attendee.sh
@@ -1,93 +1,104 @@
-declare -A item_name
-
-item_name[PHOTO]="Foto"
-item_name[LOGO]="Logo"
-item_name[FN]="Voller Name"
-item_name[SOUND]="Aussprache"
-item_name[GENDER]="Geschlecht"
-item_name[KIND]="Typ"
-item_name[TITLE]="Beruf"
-item_name[ROLE]="Position"
-item_name[ORG]="Organisation"
-item_name[MEMBER]="Mitglied"
-item_name[CATEGORIES]="Kategorien"
-item_name[ANNIVERSARY]="Jubiläum"
-item_name[BDAY]="Geburtstag"
-item_name[EMAIL]="E-Mail"
-item_name[TEL]="Telefon"
-item_name[IMPP]="Chat"
-item_name[ADR]="Anschrift"
-item_name[URL]="Webseite"
-item_name[LANG]="Sprache"
-item_name[NOTE]="Notiz"
-
-item_name[RELATED]="Kontakte"
-
-item_name[BEGIN]=""
-item_name[CALADRURI]=""
-item_name[CALURI]=""
-item_name[CLASS]=""
-item_name[CLIENTPIDMAP]=""
-item_name[END]=""
-item_name[FBURL]=""
-item_name[GEO]=""
-item_name[MAILER]=""
-item_name[NAME]=""
-item_name[PRODID]=""
-item_name[PROFILE]=""
-item_name[REV]=""
-item_name[SORT-STRING]=""
-item_name[SOURCE]=""
-item_name[TZ]=""
-item_name[UID]=""
-item_name[VERSION]=""
-item_name[XML]=""
-
-l10n() {
- [ -n "$item_name[$1]" ] && echo "$item_name[$1]" || echo "$1"
-}
-
-view_card_item() {
- case "$key" in
- BEGIN|VERSION|END);;
- PHOTO)
- echo ""
- ;;
- FN)
- echo "
$(l10n "$key")"
- [ -n "$tag[TYPE]" ] && echo "($tag[TYPE])"
- echo ":"
- ;|
- EMAIL)
- echo "$value"
- ;;
- IMPP)
- echo ""$(echo "$value" |cut -d: -f2-)""
- ;;
- *)
- echo "$value"
- ;;
- esac
+print_card() {
+ echo ' '
+ echo '
'$values[FN]''
+ [ -n "$value[GENDER]" ] && \
+ echo '
'$(l10n $values[GENDER])''
+ for n in NICKNAME NICKNAME{0..10}; do [ -n "$values[$n]" ] &&\
+ echo '
aka. '$values[$n]''
+ done
+ [ -n "$values[BDAY]" ] &&\
+ echo '
*: '$values[BDAY]''
+ if [ -n "$values[SOUND]" ]; then
+ echo '
'
+ fi
+ [ -n "$values[PHOTO]" ] &&\
+ echo '
'
+ [ -n "$values[LOGO]" ] &&\
+ echo '
'
+ echo '
'
+ echo ''
+ echo ' '
+ echo ' '$(l10n TEL)''
+ for n in TEL TEL{0..10}; do [ -n "$values[$n]" ] &&\
+ echo ' '$tags[${n}_TYPE]' '$values[$n]''
+ done
+ echo '
'
+ echo ''
+ echo ' '
+ [ -n "$values[EMAIL]" ] && \
+ echo '
'$(l10n EMAIL)''
+ for n in EMAIL EMAIL{0..10}; do [ -n "$values[$n]" ] &&\
+ echo '
'$values[$n]''
+ done
+ [ -n "$values[IMPP]" ] && \
+ echo '
'$(l10n IMPP)''
+ for n in IMPP IMPP{0..10}; do [ -n "$values[$n]" ] &&\
+ echo '
'$tags[${n}_TYPE]' '$values[$n]''
+ done
+ echo '
'
+ echo ''
+ echo ' '
+ echo '
'$(l10n ADR)''
+ for n in ADR ADR{0..10}; do [ -n "$values[$n]" ] &&\
+ echo '
'$values[$n]''
+ done
+ [ -n "$values[URL]" ] && \
+ echo '
'$(l10n URL)''
+ for n in URL URL{0..10}; do [ -n "$values[$n]" ] &&\
+ echo '
'$values[$n]''
+ done
+ echo '
'
+ echo ''
+ echo ' '
+ echo ' '$(l10n NOTE)''
+ for n in NOTE NOTE{0..10}; do [ -n "$values[$n]" ] &&\
+ echo ' '$values[$n]''
+ done
+ echo '
'
+ echo ''
+ echo ' '
}
view_attendee() { #Parameter: Cardfile
- key=""
- vcf_parse "$1" |while read -r line; do
- declare -A tag
- case "$line" in
- value*) eval "$line";;
- tag*) eval "$line";;
- key*)
- if [ -z "$key" ]; then
- eval "$line"
- else
- view_card_item
- eval "$line"
- fi
- ;;
- esac
- done
+ id="$1"
+ cardfile="vcard/$id"
+ cachefile="cache/${id}.cache"
+ unset key
+ if [ "$cachefile" -nt "$cardfile" ]; then
+ cat "$cachefile"
+ else
+ declare -A tags
+ declare -A values
+ vcf_parse "$cardfile" |while read -r line; do
+ declare -A tag
+ case "$line" in
+ value*) eval "$line";;
+ tag*) eval "$line";;
+ key*)
+ if [ -z "$key" ]; then
+ eval "$line"
+ else
+ values[$key]="$value"
+ for t in ${(k)tag}; do
+ tags[${key}_$t]="$tag[$t]"
+ done
+ eval "$line"
+ if [ -n "$values[$key]" ]; then
+ n=0
+ while [ -n "$values[$key$n]" ]; do n=$(($n + 1)); done
+ key=$key$n
+ fi
+ unset value
+ unset tag
+ fi
+ ;;
+ esac
+ done
+ print_card |tee "$cachefile"
+ fi
}