mirror of
https://github.com/KenanZhu/AutoLibrary.git
synced 2026-06-17 23:13:03 +08:00
fix(ALAutoScript*Dialog): 统一编排窗口生成的 Lua 函数名与 ASEngine 运行时一致
- date_add → dateadd, time_add → timeadd - CURRENT_DATE() → datenow(), CURRENT_TIME() → timenow() - 编辑窗口 Date/Time 字面量按钮模板同步更新为 date()/time() 格式 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -329,8 +329,8 @@ class ALAutoScriptEditDialog(QDialog):
|
||||
]
|
||||
self.addButtonsToGrid(literalLayout, bool_buttons, 0, 0, 3)
|
||||
dateTimeButtons = [
|
||||
("日期", '"2099-01-01"'),
|
||||
("时间", '"00:00"'),
|
||||
("日期", 'date(2026, 1, 1)'),
|
||||
("时间", 'time(0, 0)'),
|
||||
]
|
||||
self.addButtonsToGrid(literalLayout, dateTimeButtons, 1, 0, 3)
|
||||
hintButtons = [
|
||||
@@ -358,8 +358,8 @@ class ALAutoScriptEditDialog(QDialog):
|
||||
funcButtons = [
|
||||
("datenow()", "datenow()", "返回当前日期的 Unix 时间戳"),
|
||||
("timenow()", "timenow()", "返回当前时间在一天中的分钟数"),
|
||||
("dateadd(d, n)", "dateadd(, )", "日期偏移: dateadd(日期时间戳, 天数)"),
|
||||
("timeadd(t, n)", "timeadd(, )", "时间偏移: timeadd(分钟数, 分钟数)"),
|
||||
("dateadd(day, n)", "dateadd(, )", "日期偏移: dateadd(日期时间戳, 天数)"),
|
||||
("timeadd(time, n)", "timeadd(, )", "时间偏移: timeadd(分钟数, 分钟数)"),
|
||||
]
|
||||
for i, (text, template, tooltip) in enumerate(funcButtons):
|
||||
btn = QPushButton(text)
|
||||
|
||||
@@ -203,7 +203,6 @@ class ConditionalBlock(QGroupBox):
|
||||
]
|
||||
if not condTexts:
|
||||
condTexts = ["true"]
|
||||
|
||||
if len(condTexts) == 1:
|
||||
combined = condTexts[0]
|
||||
else:
|
||||
|
||||
@@ -90,7 +90,7 @@ DATE_OFFSET_OPTIONS = [
|
||||
("天", "days"),
|
||||
("周", "weeks"),
|
||||
# NOTE: "月" and "年" use fixed day counts (30 / 365), not calendar months/years,
|
||||
# because date_add() works with second-level offsets (n * 86400).
|
||||
# because dateadd() works with second-level offsets (n * 86400).
|
||||
("月", "months"),
|
||||
("年", "years"),
|
||||
]
|
||||
@@ -423,7 +423,7 @@ def encodeValueStr(
|
||||
Encode a raw widget value as a Lua expression.
|
||||
|
||||
Arithmetic expressions (A + B) are passed through for numeric types;
|
||||
Date/Time arithmetic is translated to ``date_add()`` / ``time_add()`` calls.
|
||||
Date/Time arithmetic is translated to ``dateadd()`` / ``timeadd()`` calls.
|
||||
"""
|
||||
|
||||
if var_type in ("Date", "Time"):
|
||||
@@ -464,24 +464,24 @@ def encodeDateOrTime(
|
||||
right = m_arith.group(3).strip()
|
||||
operand = right if sign == "+" else f"-{right}"
|
||||
if left == "CURRENT_DATE":
|
||||
return f"date_add(CURRENT_DATE(), {operand})"
|
||||
return f"dateadd(datenow(), {operand})"
|
||||
if left == "CURRENT_TIME":
|
||||
return f"time_add(CURRENT_TIME(), {operand})"
|
||||
return f"timeadd(timenow(), {operand})"
|
||||
if var_type == "Date":
|
||||
return f"date_add({left}, {operand})"
|
||||
return f"dateadd({left}, {operand})"
|
||||
if var_type == "Time":
|
||||
return f"time_add({left}, {operand})"
|
||||
return f"timeadd({left}, {operand})"
|
||||
return f"{left} {sign} {right}"
|
||||
if up == "CURRENT_DATE":
|
||||
return "CURRENT_DATE()"
|
||||
return "datenow()"
|
||||
if up == "CURRENT_TIME":
|
||||
return "CURRENT_TIME()"
|
||||
return "timenow()"
|
||||
_REL_MAP = {
|
||||
"前天": "date_add(CURRENT_DATE(), -2)",
|
||||
"昨天": "date_add(CURRENT_DATE(), -1)",
|
||||
"今天": "CURRENT_DATE()",
|
||||
"明天": "date_add(CURRENT_DATE(), 1)",
|
||||
"后天": "date_add(CURRENT_DATE(), 2)",
|
||||
"前天": "dateadd(datenow(), -2)",
|
||||
"昨天": "dateadd(datenow(), -1)",
|
||||
"今天": "datenow()",
|
||||
"明天": "dateadd(datenow(), 1)",
|
||||
"后天": "dateadd(datenow(), 2)",
|
||||
}
|
||||
if s in _REL_MAP:
|
||||
return _REL_MAP[s]
|
||||
|
||||
@@ -178,9 +178,11 @@ class ConditionRowFrame(QFrame):
|
||||
if not data:
|
||||
return ""
|
||||
name, vartype = data
|
||||
# CURRENT_DATE / CURRENT_TIME are Lua functions — call them, not reference them
|
||||
if name in ("CURRENT_DATE", "CURRENT_TIME"):
|
||||
name = f"{name}()"
|
||||
# CURRENT_DATE / CURRENT_TIME map to datenow() / timenow()
|
||||
if name == "CURRENT_DATE":
|
||||
name = "datenow()"
|
||||
elif name == "CURRENT_TIME":
|
||||
name = "timenow()"
|
||||
opSym = self.opCombo.currentData()
|
||||
if self._rawRhsExpr:
|
||||
return f"{name} {opSym} {self._rawRhsExpr}"
|
||||
@@ -189,8 +191,10 @@ class ConditionRowFrame(QFrame):
|
||||
rd = self.rhsVarCombo.currentData()
|
||||
if rd:
|
||||
rhsName = rd[0]
|
||||
if rhsName in ("CURRENT_DATE", "CURRENT_TIME"):
|
||||
rhsName = f"{rhsName}()"
|
||||
if rhsName == "CURRENT_DATE":
|
||||
rhsName = "datenow()"
|
||||
elif rhsName == "CURRENT_TIME":
|
||||
rhsName = "timenow()"
|
||||
return f"{name} {opSym} {rhsName}"
|
||||
rhsText = self.rhsVarCombo.currentText().strip()
|
||||
if rhsText:
|
||||
@@ -384,18 +388,18 @@ class ActionStepFrame(QFrame):
|
||||
elif op == "add":
|
||||
if vartype == "Date" and hasattr(self.valueStack.currentWidget(), "getOffsetDays"):
|
||||
days = self.valueStack.currentWidget().getOffsetDays()
|
||||
return f" {target} = date_add({target}, {days})"
|
||||
return f" {target} = dateadd({target}, {days})"
|
||||
if vartype == "Time" and hasattr(self.valueStack.currentWidget(), "getOffsetHours"):
|
||||
hours = self.valueStack.currentWidget().getOffsetHours()
|
||||
return f" {target} = time_add({target}, {hours})"
|
||||
return f" {target} = timeadd({target}, {hours})"
|
||||
return f" {target} = {target} + {rawVal}"
|
||||
elif op == "sub":
|
||||
if vartype == "Date" and hasattr(self.valueStack.currentWidget(), "getOffsetDays"):
|
||||
days = self.valueStack.currentWidget().getOffsetDays()
|
||||
return f" {target} = date_add({target}, -{days})"
|
||||
return f" {target} = dateadd({target}, -{days})"
|
||||
if vartype == "Time" and hasattr(self.valueStack.currentWidget(), "getOffsetHours"):
|
||||
hours = self.valueStack.currentWidget().getOffsetHours()
|
||||
return f" {target} = time_add({target}, -{hours})"
|
||||
return f" {target} = timeadd({target}, -{hours})"
|
||||
return f" {target} = {target} - {rawVal}"
|
||||
return ""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user