Opencontactbook - Bulk-manage large numbers of vCard contacts with built-in geolocation

Overview

Open Contact Book

Open Contact Book is a buiness-oriented, cross-platform, Python Qt application allowing to manage databases of contacts through CardDAV.

CardDAV is an open protocol for client/server access and sharing of contacts. It is based on .vcf files that are essentially text files.

It is supported by a large amount of server applications, to host your contact books on the internet and share them between devices, like Google Agenda, OwnCloud/NextCloud, or even CPanel.

It is also supported by a large amount of client applications, DAVx⁵ on Android, Blackberry OS 10, Apple iOS and Contacts, Thunderbird (through CardBook extension, and more recently natively) on Windows, Linux and Mac, Evolution on Linux, etc.

However, most CardDAV application are really limited when it comes to managing a large number of contacts, or just to merge duplicates. They also have nothing to backup changes and prevent file corruption, nor to manage geolocation. They became really slow as the number of entries increases.

Current features

Spreadsheet view

spreadsheet view

The spreadsheet view is a read/write table of all the .vcf contacts files found in the address book repository. It allows fast access for bulk-editing and exposes some of the technicality of the Vcard format for the sake of fast manual access.

TODO: the changes made to the spreadsheet are not actually saved for now. This is just a view.

Map view

map view

The map view uses Nominatim and Open Street Map databases to geolocate your contacts on a map, in a completely de-googled, privacy-compliant, way.

Where are your contacts located ? Turn your address book into knowledge to plan for efficient touring or clients meetings.

An advanced text parsing tries to find hints of the accurate location, using a spellcheck on the country names and various combinations of addresses parts until it finds a match. The geolocation data is cached on your disk and will run faster the next time.

Contact view

TODO: display a sum-up of the contact info with preview/display modes.

Filtering and sorting

TODO: fetch contacts whose tags and data match some rules.

Merging contacts and fields

TODO: merge duplicate contacts with rules, merge columns and refactor your custom Vcard field.

Reliability

TODO: include git commit and versionning built-in, to track history and revert any change in case of issues or corrupted data.

Developer friendly

Lib-ified

All the data processing can run headless, without a GUI. The GUI Qt code and the data processing are actually fully separated.

Use data-mining technologies

The database of contacts is actually a usual pandas.DataFrame. This allows fast data handling because Python only acts as a binding to lower-level data routines, while retaining all the power and flexbility of Python objects. It also enables to use the usual data-mining and maching-learning libraries.

Python terminal

TODO: access the internal pandas.DataFrame directly from a terminal widget, to apply advanced regex parsing etc.

Support

For now, only local repositories of .vcf files are supported. It is tested with Vcard 3.0 created with Thunderbird CardBook plugin. It is tested against a database of 9000 contacts.

Install

Python

Install the Python interpreter and PIP

Get the code

Dowload it here.

Dependencies

Run the script install.sh at the root of the code directory:

$ sh install.sh

Software

The code can't be installed system-wise yet, as this work is still in a very early stage.

Start it from the terminal:

$ python main.py
Owner
Aurélien PIERRE
Photographer, core-dev and resident color maths guy at @darktable-org. Do things accurately, or don't bother doing them at all
Aurélien PIERRE
I-Spy is a discord and twitter bot 🤖 that keeps a check on usage foul language, hate-speech and NSFW contents

I-Spy is a discord and twitter bot 🤖 that keeps a check on usage foul language, hate-speech and NSFW contents. It is the one stop solution to monitor your discord servers and twitter handles against

Tia Saxena 5 Nov 16, 2022
An EmbedBuilder for Discord bots in Python.

An EmbedBuilder for Discord bots in Python. You need discord.py to use this module.

6 Jan 13, 2022
This is a simple Python bot to identify sentiments in tweets

Twitter-Sentiment 👋 Hi There! 📱 This is a simple Python bot to identify sentiments in tweets 👨‍💻 This project was made for study, and pratice. You

Guilherme Silva 1 Oct 28, 2021
A python based all-in-one tool for Google Drive

gdrive-tools A python based all-in-one tool for Google Drive Uses For Gdrive-Tools ✓ generate SA ✓ Add the SA and Add them to TD automatically ✓ Gener

XcodersHub 32 Feb 09, 2022
Скрипт, позволяющий импортировать плейлисты из Spotify, а также обычные треклисты в VK музыку.

vk-music-import Программа для переноса плейлистов из Spotify и текстовых треклистов в VK Музыку. Преимущества: Позволяет быстро импортировать плейлист

Mew Forest 32 Nov 23, 2022
A Bot to Track Kernel Upstreams from kernel.org and Post it on Telegram Channel

Channel Kernel Tracker is the channel where the bot will be sending the updates in. Introduction This is a Telegram Bot to Track Kernel Upstreams kern

Kartikeya Hegde 3 Oct 05, 2021
A simple Python TDLib wrapper

Telegram Forwarder App Description pywtdlib (Python Wrapper TDLib) is a simple synchronous Python wrapper that makes you easy to create new Python Tel

Álvaro Fernández 2 Jan 04, 2023
Hydrathallies'in istegi uzerine yapildi :)

Telegram-Doviz-Bot Telegram Döviz Botu, Pyrogram ile yapıldı. Deploy Deploy on Heroku Deploy on local git clone https://github.com/lambda-stock/Telegr

2 Dec 08, 2021
A smart tool to backup members 📈 So you even after a raid/ ban you can easily restore them in seconds 🎲

🤑 Discord-backer 🤑 A open-source Discord member backup and restore tool for your server. This can help you get all your members in 5 Seconds back af

John 29 Dec 21, 2022
This is a crypto trading bot that scans the Binance Annoucements page for new coins, and places trades on Gateio

gateio-trading-bot-binance-announcements This Gateio x Binance cryptocurrency trading bot scans the Binance Announcements page and picks up on new coi

Andrei 1.2k Jan 01, 2023
Simple Instagram Login Link Generator

instagram-account-login Simple Instagram Login Link Generator Info Program generates instagram login links and you may get into someone´s thought the

Kevin 5 Dec 03, 2022
A ideia é fornecer uma base ampla de questões do ENEM como uma api REST

base10 "A ideia é fornecer uma base ampla de questões do ENEM como uma api REST" TODO Documentar a api com apifairy Criar testes Criar crawler para si

Wadson Garbes 4 Apr 24, 2022
Available slots checker for Spanish Passport

Bot that checks for available slots to make an appointment to issue the Spanish passport at the Uruguayan consulate page

1 Nov 30, 2021
Clippin n grafting Backend

Clipping' n Grafting Presenting you, 🎉 Clippin' n Grafting 🎉 , your very own ecommerce website displaying all your artsy-craftsy stuff. Not only the

Google-Developer-Student-Club-ISquareIT (GDSC I²IT) 2 Oct 22, 2021
go-cqhttp API typing annoations, return data models and utils for nonebot

go-cqhttp API typing annoations, return data models and utils for nonebot

风屿 6 Jan 04, 2023
Simple integration between FastAPI and cloud authentication services (AWS Cognito, Auth0, Firebase Authentication).

FastAPI Cloud Auth fastapi-cloudauth standardizes and simplifies the integration between FastAPI and cloud authentication services (AWS Cognito, Auth0

tokusumi 255 Jan 07, 2023
A Telegram Bot to display Codeforces Contest Ranklist

CFRankListBot A bot that displays the top ranks for a Codeforces contest. Participants' Details All the details of a participant is in the utils/__ini

Code IIEST 5 Dec 25, 2021
A file-based quote bot written in Python

Let's Write a Python Quote Bot! This repository will get you started with building a quote bot in Python. It's meant to be used along with the Learnin

Florent 1 Dec 17, 2021
A PowerPacked Version Of Telegram Leech Bot With Modern Easy-To-Use Interface & UI !

FuZionX Leech Bot A Powerful Telegram Leech Bot Modded by MysterySD to directly Leech to Telegram, with Multi Direct Links Support for Enhanced Leechi

MysterySD 28 Oct 09, 2022
:evergreen_tree: Python module for communicating with the Taiga API

python-taiga A python wrapper for the Taiga REST API. Documentation: https://python-taiga.readthedocs.io/ Usage: : https://python-taiga.readthedocs.io

Nephila 87 Oct 12, 2022