update: subject template string
This commit is contained in:
@@ -150,6 +150,12 @@
|
|||||||
<option value=""> </option>
|
<option value=""> </option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="pure-u-1 pure-u-md-1-3">
|
||||||
|
<label for="column_vars">Variables</label>
|
||||||
|
<select id="column_vars" class="columns pure-u-23-24">
|
||||||
|
<option value=""> </option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<br>
|
<br>
|
||||||
|
|||||||
27
main.py
27
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-code', type=str, default='客户编号')
|
||||||
parser.add_argument('--column-pays', type=str, default='国家地区')
|
parser.add_argument('--column-pays', type=str, default='国家地区')
|
||||||
parser.add_argument('--column-sent', 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('-a', '--address', type=str)
|
||||||
parser.add_argument('-p', '--password', type=str)
|
parser.add_argument('-p', '--password', type=str)
|
||||||
parser.add_argument('-t', '--timeout', type=int, default=60)
|
parser.add_argument('-t', '--timeout', type=int, default=60)
|
||||||
@@ -278,6 +279,7 @@ def main(driver: WebDriver):
|
|||||||
cc = parameters.get('column_code')
|
cc = parameters.get('column_code')
|
||||||
cs = parameters.get('column_sent')
|
cs = parameters.get('column_sent')
|
||||||
cp = parameters.get('column_pays')
|
cp = parameters.get('column_pays')
|
||||||
|
cv = parameters.get('column_vars')
|
||||||
|
|
||||||
if parameters.get('slice'):
|
if parameters.get('slice'):
|
||||||
if subcategory := parameters.get('subcategory'):
|
if subcategory := parameters.get('subcategory'):
|
||||||
@@ -298,11 +300,6 @@ def main(driver: WebDriver):
|
|||||||
if cs not in frame:
|
if cs not in frame:
|
||||||
frame[cs] = None
|
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')
|
rate = 60 / parameters.get('interval')
|
||||||
length = limit - frame.loc[index, cs].count()
|
length = limit - frame.loc[index, cs].count()
|
||||||
|
|
||||||
@@ -340,12 +337,11 @@ def main(driver: WebDriver):
|
|||||||
current = cursor
|
current = cursor
|
||||||
cursor += 1
|
cursor += 1
|
||||||
|
|
||||||
name = names[current]
|
|
||||||
code = codes[current]
|
|
||||||
axis = index[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
|
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():
|
if (remarks := frame.loc[axis, cs]) is not None and str(remarks).strip():
|
||||||
tell(f'已跳过项目 {recipient}')
|
tell(f'已跳过项目 {recipient}')
|
||||||
@@ -430,6 +426,19 @@ def main(driver: WebDriver):
|
|||||||
click(wrapper)
|
click(wrapper)
|
||||||
to.send_keys(recipient + Keys.ENTER)
|
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")
|
token = locate("div.io-ox-mail-compose-window .mail-input .tokenfield .token")
|
||||||
target = token.get_attribute('innerText').strip()
|
target = token.get_attribute('innerText').strip()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user