Skip to content

Commit

Permalink
Merge branch 'dev-discord'
Browse files Browse the repository at this point in the history
  • Loading branch information
lunzhiPenxil committed Sep 6, 2022
2 parents c3b7356 + 730e8f3 commit 99886cc
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 35 deletions.
17 changes: 2 additions & 15 deletions OlivOS/API.py
Original file line number Diff line number Diff line change
Expand Up @@ -717,22 +717,9 @@ def __send(self, send_type, target_id, message, host_id = None, flag_log = True)
pass
elif self.platform['sdk'] == 'discord_link':
if flag_type == 'group':
if 'reply_msg_id' in self.data.extend:
OlivOS.discordSDK.event_action.send_msg(self, target_id, tmp_message, self.data.extend['reply_msg_id'])
else:
OlivOS.discordSDK.event_action.send_msg(self, target_id, tmp_message)
OlivOS.discordSDK.event_action.send_msg(self, target_id, tmp_message)
elif flag_type == 'private':
if host_id != None and not flag_log:
OlivOS.discordSDK.event_action.send_msg(self, host_id, tmp_message, self.data.extend['reply_msg_id'], flag_direct = True)
elif 'flag_from_direct' in self.data.extend:
if self.data.extend['flag_from_direct']:
OlivOS.discordSDK.event_action.send_msg(self, host_id, tmp_message, self.data.extend['reply_msg_id'], flag_direct = True)
else:
#主动私聊待实现
pass
else:
#主动私聊待实现
pass
OlivOS.discordSDK.event_action.send_msg(self, target_id, tmp_message, flag_direct = True)
elif self.platform['sdk'] == 'kaiheila_link':
if flag_type == 'group':
OlivOS.kaiheilaSDK.event_action.send_msg(self, target_id, tmp_message, flag_direct = False)
Expand Down
47 changes: 27 additions & 20 deletions OlivOS/discordSDK.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ class intents_T(IntEnum):

sdkSubSelfInfo = {}

sdkDMInfo = {}

class bot_info_T(object):
def __init__(self, id = -1, access_token = None, model = 'private'):
self.id = id
Expand Down Expand Up @@ -282,27 +284,18 @@ def __init__(self):
self.content = None
self.embeds = []

class sendDirectMessage(api_templet):
class createDM(api_templet):
def __init__(self, bot_info = None):
api_templet.__init__(self)
self.bot_info = bot_info
self.data = self.data_T()
self.metadata = self.metadata_T()
self.metadata = None
self.host = sdkAPIHost['default']
self.route = sdkAPIRoute['dms'] + '/{guild_id}/messages'

class metadata_T(object):
def __init__(self):
self.guild_id = '-1'
self.route = sdkAPIRoute['users'] + '/@me/channels'

class data_T(object):
def __init__(self):
self.content = None #str
self.embed = None #str
self.ark = None #str
self.image = None #str
self.msg_id = None #str

self.recipient_id = '-1'


def checkInDictSafe(var_key, var_dict, var_path = []):
Expand Down Expand Up @@ -424,9 +417,11 @@ def get_Event_from_SDK(target_event):
target_event.data.sender['sex'] = 'unknown'
target_event.data.sender['age'] = 0
target_event.data.sender['role'] = 'member'
target_event.data.host_id = target_event.sdk_event.payload.data.d['guild_id']
target_event.data.host_id = None
if 'guild_id' in target_event.sdk_event.payload.data.d:
target_event.data.host_id = target_event.sdk_event.payload.data.d['guild_id']
target_event.data.extend['group_id'] = str(target_event.sdk_event.payload.data.d['channel_id'])
target_event.data.extend['host_group_id'] = str(target_event.sdk_event.payload.data.d['guild_id'])
target_event.data.extend['host_group_id'] = str(target_event.data.host_id)
target_event.data.extend['flag_from_direct'] = False
target_event.data.extend['reply_msg_id'] = target_event.sdk_event.payload.data.d['id']
if 'member' in target_event.sdk_event.payload.data.d:
Expand All @@ -442,6 +437,8 @@ def get_Event_from_SDK(target_event):
target_event.data.sender['role'] = 'member'
if plugin_event_bot_hash in sdkSubSelfInfo:
target_event.data.extend['sub_self_id'] = str(sdkSubSelfInfo[plugin_event_bot_hash])
if target_event.data.sender['id'] == target_event.base_info['self_id']:
target_event.active = False
elif target_event.sdk_event.payload.data.t == 'DIRECT_MESSAGE_CREATE':
message_obj = None
message_para_list = []
Expand Down Expand Up @@ -506,17 +503,27 @@ def get_Event_from_SDK(target_event):

#支持OlivOS API调用的方法实现
class event_action(object):
def send_msg(target_event, chat_id, message, reply_msg_id = None ,flag_direct = False):
def send_msg(target_event, chat_id, message, flag_direct = False):
this_msg = None
this_msg = API.sendMessage(get_SDK_bot_info_from_Event(target_event))
if flag_direct:
this_msg = API.sendDirectMessage(get_SDK_bot_info_from_Event(target_event))
this_msg.metadata.guild_id = int(chat_id)
if str(chat_id) in sdkDMInfo:
this_msg.metadata.channel_id = sdkDMInfo[str(chat_id)]
else:
this_msg_dm = API.createDM(get_SDK_bot_info_from_Event(target_event))
this_msg_dm.data.recipient_id = int(chat_id)
this_msg_dm.do_api()
raw_obj = None
if this_msg_dm.res != None:
raw_obj = init_api_json(this_msg_dm.res)
if raw_obj != None:
if type(raw_obj) == dict:
this_msg.metadata.channel_id = int(init_api_do_mapping_for_dict(raw_obj, ['id'], str))
sdkDMInfo[str(chat_id)] = this_msg.metadata.channel_id
else:
this_msg = API.sendMessage(get_SDK_bot_info_from_Event(target_event))
this_msg.metadata.channel_id = int(chat_id)
if this_msg == None:
return
this_msg.data.msg_id = reply_msg_id
flag_now_type = 'string'
res = ''
for message_this in message.data:
Expand Down

0 comments on commit 99886cc

Please sign in to comment.