babaTEEpe commited on
Commit
4fd0b5b
·
verified ·
1 Parent(s): 9861747

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -7
app.py CHANGED
@@ -21,10 +21,10 @@ logger = logging.getLogger("CloudBot")
21
  app = FastAPI(title="cTra Webhook Bot")
22
 
23
  # Config from Environment variables (Hugging Face Secrets)
24
- CLIENT_ID = os.environ.get("CTRADER_CLIENT_ID", "")
25
- CLIENT_SECRET = os.environ.get("CTRADER_CLIENT_SECRET", "")
26
- CTRADER_ENV = os.environ.get("CTRADER_ENV", "demo").lower() # "demo" or "live"
27
- raw_vol = os.environ.get("TRADE_VOLUME", "1000")
28
  try:
29
  vol_float = float(raw_vol)
30
  if vol_float < 10.0:
@@ -504,6 +504,7 @@ async def dashboard(request: Request):
504
 
505
  @app.get("/login")
506
  async def login(request: Request):
 
507
  # Retrieve App redirect URI dynamically (supporting Hugging Face reverse proxy)
508
  space_host = os.environ.get("SPACE_HOST")
509
  if space_host:
@@ -515,12 +516,12 @@ async def login(request: Request):
515
 
516
  logger.info(f"Login URL redirect_uri generated: {redirect_uri}")
517
 
 
518
  auth_url = (
519
  f"https://id.ctrader.com/my/settings/openapi/grantingaccess"
520
  f"?client_id={CLIENT_ID}"
521
- f"&redirect_uri={redirect_uri}"
522
  f"&scope=trading"
523
- f"&product=web"
524
  )
525
  return RedirectResponse(auth_url)
526
 
@@ -556,7 +557,7 @@ async def callback(request: Request, code: str = None):
556
  }
557
 
558
  # Fetch account ID via protobuf socket (token endpoint doesn't return accounts)
559
- account_id = os.environ.get("CTRADER_ACCOUNT_ID", "")
560
  if not account_id:
561
  try:
562
  host = "live.ctraderapi.com" if CTRADER_ENV == "live" else "demo.ctraderapi.com"
 
21
  app = FastAPI(title="cTra Webhook Bot")
22
 
23
  # Config from Environment variables (Hugging Face Secrets)
24
+ CLIENT_ID = os.environ.get("CTRADER_CLIENT_ID", "").strip()
25
+ CLIENT_SECRET = os.environ.get("CTRADER_CLIENT_SECRET", "").strip()
26
+ CTRADER_ENV = os.environ.get("CTRADER_ENV", "demo").lower().strip() # "demo" or "live"
27
+ raw_vol = os.environ.get("TRADE_VOLUME", "1000").strip()
28
  try:
29
  vol_float = float(raw_vol)
30
  if vol_float < 10.0:
 
504
 
505
  @app.get("/login")
506
  async def login(request: Request):
507
+ import urllib.parse
508
  # Retrieve App redirect URI dynamically (supporting Hugging Face reverse proxy)
509
  space_host = os.environ.get("SPACE_HOST")
510
  if space_host:
 
516
 
517
  logger.info(f"Login URL redirect_uri generated: {redirect_uri}")
518
 
519
+ encoded_redirect_uri = urllib.parse.quote(redirect_uri)
520
  auth_url = (
521
  f"https://id.ctrader.com/my/settings/openapi/grantingaccess"
522
  f"?client_id={CLIENT_ID}"
 
523
  f"&scope=trading"
524
+ f"&redirect_uri={encoded_redirect_uri}"
525
  )
526
  return RedirectResponse(auth_url)
527
 
 
557
  }
558
 
559
  # Fetch account ID via protobuf socket (token endpoint doesn't return accounts)
560
+ account_id = os.environ.get("CTRADER_ACCOUNT_ID", "").strip()
561
  if not account_id:
562
  try:
563
  host = "live.ctraderapi.com" if CTRADER_ENV == "live" else "demo.ctraderapi.com"