Skip to content

Commit 84b91dc

Browse files
author
drswinghead
committed
readd wechat code base.
1 parent 6335f47 commit 84b91dc

12 files changed

+434
-255
lines changed

archlinux/txagent.conf

+8
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,14 @@
4646

4747
<allow send_path="/io/qtc/roundtable/WechatAgent"/>
4848

49+
<!-- for tx roundtable.XmppAgent -->
50+
<allow own="io.qtc.roundtable.XmppAgent"/>
51+
52+
<allow send_destination="io.qtc.roundtable.XmppAgent"/>
53+
<allow receive_sender="io.qtc.roundtable.XmppAgent"/>
54+
55+
<allow send_path="/io/qtc/roundtable/XmppAgent"/>
56+
4957
<!-- for tx weixin -->
5058
<allow own="io.qtc.wxagent"/>
5159

wxagent/baseagent.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,9 @@ def SendMessageX(self, msg: dict):
6868

6969
def makeBusMessage(self, op: str, evt: str, *args):
7070
if op is not None:
71-
return {'op': op, 'params': args, }
71+
return {'op': op, 'params': args, 'channel': '', }
7272
if evt is not None:
73-
return {'evt': evt, 'params': args, }
73+
return {'evt': evt, 'params': args, 'channel': '', }
7474
raise 'wtf'
7575
return
7676

@@ -176,8 +176,8 @@ def onPushMessage(self, msg):
176176

177177
return
178178

179-
def onRpcCall(self, msg):
180-
qDebug(self.__class__.__name__ + ',' + str(msg))
179+
def onRpcCall(self, argv):
180+
qDebug(self.__class__.__name__ + ',' + str(argv))
181181
return
182182

183183
def funcName(self):

wxagent/basecontroller.py

-1
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,6 @@ def sendQRToRelayPeer(self):
329329
url = url1 + "\n" + url2
330330
# self.peerRelay.sendMessage('qrcode url:' + url, self.peerRelay.peer_user)
331331
args = self.rt.makeBusMessage('showpiclink', None, 'qrcode url:' + url)
332-
args['channel'] = ''
333332
self.rt.SendMessageX(args)
334333
else:
335334
self.need_send_qrfile = True

wxagent/irccontroller.py

+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
import json
2+
3+
from PyQt5.QtCore import *
4+
from PyQt5.QtDBus import *
5+
6+
from .basecontroller import BaseController
7+
from .wxcommon import *
8+
9+
from .imrelay import IMRelay
10+
11+
12+
class IRCCallProxy(QObject):
13+
def __init__(self, ctrl, parent=None):
14+
super(IRCCallProxy, self).__init__(parent)
15+
self.ctrl = ctrl
16+
return
17+
18+
def friendExists(self, friendId):
19+
qDebug('hehree')
20+
return self.ctrl.remoteCall(self.ctrl.rt.funcName(), friendId)
21+
22+
def send_message(self, mto, mbody):
23+
qDebug('hehree')
24+
return self.ctrl.remoteCall(self.ctrl.rt.funcName(), mto, mbody)
25+
return
26+
27+
28+
class IRCController(BaseController):
29+
def __init__(self, rt, parent=None):
30+
super(IRCController, self).__init__(rt, parent)
31+
self.relay = IRCRelay()
32+
self.relay.xmpp = IRCCallProxy(self)
33+
return
34+
35+
def initSession(self):
36+
return
37+
38+
def replyMessage(self, msgo):
39+
qDebug(msgo['sender']['channel'])
40+
# from .secfg import peer_xmpp_user
41+
42+
# self.relay.sendMessage(msgo['params'][0], peer_xmpp_user)
43+
return
44+
45+
def updateSession(self, msgo):
46+
qDebug('heree')
47+
evt = msgo['evt']
48+
params = msgo['params']
49+
if evt == 'onIRCConnected': self.relay.onIRCConnected()
50+
elif evt == 'onIRCDisconnected': self.relay.onIRCDisconnected()
51+
elif evt == 'onIRCNewMessage': self.relay.onIRCNewMessage(*params)
52+
else: pass
53+
return
54+
55+
56+
class IRCRelay(IMRelay):
57+
def __init__(self, parent=None):
58+
super(IRCRelay, self).__init__(parent)
59+
return
60+
61+
# ######################
62+
def onIRCConnected(self):
63+
qDebug('hrerere')
64+
return
65+
66+
def onIRCDisconnected(self):
67+
qDebug('hrerere')
68+
return
69+
70+
def onIRCNewMessage(self, msg):
71+
qDebug(msg[0:32].encode())
72+
return

wxagent/logiccontroller.py

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# web weixin protocol
2+
3+
import os, sys
4+
import json, re
5+
import html
6+
import enum
7+
import time
8+
import magic
9+
import math
10+
11+
from PyQt5.QtCore import *
12+
from PyQt5.QtNetwork import *
13+
from PyQt5.QtDBus import *
14+
15+
16+
from .imrelayfactory import IMRelayFactory
17+
from .wxcommon import *
18+
from .wxmessage import *
19+
from .wxsession import *
20+
from .unimessage import *
21+
from .botcmd import *
22+
from .filestore import QiniuFileStore, VnFileStore
23+
24+
from .basecontroller import BaseController, Chatroom
25+
26+
27+
#
28+
#
29+
class LogicController(BaseController):
30+
31+
def __init__(self, rt, parent=None):
32+
"docstring"
33+
super(LogicController, self).__init__(rt, parent)
34+
35+
self.relay_src_pname = self.__class__.__name__
36+
37+
return
38+
39+

wxagent/mainrt.py

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from .wechatagent import WechatAgent
88
from .ircagent import IRCAgent
99
from .toxagent import ToxAgent
10+
from .xmppagent import XmppAgent
1011
from .roundtable import RoundTable
1112
# from .xmppagent import XmppAgent
1213
# from .slackagent import SlackAgent
@@ -16,6 +17,7 @@ class StartupManager(QObject):
1617
def __init__(self, parent=None):
1718
super(StartupManager, self).__init__(parent)
1819
self.protocols = {'wechat': WechatAgent, 'irc': IRCAgent, 'tox': ToxAgent,
20+
'xmpp': XmppAgent,
1921
'roundtable': RoundTable}
2022
self.procs = {}
2123
# self.loginAllProtocols()

0 commit comments

Comments
 (0)