Filelink pour Gnome-Evolution

Et autres intégrations

Evolution  est un sérieux concurrent de Thunderbird sous Gnome, l’environnement de bureau par défaut notamment des distributions Linux professionnelles (RHEL, SLED). Nous allons voir ici comment l’intégrer de la même façon que nous l’avons fait avec Thunderbird… En profitant de l’écosystème Gnome-Nextcloud (acomptes en ligne :  Gnome-Contacts, Gnome-Calendars, Gnome-Documents, Gnome-Fichiers,  Nextcloud-client  et extensions Nautilus…). Sans oublier les sauvegarde avec Déjà-Dup…

Testé sous CentOS 7.

Tout d’abord, pour ce qui est du clicktodial mis en place pour Cardbook, l’extension de Thunderbird, il n’est pas nécessaire ici vu que l’application SIP par défaut de Gnome, Ekiga, sait interpréter et ouvrir les numéros de téléphone dans les contacts de Gnome (et donc d’Evolution)…

Venons en à l’exportation de nos contacts en format csv, Evolution comme source de données des adresses de LIbreOffice ne fonctionnant pas non plus avec les carnets d’adresses distants…

Il va nous falloir par contre tâter un peu de la ligne de commande :

/usr/libexec/evolution-data-server/addressbook-export -l
nous donne la liste des carnets d’adresses.
Par exemple, chez moi :
"system-address-book","Personnel",0
"1506932346.2108.1@localhost.localdomain","contacts",229

On voit ici que je n’utilise pas le carnet d’adresses local (0)
Il suffit maintenant de noter le bon carnet d’adresses pour l’exporter :
/usr/libexec/evolution-data-server/addressbook-export 1506932346.2108.1@localhost.localdomain --format=csv > contacts.csv

Ensuite, du côté de LibreOffice, c’est la même chose que pour Thunderbird ! En choisissant la virgule comme séparateur, cette fois… Par contre, l’avantage de la méthode est qu’on peut même exporter nos contacts à intervalles réguliers par une tâche cron…

Par contre, gros point noir… Pas d’extension filelink pour Evolution qui permette de lier des fichiers distants volumineux hébergés sur notre Nextcloud…

Quoique, avec un peu d’imagination…

Nous allons utiliser ici pyocclient, une libraire python qui implémente l’api de Nextcloud côté client, dont nous allons nous servir dans un script Nautilus (le navigateur de fichiers de Gnome).

Allons y !

Il va nous falloir installer quelques packages supplémentaires

# yum install python-pip tkinter

# pip install pyocclient

Et c’est parti :

On commence par écrire notre script : Filelink for Nextcloud

#!/usr/bin/env python
# Filelink for Nextcloud
# Author : Jerome Bourgeois <jerome@xlinfo.fr>
# Version: 1.0
# License : GPL

import os
import webbrowser
import owncloud
import urllib2
import Tkinter
import tkMessageBox
import sys

#message d attente
root = Tkinter.Tk()
root.title("Filelink for Nextcloud")
w = Tkinter.Label(root,padx = 50,pady = 25,text="Veuillez patienter...")
w.pack()
root.update()
try:
	oc = owncloud.Client('https://cloud.domaine.tld) #adresse de votre Nextcloud
	oc.login('login', 'password') #vos identifiants Nextcloud
	directory= "Mail-attachments" #repertoire distant : Mail-attachments correspond au repertoire du filelink de Thunderbird

	selecteds= os.environ.get('NAUTILUS_SCRIPT_SELECTED_URIS').splitlines()
	body="\n\n"
	i=0
	for f in selecteds:
		selected=urllib2.unquote(f)
		local= selected.replace("file://","")
		remote= selected.split("/")[-1]

		#on envoie le fichier dans Nextcloud
		try:
			oc.put_file(directory+'/'+remote, local)
		except Exception, e:
			tkMessageBox.showinfo("Filelink for Nextcloud", str(e))
			continue
		#on recupere le nom du partage 
		link_info = oc.share_file_with_link('Mail-attachments/'+remote)
		#on le met dans le corps du message du mail
		body += link_info.get_link() +"\n\n"
		i=i+1

		if i == 0:
			sys.exit(1)
		elif i == 1:
			subject="Ci-joint 1 fichier"
		else:
			subject="Ci-joint "+str(i)+" fichiers"
	#on ouvre Evolution
	webbrowser.open("mailto:?subject="+ subject +"&body="+body)
except:
	tkMessageBox.showinfo("Filelink for Nextcloud", "Impossible de se connecter a Nextcloud !")
	sys.exit(2)
	

Je ne sais pas s’il est vraiment utile que je détaille plus ce que fait ce script… Ni que je précise que je ne suis pas développeur python ! Mais je suis sûr que certains se feront un plaisir de l’améliorer !

Il ne nous reste plus qu’à le rendre exécutable et en lecture pour nous seul (il contient notre mot de passe) :
chmod 700 Filelink\ for\ Nextcloud
Et à le déplacer dans le répertoire de scripts de Nautilus
mv Filelink\ for\ Nextcloud .local/share/nautilus/scripts/

Et voilà, il nous suffira maintenant de cliquer du droit sur le (les) fichier(s) que l’on voudra partager par l’intermédiaire de Nextcloud et de choisir FIlelink pour Nextcloud dans le menu scripts.

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *