前面文章在处理讯息文字,这里我要做的功能是在群组内喊要什麽东西+1,资料库能把它纪录下来
这边在建一个资料表来记录+1的userid跟LINE名字
一样设mid为FK关联到group_buying_message
group_buying_user:
id | mid | uid | name | quantity |
---|
我要让人在关键字後加上要的数量
关键字 A+1 B+2
关键字 +1
亦可使用LINE emoji
关键字 (A)+1 (B)+2
整体功能做出来了,细节下篇做修饰
关键字与上传至资料库,传资料库的讯息到聊天室中
insert如果放前面的话,整段跑下来会超过1秒,讯息会被拒绝,所以在insert前就先送出讯息,而未insert入的资料,在前面直接加入message_text_d
if(event.message.text[:3:] in keywords and len(event.message.text)>3):
key=event.message.text[:3:]
profile = line_bot_api.get_profile(event.source.user_id)
cursor=conn.cursor()
cursor.execute(f"SELECT message_text FROM group_buying_message WHERE keyword='{key}';")
message_text = cursor.fetchone()
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()
emojis=[]
#将资料一笔一笔写入list中
for row in rows:
emojis.append({'index': row[0],'productId': row[1],'emojiId': row[2]})
message_text_d="".join(message_text)
cursor.execute(f"SELECT name,quantity FROM group_buying_user WHERE mid=(SELECT mid FROM group_buying_message WHERE keyword='{key}');")
users = cursor.fetchall()
for user in users:
message_text_d=message_text_d+"".join(user[0])+" "+"".join(user[1])+"\n"
message_text_d=message_text_d+profile.display_name+" "+event.message.text[4::]
message=TextSendMessage(message_text_d,emojis)
line_bot_api.reply_message(event.reply_token,message)
cursor.execute(f"INSERT INTO group_buying_user (mid, uid, name, quantity) VALUES ((SELECT mid FROM group_buying_message WHERE keyword='{key}'),'{event.source.user_id}','{profile.display_name}','{event.message.text[4::]}' );")
conn.commit()
cursor.close()
正文 今天要使用helm来安装 Prometheus Operator,原先的prometheus ...
「关於函式的首要准则,就是要简短。第二项准则,就是要比第一项的简短函式还要更简短。这是一个我无法证...
大家昨天设定完Firebase有没有发现一个问题啊,要开启Google登入时,专案必须要有SHA1指...
昨天,提供了一种CSS命名的方法, 今天,我们再来看看有什麽要避免的CSS命名呢? 避免直接把颜色放...
在程序语言中万物皆物件, 就如同真实世界中, 所有物质接由元素组成一般 物件基本原理 C#通过new...