CCCPaste

Convert JSON to vcf contact format

#!/bin/bash
######################################################################
#Copyright (C) 2025  Kris Occhipinti
#https://filmsbykris.com

#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation version 3 of the License.

#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.

#You should have received a copy of the GNU General Public License
#along with this program.  If not, see .
######################################################################

# this script convert json contact output from
# Crew Sense contacts into usable vcf format

function uid() {
  #uuidgen
  echo -n "$RANDOM" | md5sum | cut -c 1-36
}

cat full.json | jq -r ".data.employeeFindAll.data[]|(\"BEGIN:VCARD\nVERSION:3.0\nN:\"+.fullName,\"FN:\"+.fullName,\"EMAIL;TYPE=INTERNET:\"+.email,\"TEL;TYPE=CELL;VALUE=UNKNOWN:\"+.phone,\"UID:uuid\nCATEGORIES:GNFD\nEND:VCARD\n\n\")" >all.vcf

# generates unique uid
while read line; do
  if [[ "$line" =~ ^UID ]]; then
    echo "UID:$(uuidgen)"
  else
    echo "$line"
  fi
done outfile
mv outfile all.vcf