|
@@ -119,14 +119,14 @@ def message(event):
|
|
alt_text="Receive",
|
|
alt_text="Receive",
|
|
template=button_template_message))
|
|
template=button_template_message))
|
|
|
|
|
|
- elif '我的NFT收藏' in event.message.text:
|
|
|
|
|
|
+ elif 'NFT商店' in event.message.text:
|
|
button_template_message = ButtonsTemplate(
|
|
button_template_message = ButtonsTemplate(
|
|
title=' ',
|
|
title=' ',
|
|
- text='點擊並打開收藏頁面,就可以查看所有的收藏品哦!',
|
|
|
|
|
|
+ text='點擊並打開NFT商品頁,就可以購買您所想要的NFT商品哦!',
|
|
actions=[
|
|
actions=[
|
|
URITemplateAction(
|
|
URITemplateAction(
|
|
- label='打開我的NFT收藏頁面',
|
|
|
|
- uri='http://ark.cards/collect.html?' + event.source.user_id),])
|
|
|
|
|
|
+ label='打開NFT商品頁面',
|
|
|
|
+ uri='http://ark.cards/shop.html?' + event.source.user_id),])
|
|
line_bot_api.reply_message(
|
|
line_bot_api.reply_message(
|
|
event.reply_token,
|
|
event.reply_token,
|
|
TemplateSendMessage(
|
|
TemplateSendMessage(
|
|
@@ -152,30 +152,16 @@ def message(event):
|
|
def collection(userid):
|
|
def collection(userid):
|
|
# db connect
|
|
# db connect
|
|
db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/arkcard?charset=utf8mb4')
|
|
db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/arkcard?charset=utf8mb4')
|
|
- table1 = db['users']
|
|
|
|
- table2 = db['nft']
|
|
|
|
|
|
|
|
- if table1.find_one(userid=userid) and not table2.find_one(userid=userid):
|
|
|
|
- sql = 'SELECT * FROM nft WHERE userid IS NULL LIMIT 5'
|
|
|
|
- result = db.query(sql)
|
|
|
|
- rows = {}
|
|
|
|
- i = 0
|
|
|
|
- for row in result:
|
|
|
|
- rows[i] = row
|
|
|
|
- i += 1
|
|
|
|
- return rows
|
|
|
|
- elif not table2.find_one(userid=userid):
|
|
|
|
- return "Error: User not found."
|
|
|
|
- else:
|
|
|
|
- xname = userid
|
|
|
|
- sql = 'SELECT a.* FROM nft a INNER JOIN (SELECT userid FROM users WHERE userid="' + xname + '") b ON b.userid = a.userid'
|
|
|
|
- result = db.query(sql)
|
|
|
|
- rows = {}
|
|
|
|
- i = 0
|
|
|
|
- for row in result:
|
|
|
|
- rows[i] = row
|
|
|
|
- i += 1
|
|
|
|
- return rows
|
|
|
|
|
|
+ xname = userid
|
|
|
|
+ sql = 'SELECT a.* FROM nft a INNER JOIN (SELECT userid FROM users WHERE userid="'+xname+'") b ON b.userid = a.userid'
|
|
|
|
+ result = db.query(sql)
|
|
|
|
+ rows = {}
|
|
|
|
+ i = 0
|
|
|
|
+ for row in result:
|
|
|
|
+ rows[i] = row
|
|
|
|
+ i += 1
|
|
|
|
+ return rows
|
|
|
|
|
|
# receive handler
|
|
# receive handler
|
|
@app.get("/receive/{userid}")
|
|
@app.get("/receive/{userid}")
|
|
@@ -215,5 +201,35 @@ async def receive(userModel : models.TransactionNft):
|
|
table2.update(dict(user_obj), ['id'])
|
|
table2.update(dict(user_obj), ['id'])
|
|
return {'msg': 'OK'}
|
|
return {'msg': 'OK'}
|
|
|
|
|
|
|
|
+# shop handler
|
|
|
|
+@app.get("/shop/{userid}")
|
|
|
|
+def buy(userid):
|
|
|
|
+ # db connect
|
|
|
|
+ db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/arkcard?charset=utf8mb4')
|
|
|
|
+
|
|
|
|
+ sql = 'SELECT * FROM nft WHERE userid IS NULL LIMIT 5'
|
|
|
|
+ result = db.query(sql)
|
|
|
|
+ rows = {}
|
|
|
|
+ i = 0
|
|
|
|
+ for row in result:
|
|
|
|
+ rows[i] = row
|
|
|
|
+ i += 1
|
|
|
|
+ return rows
|
|
|
|
+
|
|
|
|
+@app.get("/buy/{userid}/{nftid}")
|
|
|
|
+async def buy(userid,nftid):
|
|
|
|
+ # db connect
|
|
|
|
+ db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/arkcard?charset=utf8mb4')
|
|
|
|
+ table2 = db['nft']
|
|
|
|
+
|
|
|
|
+ if not table2.find_one(id=nftid):
|
|
|
|
+ print("error: nft not found")
|
|
|
|
+ return {'msg': 'nft not found'}
|
|
|
|
+ else:
|
|
|
|
+ user_obj = table2.find_one(id=nftid)
|
|
|
|
+ user_obj['userid'] = userid
|
|
|
|
+ table2.update(dict(user_obj), ['id'])
|
|
|
|
+ return {'msg': 'OK'}
|
|
|
|
+
|
|
if __name__ == '__main__':
|
|
if __name__ == '__main__':
|
|
uvicorn.run("main:app", host="0.0.0.0", port=8228, reload=True)
|
|
uvicorn.run("main:app", host="0.0.0.0", port=8228, reload=True)
|