Source code for workWithModule
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from os.path import expanduser
from subprocess import *
from Googletts import tts
import os, gettext, time, subprocess, unicodedata
gettext.install('google2ubuntu',os.path.dirname(os.path.abspath(__file__))+'/i18n/')
# Permet de faire appel aux modules
[docs]class workWithModule():
"""
@description: This class allows you to call external modules. If a call
for an external module is detected by the parser then this class check
the module's config file before extracting modules's parameter from the
text you have pronounced
"""
def __init__(self,module_path,module_name,text,PID):
self.pid = PID
try:
# Lecture du fichier de configuration du module
argsfile=expanduser('~')+'/.config/google2ubuntu/modules/'+module_path+'/args';
f = open(argsfile,'r')
ligne=(f.readline()).rstrip('\n\r')
linker=unicode(ligne.split('=')[1],"utf-8")
ligne=(f.readline()).rstrip('\n\r')
plus=ligne.split('=')[1]
f.close()
# on utilise un mot de liaison pour séparer l'appel du module
# des arguments à lui envoyer
# ex: Quelle est la météo à Paris
# Quelle est la météo à Issy les moulineaux
#
# Le mot de liaison peut être " à "
sentence=text.lower()
sentence=unicodedata.normalize('NFKD', text).encode('ASCII', 'ignore')
sentence=sentence.lower()
if sentence.count(linker) > 0:
param =(sentence.split(linker)[1]).encode("utf-8")
# on regarde si l'utilisateur veut transformer les ' ' en +
if plus == '1':
param=param.replace(' ','+')
# commande qui sera exécutée
execute = expanduser('~') +'/.config/google2ubuntu/modules/'+module_path+'/'+module_name+' '+'"'+param+'"'
os.system(execute)
else:
message=_("you didn't say the linking word")
os.system('echo "'+message+'" > /tmp/g2u_error_'+self.pid)
except IOError:
message = _('args file missing')
os.system('echo "'+message+'" > /tmp/g2u_error_'+self.pid)
sys.exit(1)