|  | @@ -1,6 +1,7 @@
 | 
	
		
			
				|  |  |  import uvicorn
 | 
	
		
			
				|  |  |  import fastapi
 | 
	
		
			
				|  |  |  from fastapi.middleware.cors import CORSMiddleware
 | 
	
		
			
				|  |  | +from fastapi.responses import HTMLResponse
 | 
	
		
			
				|  |  |  from linebot import LineBotApi, WebhookHandler
 | 
	
		
			
				|  |  |  from linebot.models import (
 | 
	
		
			
				|  |  |      MessageEvent, TextMessage, TextSendMessage, FollowEvent, TemplateSendMessage, ButtonsTemplate, URITemplateAction,
 | 
	
	
		
			
				|  | @@ -12,6 +13,7 @@ import qrcode
 | 
	
		
			
				|  |  |  from PIL import Image
 | 
	
		
			
				|  |  |  import base64, io
 | 
	
		
			
				|  |  |  from random import randrange
 | 
	
		
			
				|  |  | +import models
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  app = fastapi.FastAPI()
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -27,13 +29,6 @@ app.add_middleware(
 | 
	
		
			
				|  |  |  line_bot_api = LineBotApi("SJT7VPT4RMQFLcS27jQBy3FcC24gtDrkcwJWZ5Xzqesr5T78LOKudHEJzt0k3b2S7n4KPwf27J7DVz2c8NQ4plSaaQylEeB1cYrfejaE/RPG/lCIQBYe4iBTzo26s4i2PcmT89837per/lTyvhVIKAdB04t89/1O/w1cDnyilFU=")
 | 
	
		
			
				|  |  |  handler = WebhookHandler("411ae3ef7e766739ed2c2c27b249d010")
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -# db connect
 | 
	
		
			
				|  |  | -db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/arkcard?charset=utf8mb4')
 | 
	
		
			
				|  |  | -table = db['users']
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -# var
 | 
	
		
			
				|  |  | -rand_num = str(randrange(99999))
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  # callback event
 | 
	
		
			
				|  |  |  @app.post("/callback")
 | 
	
		
			
				|  |  |  async def callback(request: fastapi.Request):
 | 
	
	
		
			
				|  | @@ -81,7 +76,12 @@ def receive(userid):
 | 
	
		
			
				|  |  |  def handle_follow(event):
 | 
	
		
			
				|  |  |      # get user id when follow
 | 
	
		
			
				|  |  |      real_user_id = event.source.user_id
 | 
	
		
			
				|  |  | -    # rand_num = randrange(999999)
 | 
	
		
			
				|  |  | +    rand_num = str(randrange(99999))
 | 
	
		
			
				|  |  | +    # db connect
 | 
	
		
			
				|  |  | +    db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/arkcard?charset=utf8mb4')
 | 
	
		
			
				|  |  | +    table = db['users']
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    print(rand_num)
 | 
	
		
			
				|  |  |      user_id = event.source.user_id + rand_num
 | 
	
		
			
				|  |  |      result = table.find_one(userid=real_user_id)
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -136,7 +136,6 @@ def handle_follow(event):
 | 
	
		
			
				|  |  |          data = dict(userid=real_user_id, useraddress=user_address, base=result)
 | 
	
		
			
				|  |  |          table.insert(data)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        print(" Follow event: " + event.source.user_id)
 | 
	
		
			
				|  |  |          line_bot_api.reply_message(
 | 
	
		
			
				|  |  |              event.reply_token,
 | 
	
		
			
				|  |  |              TextSendMessage(text='歡迎加入好友'))
 | 
	
	
		
			
				|  | @@ -151,14 +150,14 @@ def message(event):
 | 
	
		
			
				|  |  |              actions=[
 | 
	
		
			
				|  |  |                  URITemplateAction(
 | 
	
		
			
				|  |  |                      label='打開發送頁面',
 | 
	
		
			
				|  |  | -                    uri='https://api.ptt.cx:8228/collection/' + event.source.user_id),])
 | 
	
		
			
				|  |  | +                    uri='http://ark.cards/collect.html?' + event.source.user_id),])
 | 
	
		
			
				|  |  |          line_bot_api.reply_message(
 | 
	
		
			
				|  |  |              event.reply_token,
 | 
	
		
			
				|  |  |              TemplateSendMessage(
 | 
	
		
			
				|  |  |                  alt_text="Receive",
 | 
	
		
			
				|  |  |                  template=button_template_message))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    elif '我要接收' in event.message.text:
 | 
	
		
			
				|  |  | +    elif '我要接收' in  event.message.text:
 | 
	
		
			
				|  |  |          button_template_message = ButtonsTemplate(
 | 
	
		
			
				|  |  |              title=' ',
 | 
	
		
			
				|  |  |              text='點擊並打開接收頁面,即可分享接收地址給對方!',
 | 
	
	
		
			
				|  | @@ -185,6 +184,7 @@ def message(event):
 | 
	
		
			
				|  |  |              TemplateSendMessage(
 | 
	
		
			
				|  |  |                  alt_text="Receive",
 | 
	
		
			
				|  |  |                  template=button_template_message))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      else:
 | 
	
		
			
				|  |  |          button_template_message = ButtonsTemplate(
 | 
	
		
			
				|  |  |              title=' ',
 | 
	
	
		
			
				|  | @@ -199,5 +199,6 @@ def message(event):
 | 
	
		
			
				|  |  |                  alt_text="Receive",
 | 
	
		
			
				|  |  |                  template=button_template_message))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  if __name__ == '__main__':
 | 
	
		
			
				|  |  |      uvicorn.run("main:app", host="0.0.0.0", port=8228, reload=True)
 |