Auto-Login für gtalk

2071
joe

So erreichen Sie die automatische Anmeldung und Abmeldung bei Google-Konten pünktlich. Ich benutze den Chat-Client EMPATHY

2

1 Antwort auf die Frage

6
jtb

Zunächst benötigen Sie eine Möglichkeit, Aufgaben zu planen. Wenn Sie nicht vertraut cronsind und Ubuntu / GNOME verwenden, dann sudo apt-get install gnome-schedule. Anschließend können Sie geplante Tasks über das Menü System >> Preferences öffnen und die GUI verwenden, um einen bestimmten Zeitpunkt für die Ausführung eines Befehls festzulegen.

Die einfachste Möglichkeit, einen Zeitpunkt für das Einrichten und Trennen von Empathy einzuplanen, besteht darin, die Jobs zum Starten und Stoppen des Programms zu planen (verwenden Sie einfach die Befehle empathyund killall empathy). Das Problem ist, dass, wenn wir Empathy töten, ohne sich abzumelden, Sie für einige Minuten angemeldet bleiben, bis Google feststellt, dass Sie das Zeitlimit überschritten haben.

Um dieses Problem zu umgehen, können Sie den D-Bus verwenden, um ein Signal an das Empathy-Backend zu senden, das die Verbindung auffordert. Es gibt viele Möglichkeiten, dies auch über dbus-senddie Befehlszeile auszuführen, aber da ich mit Python besser vertraut bin, habe ich das verwendet.

killall empathySpeichern Sie das folgende Skript an einem beliebigen Ort (z. B. ~/empathy_signout.py), und konfigurieren Sie dann Ihre Aufgabe, um das aufzurufen ( python ~/empathy_signout.py). Ersetzen Sie die Zeichenfolge EXAMPLE in der vierten Zeile durch Ihren Google Talk-Kontonamen, bevor Sie die Datei speichern.

#!/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') 

Dieses Skript könnte angepasst werden, um die hacklige Vermutung der Pfadkomponente des Kontonamens zu vermeiden oder sich auch anzumelden (Wenn das Programm zu beenden ein Problem ist). Schauen Sie sich die ConnectionManager-Benutzeroberfläche in den Telepathy-D-Bus-Dokumenten an, wenn Sie sich durch dieses Zeug nicht erschrecken lassen.