diff --git a/index.html b/index.html
index a2ccb7f..3ad8c7f 100644
--- a/index.html
+++ b/index.html
@@ -150,6 +150,12 @@
+
+
+
+
diff --git a/main.py b/main.py
index 75c1d43..1186fee 100644
--- a/main.py
+++ b/main.py
@@ -37,6 +37,7 @@ parser.add_argument('--column-name', type=str, default='主要联系人')
parser.add_argument('--column-code', type=str, default='客户编号')
parser.add_argument('--column-pays', type=str, default='国家地区')
parser.add_argument('--column-sent', type=str, default='已发送')
+parser.add_argument('--column-vars', type=str, default='变量值')
parser.add_argument('-a', '--address', type=str)
parser.add_argument('-p', '--password', type=str)
parser.add_argument('-t', '--timeout', type=int, default=60)
@@ -278,6 +279,7 @@ def main(driver: WebDriver):
cc = parameters.get('column_code')
cs = parameters.get('column_sent')
cp = parameters.get('column_pays')
+ cv = parameters.get('column_vars')
if parameters.get('slice'):
if subcategory := parameters.get('subcategory'):
@@ -298,11 +300,6 @@ def main(driver: WebDriver):
if cs not in frame:
frame[cs] = None
- seriesdict = frame.iloc[index].to_dict(orient='list')
- recipients = seriesdict.get(ca, [None] * limit)
- names = seriesdict.get(cn, [None] * limit)
- codes = seriesdict.get(cc, [None] * limit)
-
rate = 60 / parameters.get('interval')
length = limit - frame.loc[index, cs].count()
@@ -340,12 +337,11 @@ def main(driver: WebDriver):
current = cursor
cursor += 1
- name = names[current]
- code = codes[current]
axis = index[current]
-
+ name = dict(frame.iloc[axis]).get(cn)
+ code = dict(frame.iloc[axis]).get(cc)
+ recipient = str(frame.loc[axis, ca]).strip()
occurrence = pandas.Series.count(frame[frame[cc] == code][cs]) if code is not None else 0
- recipient = str(recipients[current]).strip()
if (remarks := frame.loc[axis, cs]) is not None and str(remarks).strip():
tell(f'已跳过项目 {recipient}')
@@ -430,6 +426,19 @@ def main(driver: WebDriver):
click(wrapper)
to.send_keys(recipient + Keys.ENTER)
+ # 引入变量值
+ if cv in frame and (variables := frame.loc[axis, cv]):
+ clean = False
+ target = locate("div.io-ox-mail-compose-window div[data-extension-id='subject'] input")
+ attribute = target.get_attribute('value')
+
+ for i, value in enumerate(str(variables).split(',')):
+ attribute = attribute.replace(f'$${i}', value.strip())
+
+ target.send_keys(Keys.BACKSPACE * len(attribute))
+ target.send_keys(attribute)
+ clean = target.get_attribute('value') == attribute
+
token = locate("div.io-ox-mail-compose-window .mail-input .tokenfield .token")
target = token.get_attribute('innerText').strip()