Skip to content
This repository has been archived by the owner on Aug 23, 2020. It is now read-only.

Commit

Permalink
增加raspbian的支持
Browse files Browse the repository at this point in the history
  • Loading branch information
pandolia committed Feb 17, 2017
1 parent 6a268f4 commit 53164b5
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 10 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ QQBot 是一个用 python 实现的、基于腾讯 SmartQQ 协议的简单 QQ

在命令行输入: **qqbot** 。启动过程中会自动弹出二维码图片,需要用手机 QQ 客户端扫码并授权登录。启动成功后,会将本次登录信息保存到本地文件中,下次启动时,可以输入: **qqbot -q qq号码** ,先尝试从本地文件中恢复登录信息(不需要手动扫码),只有恢复不成功或登录信息已过期时才会需要手动扫码登录。一般来说,保存的登录信息将在 2 ~ 3 天之后过期。

注意: Linux 下,需要系统中有 gvfs-open 或者 shotwell 命令才能自动弹出二维码图片(一般系统中安装有 GNOME 虚拟文件系统 gvfs 的系统中都会含这两个命令之一)。若系统无法自动弹出二维码图片,可以手动打开图片文件进行扫码,也可以将二维码显示模式设置为邮箱模式或服务器模式进行远程扫码,详见本文档的第六节。

##### 2. 操作 QQBot

QQBot 启动后,会自动弹出一个控制台窗口( qterm 客户端)用来输入操作 QQBot 的命令,目前提供以下命令:
Expand Down
13 changes: 5 additions & 8 deletions qqbot/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,11 @@ def CallInNewConsole(args):

elif osName == 'Linux':
cmd = subprocess.list2cmdline(args)
if hasCommand('mate-terminal'):
if HasCommand('mate-terminal'):
args = ['mate-terminal', '-e', cmd]
elif hasCommand('gnome-terminal'):
elif HasCommand('gnome-terminal'):
args = ['gnome-terminal', '-x', cmd]
elif hasCommand('xterm'):
elif HasCommand('xterm'):
args = ['sh', '-c', 'xterm -e %s &' % cmd]
else:
return 1
Expand All @@ -63,11 +63,8 @@ def CallInNewConsole(args):
return 1
# return subprocess.Popen(list(args) + ['&'])

def hasCommand(procName):
try:
return procName in subprocess.check_output(['which', procName])
except subprocess.CalledProcessError:
return False
def HasCommand(procName):
return subprocess.call(['which', procName], stdout=subprocess.PIPE) == 0

def StartThread(target, *args, **kwargs):
daemon = kwargs.pop('daemon', False)
Expand Down
9 changes: 7 additions & 2 deletions qqbot/qrcodemanager.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import os, platform, uuid, subprocess, time

from utf8logger import WARN, INFO, DEBUG
from common import StartThread, LockedValue
from common import StartThread, LockedValue, HasCommand
from qrcodeserver import QrcodeServer
from mailagent import MailAgent

Expand Down Expand Up @@ -118,7 +118,12 @@ def showImage(filename):
filename = filename.decode('utf8').encode('cp936')
retcode = subprocess.call([filename], shell=True)
elif osName == 'Linux':
retcode = subprocess.call(['gvfs-open', filename])
if HasCommand('gvfs-open'):
retcode = subprocess.call(['gvfs-open', filename])
elif HasCommand('shotwell'):
retcode = subprocess.call(['shotwell', filename])
else:
retcode = 1
elif osName == 'Darwin': # by @Naville
retcode = subprocess.call(['open', filename])
else:
Expand Down

0 comments on commit 53164b5

Please sign in to comment.