Cómo lograr el inicio de sesión automático y cerrar sesión en las cuentas de Google a tiempo. Estoy usando el cliente de chat es EMPATHY
Cómo lograr el inicio de sesión automático y cerrar sesión en las cuentas de Google a tiempo. Estoy usando el cliente de chat es EMPATHY
Primero necesitará una forma de programar tareas. Si no estás familiarizado cron
y estás usando Ubuntu / GNOME entonces sudo apt-get install gnome-schedule
. Luego puede abrir Tareas Programadas desde el menú Sistema >> Preferencias y usar la GUI para establecer un tiempo específico para que se ejecute un comando.
La forma más sencilla de programar una hora para que Empathy se conecte y desconecte es simplemente programar trabajos para iniciar y detener el programa (solo use los comandos empathy
y killall empathy
). El problema es que si matamos a Empathy sin cerrar la sesión, seguirá apareciendo conectado durante unos minutos hasta que Google descubra que ha excedido el tiempo de espera.
Para solucionar ese problema, podemos usar D-Bus para enviar una señal al backend de Empathy que le pide que se desconecte. Hay muchas maneras de hacer esto, incluso dbus-send
desde la línea de comandos, pero como estoy más familiarizado con Python, usé eso.
En lugar de configurar su tarea de cierre de sesión para llamar killall empathy
, guarde el siguiente script en algún lugar (por ejemplo ~/empathy_signout.py
) y luego programe su tarea para llamar a eso ( python ~/empathy_signout.py
). Reemplace la cadena EXAMPLE
en la cuarta línea con el nombre de su cuenta de Google Talk antes de guardar el archivo.
#!/usr/bin/env python
# Disconnect Empathy from Google Talk and kill the program.
# Replace EXAMPLE below with your account name (whatever is before @gmail.com)
google_acct_name = 'EXAMPLE'
import os
try:
import dbus
except ImportError:
exit('You need the Python dbus bindings,'
' type "sudo apt-get install python-dbus".')
wkname = ('org.freedesktop.Telepathy.Connection.gabble.jabber.' +
google_acct_name + '_40gmail_2ecom_2fTelepathy')
pathname = '/' + wkname.replace('.', '/')
bus = dbus.SessionBus()
conn_obj = bus.get_object(wkname, pathname)
conn_obj.Disconnect(dbus_interface='org.freedesktop.Telepathy.Connection')
os.system('killall empathy')
Este script podría modificarse para evitar la suposición adversa del componente de ruta del nombre de la cuenta, o para iniciar sesión también (si salir del programa es un problema). Eche un vistazo a la interfaz ConnectionManager en los documentos de Telepathy D-Bus si esto no le asusta.