git -C '/home/opc/rocketa.git' show 23b23db -- oci_func/click/func.pycommit 23b23db7f909c788ebc35f447165aa1e465b24e4
Author: Satoshi Ujihara <satoshi_ujihara@fivegate.jp>
Date: Wed Nov 12 11:38:20 2025 +0900
翻訳とクリックURLの仕様変更
diff --git a/oci_func/click/func.py b/oci_func/click/func.py
index 2a6090f..dab5f63 100644
--- a/oci_func/click/func.py
+++ b/oci_func/click/func.py
@@ -10,10 +10,10 @@ import random
import urllib.parse
import hashlib
import os, time
-
+import re
from fdk import response
-
+from urllib.parse import quote
os.environ['TZ'] = 'Asia/Tokyo'
time.tzset()
@@ -562,6 +562,7 @@ def handler(ctx, data: io.BytesIO = None):
if uid != '' and int(result_method) != 4:
url += '&media_uid=' + uid
"""
+ """
params = {
"sid": sid,
"ad_id": ad_id,
@@ -569,6 +570,7 @@ def handler(ctx, data: io.BytesIO = None):
"media_id": media_id,
}
+
formatter = string.Formatter()
fields = [fname for _, fname, _, _ in formatter.parse(url) if fname]
missing = [f for f in fields if f not in params]
@@ -591,14 +593,24 @@ def handler(ctx, data: io.BytesIO = None):
url = url.format(sid=sid, ad_id=ad_id, client_id=client_id, media_id=media_id, media_uid=uid)
else:
url = url.format(sid=sid, ad_id=ad_id, client_id=client_id, media_id=media_id)
-
- logging.info(f"■■■595■■■{url}")
+ """
+ #master_ad_idという名前だと扱いずらい
+ params["ad_id"] = params.pop("master_ad_id")
+ params["media_uid"] = params.pop("uid")
+ # 置換処理(URLエンコードあり)
+ result = re.sub(
+ r"\{(\w+)\}",
+ lambda m: quote(str(params.get(m.group(1)))) if params.get(m.group(1)) is not None else "",
+ url
+ )
+
+ logging.info(f"■■■595■■■{result}")
if error == 0:
return response.Response(
ctx,
status_code=302,
- headers={"Location": url}
+ headers={"Location": result}
)