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
ChannelActionsBot - Channel Actions Bot With Python

ChannelActionsBot Can be found on telegram as @ChannelActionsBot! Features Auto

Aditya 56 Dec 30, 2022
Quickly visualize docker networks with graphviz.

Docker Network Graph Visualize the relationship between Docker networks and containers as a neat graphviz graph. Example Usage usage: docker-net-graph

Leo Verto 43 Dec 12, 2022
Match-making API for OpenSanctions

OpenSanctions Match-making API This directory contains code and a Docker image for running an API to match data against OpenSanctions. It is intended

OpenSanctions.org 26 Dec 15, 2022
This is a discord bot, which tells you food recipes.

Discord Chef Bot You have a friend, familiy or other group / channel where the topic is the food? You cannot really decide what's for Saturday lunch?

2 Apr 25, 2022
Posts word definitions on Twitter daily

Word Of The Day bot Post daily word definitions on social media. Twitter account: https://twitter.com/WordOfTheDay_B Introduction The goal of this pro

Lucas Rijllart 1 Jan 08, 2022
A simple telegram bot to recognize lengthy voice files to text and vice versa with multiple language support.

Voicebot A simple Telegram bot to convert lengthy voice clips to text and vice versa with supporting languages. Mandatory Variables API_HASH - Yo

Renjith Mangal 12 Oct 21, 2022
A Telegram UserBot to Play Radio in Voice Chats. This is also the source code of the userbot which is being used for playing Radio in @AsmSafone Channel.

Telegram Radio Player UserBot A Telegram UserBot to Play Radio in Channel or Group Voice Chats. This is also the source code of the userbot which is b

SAF ONE 44 Nov 12, 2022
A Telegram bot to upload files from Telegram or Direct links to Google Drive.

Google Drive Uploader Telegram Bot A Telegram bot to upload files from Telegram or Direct links to Google Drive. Features Telegram files support. Dire

IDNCoderX 21 Dec 05, 2022
A simple waybar module to display the status of the ICE you are currently in using the ICE Portals JSON API.

waybar-iceportal A simple waybar module to display the status of the ICE you are currently in using the ICE Portals JSON API. Installation Ensure pyth

Moritz 7 Aug 26, 2022
🤖 Telegram UserBot Untuk Memutar Lagu Dan Video Di Obrolan Suara Telegram.

🤖 Telegram UserBot Untuk Memutar Lagu Dan Video Di Obrolan Suara Telegram.

Fariz 2 Nov 13, 2021
A Twitch bot to provide information from the WebNowPlayingCompanion extension

WebNowPlayingTwitch A Twitch bot made using TwitchIO which displays information obtained from the WebNowPlaying Compaion browser extension. Image is o

NiceAesth 1 Mar 21, 2022
discord.js nuker (50 bans a sec)

js-nuker discord.js nuker (50 bans a sec) I was to lazy to make the scraper in js, but this works too. DISCLAIMER This is tool was made for educationa

4 Sep 11, 2021
Migrate BiliBili watched anime to Bangumi

说明 之前为了将B站看过的动画迁移到bangumi写的, 本来只是自己用, 但公开可能对其他人会有帮助. 仓库最近无法维护, 程序有很多缺点, 欢迎 PR 和 Contributors 使用说明 Python版本要求:Python 3.8+ 使用前安装依赖包: pip install -r requ

51 Sep 08, 2022
This is a walkthrough about understanding the #BoF machine present in the #OSCP exam.

Buffer Overflow methodology Introduction These are 7 simple python scripts and a methodology to ease (not automate !) the exploitation. Each script ta

3isenHeiM 53 Dec 08, 2022
Official python API for Phish.AI public and private API to detect zero-day phishing websites

phish-ai-api Summary Official python API for Phish.AI public and private API to detect zero-day phishing websites How it Works (TLDR) Essentially we h

Phish.AI 168 May 17, 2022
Lib for create and show QRCode to PIX, you can show this code in another applications for payment by final consumer.

Biblioteca para a geração de codigos QR (BRCode como chamados na documentação do BACEN) a fins de facilitar a exibição para pagamentos ao consumidor.

João Camargo 13 Oct 05, 2022
Python SCript to scrape members from a selected Telegram group.

A python script to scrape all the members in a telegram group anad save in a CSV file. REGESTRING Go to this link https://core.telegram.org/api/obtain

Gurjeet Singh 7 Dec 01, 2022
Flask extension that provides integration with Azure Storage

Flask-Azure-Storage A Flask extension that provides integration with Azure Storage Table of Contents Flask-Azure-Storage Install Usage Examples Create

Alejo Arias 17 Nov 14, 2021
An all-in-one discord bot!

Interbot Interbot is a do-it-all bot originally made for the Interbyte Studios discord server. This repo contains the code for this bot, allowing you

Logan 5 Aug 03, 2021
Python wrappers for INHECO ODTC and SCILA libraries by INHECO GmbH.

Python wrappers for INHECO ODTC and SCILA libraries by INHECO GmbH.

1 Feb 09, 2022