|
@@ -14,7 +14,9 @@ from PIL import Image
|
|
|
import base64, io
|
|
|
from random import randrange
|
|
|
import models
|
|
|
+import time
|
|
|
|
|
|
+time = time.ctime()
|
|
|
app = fastapi.FastAPI()
|
|
|
|
|
|
app.add_middleware(
|
|
@@ -171,41 +173,32 @@ def message(event):
|
|
|
def collection(userid):
|
|
|
# db connect
|
|
|
db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/arkcard?charset=utf8mb4')
|
|
|
- table2 = db['nft']
|
|
|
table3 = db['nftdrops']
|
|
|
-
|
|
|
+ table2 = db['nft']
|
|
|
+ nftdrops = {}
|
|
|
nft = {}
|
|
|
- nft1 = {}
|
|
|
+ nfts_all = {}
|
|
|
i = 0
|
|
|
- if table3.find_one(userid=userid) and table2.find_one(userid=userid):
|
|
|
- results1 = table3.find_one(userid=userid)
|
|
|
- results2 = table2.find(userid=userid)
|
|
|
- nft[0] = results1
|
|
|
- for row in results2:
|
|
|
- nft1[i] = row
|
|
|
- i += 1
|
|
|
- nft[1] = nft1
|
|
|
- return nft
|
|
|
+ if not table3.find_one(userid=userid) and not table2.find_one(userid=userid):
|
|
|
db.close()
|
|
|
+ return "error: user don't have any nft"
|
|
|
|
|
|
- elif table3.find_one(userid=userid) and not table2.find_one(userid=userid):
|
|
|
- results1 = table3.find_one(userid=userid)
|
|
|
- nft[0] = results1
|
|
|
- return nft
|
|
|
- db.close()
|
|
|
+ else:
|
|
|
+ results1 = table3.find(userid=userid)
|
|
|
+ for item in results1:
|
|
|
+ nftdrops[i] = item
|
|
|
+ i += 1
|
|
|
|
|
|
- elif table2.find_one(userid=userid) and not table3.find_one(userid=userid):
|
|
|
results2 = table2.find(userid=userid)
|
|
|
- for row in results2:
|
|
|
- nft1[i] = row
|
|
|
+ for item in results2:
|
|
|
+ nft[i] = item
|
|
|
i += 1
|
|
|
- nft[1] = nft1
|
|
|
- return nft
|
|
|
- db.close()
|
|
|
|
|
|
- else:
|
|
|
+ nfts_all[0] = nftdrops
|
|
|
+ nfts_all[1] = nft
|
|
|
+ return nfts_all
|
|
|
db.close()
|
|
|
- print("error: user don't have any nft")
|
|
|
+
|
|
|
db.close()
|
|
|
|
|
|
# receive handler
|
|
@@ -294,18 +287,20 @@ async def nftdrops(userModel : models.NftDrops):
|
|
|
|
|
|
# input對應
|
|
|
userid = userModel.userid
|
|
|
+ email = userModel.email
|
|
|
+ eventid = '1'
|
|
|
+ nftid = '101'
|
|
|
|
|
|
# 如果userid不在db, 寫入到一個空值nft
|
|
|
if not table3.find_one(userid=userid):
|
|
|
- sql = 'UPDATE arkcard.nftdrops SET userid="' + userid + '" WHERE userid IS NULL OR userid ="" LIMIT 1'
|
|
|
- result = db.query(sql)
|
|
|
+ # 新增資料
|
|
|
+ table3.insert(dict(eventid=eventid, nftid=nftid, userid=userid, email=email, time=time))
|
|
|
db.close()
|
|
|
- return "「火」通行證已送出"
|
|
|
+ return "新增成功"
|
|
|
# 如果userid存在,回傳通知
|
|
|
else:
|
|
|
db.close()
|
|
|
- return "您已收藏過「火」通行證"
|
|
|
- db.close()
|
|
|
+ return "已有資料"
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
uvicorn.run("main:app", host="0.0.0.0", port=8228, reload=True,ssl_context=('/etc/letsencrypt/live/ark.cards/fullchain.pem', '/etc/letsencrypt/live/ark.cards/privkey.pem'))
|