自动登录 gtalk

joe*_*joe 2 linux empathy google-talk automatic-logon

如何实现基于时间自动登录和注销谷歌账户。我使用的聊天客户端是 EMPATHY

jtb*_*jtb 6

首先,您需要一种安排任务的方法。如果您不熟悉cron,并且您正在使用 Ubuntu/GNOME,那么sudo apt-get install gnome-schedule. 然后您可以从 System >> Preferences 菜单中打开Scheduled Tasks并使用 GUI 设置运行命令的特定时间。

安排 Empathy 连接和断开连接时间的最简单方法是安排作业来启动和停止程序(只需使用命令empathykillall empathy)。问题是,如果我们在没有注销的情况下杀死 Empathy,那么在 Google 发现您已超时之前,您仍会显示已登录几分钟。

为了解决这个问题,我们可以使用D-Bus向 Empathy 的后端发送一个信号,要求它断开连接。有很多方法可以做到这一点,包括dbus-send从命令行使用,但由于我更熟悉 Python,所以我使用了它。

不要将您的签核任务配置为调用killall empathy,而是将以下脚本保存在某处(例如~/empathy_signout.py),然后安排您的任务调用该脚本(python ~/empathy_signout.py)。在保存文件之前,将第四行中的字符串替换为 EXAMPLE 您的 Google Talk 帐户名。

#!/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')
Run Code Online (Sandbox Code Playgroud)

可以调整此脚本以避免对帐户名称路径组件进行骇人听闻的猜测,或者也可以登录(如果退出程序有问题)。如果这些东西没有吓到您,请查看Telepathy D-Bus 文档中的 ConnectionManager 接口。