这边改成只要在聊天室输入关键字就会传出LINE emoji讯息
前面处理LINE emoji讯息的函式中增加lastLength参数,用来考虑讯息不是从第一个字抓取的情况
def handle_emoji_text(text,emojis,lastLength):
if(not emojis is None):
for emoji in emojis:
index =emoji.index-lastLength
text="%s%s%s"%(text[:index],'$',text[index+emoji.length:])
lastLength = lastLength + emoji.length-1
return text
def handle_emoji(emojis,lastLength):
if(not emojis is None):
for emoji in emojis:
emoji.index =emoji.index-lastLength
lastLength = lastLength + emoji.length-1
return emojis
收到message event时先把关键字存至list
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
cursor = conn.cursor()
cursor.execute(f"SELECT keyword FROM group_buying_message;")
rows = cursor.fetchall()
cursor.close()
keywords=[]
for row in rows:
keywords.append("".join(row))
前面改为输入讯息是否为关键字,从後面动作没动
if(event.message.text in keywords):
key=event.message.text
cursor=conn.cursor()
#将取得的key作为关键字在group_buying_message里找到讯息文字
cursor.execute(f"SELECT message_text FROM group_buying_message WHERE keyword='{key}';")
message_text = cursor.fetchone()
#找到讯息文字後面才执行
if(not message_text is None):
#用key在group_buying_message里找到讯息文字的mid,再用mid从message_emoji里找到LINE emoji资讯
cursor.execute(f"SELECT index,product_id,emoji_id FROM message_emoji WHERE mid=(SELECT mid FROM group_buying_message WHERE keyword='{key}');")
rows = cursor.fetchall()
cursor.close()
emojis=[]
#将资料一笔一笔写入list中
for row in rows:
emojis.append({'index': row[0],'productId': row[1],'emojiId': row[2]})
#message_text资料型态为元组,不能直接丢入TextSendMessage(),用join重组成字串
message=TextSendMessage("".join(message_text),emojis)
在新增讯息的函式中增加关键字参数
add 关键字 讯息
lastLength用来定位讯息位置
if(event.message.text[:3:]=="add"):
lastLength=event.message.text.find(" ",4)
handled_text=handle_emoji_text(event.message.text[lastLength+1::],event.message.emojis,lastLength+1)
handled_emoji=handle_emoji(event.message.emojis,lastLength+1)
insert_emoji_message(handled_text,event.message.text[4:lastLength:],handled_emoji)
message=TextSendMessage(handled_text,handled_emoji)
在网路上面google距离感测 会发现有很多方式的模组可供选择 有简单的超音波 也有红外线 甚至是雷...
这是最一个案例分享,也是想要监控的起源,希望在流量异常的时候,可以提醒我们即时上来检查。 网路异常通...
上一篇举了一个小例子来说明,一般遇到比较冗长的 .gitlab-ci.yml 大致上可以怎麽思考整理...
至於JoJo跟AWS云端服务,甚至是电脑科技到底有什麽关系。且让我们,继续看下去。感谢旁人的灵感提供...
我们知道监督式学习(Supervised Learning)就是有一堆Label好的训练资料,而半监...