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()