惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
博客园 - 叶小钗
The Cloudflare Blog
D
DataBreaches.Net
J
Java Code Geeks
G
Google Developers Blog
L
LangChain Blog
N
Netflix TechBlog - Medium
Stack Overflow Blog
Stack Overflow Blog
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
小众软件
小众软件
量子位
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
博客园_首页
罗磊的独立博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog
腾讯CDC

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
「Workflow」短信群发器v2 构想及成品解析 - 少数派
2017-11-28 · via 少数派

引言

初入大学的时候,会有许多社团或者团委学生会招新。抱着好奇心以及在大学期间努力变成“现充”的愿想 (已经破灭),就报名了几个组织。不久便收到了他们的面试通知短信。看到来信中有我的名字,想到:他们肯定是用复制黏贴删除编辑的蠢方法吧,自己以后一定不能这样。自此便暗暗想到要用 Workflow 来做一个「半自动化」「变量支持」短信群发器(为何称之为「半」?因为就像机枪中的半自动模式,自动填写短信文本,按一下 send 就发送一条,理论上支持无限变量个数)吃鸡吃多了呵呵呵...

短信内容

这个构想一直存在于我的脑海中,直到我看到我身边的舍友真的如我想象一般,重复着:复制-粘贴-删除-编写-校对-发送,这么一个无聊而且效率极低的过程,我才决定将这个构想转化成成品。 

我不会告诉你我是花了4周的大学计算机课才把v2做出来的...

短信群发v2演示视频

构想

最初(v1)的构想是比较简单的,就是将wf做成两个核心板块,分别为模板板块数据板块

原因有三:

  1. 省去「复制-粘贴-删除」
  2. 在统一的时间进行「编写-校对」
  3. 将数据编辑过程从移动端中解放出来,你只需将编辑好的板块复制粘贴到wf的文本框中

v1版本的实现只用了一节大机课,这使我心生膨胀。但在后来重新审视的过程中,发现了这个wf的一些缺点,这让我萌生出制作v2的念头。

缺点:

  1. 短信文本中只有一个变量「姓名」
  2. wf中拆分数据的动作运用有点变扭,不够优雅

因为十分简单,本文就不对v1作解析了,只放出wf链接:短信群发v1

后来的v2是针对v1中的缺点进行改进。

先给出v2的wf图片和链接以便在阅读的过程中参考:图片v2分享链接

这里我会将整个wf分解成一个个实现片段进行解析。

wf中出现个别英文变量的说明:

  • 模板文本 = text
  • 数据板块 = all
  • 替换的文本 = rplword
  • 模板中被替换的变量符号 = value
  • 编辑完成的短信文本 = t

1. 数据的分割

对「数据的分割」进行解析时,首先我们需要看一下数据是怎么样排列的,这里数据储存的格式为:

电话号码(11位),变量1,变量2,变量3...
电话号码*(11位),变量1*,变量2*,变量3*...
...

因此需要进行两个不同的分割,分别是:通过「行」分割、通过「半角逗号」分割。我们首先通过「行」分割,来获取单条信息的数据;然后通过「半角逗号」分割,来获取单条信息数据中的变量(电话号码以及各个普通变量)

注:当「all」经过「Split Text」动作后就会被分成一块一块,而「Repeat with Each」就会分别对每一块按顺 序执行其内包含的动作。

两个分割

2. 元素的区别和分类

为了将wf的判断过程简化,我将电话号码放在第一位,并且限定它为11位的数字。所以对传递下来的每个元素进行「If」判断,如果是11位的数字则设为「电话」变量1 ;否则就是普通变量,通过「Add to Variable」将其添加到「x」中。在最后对单条信息处理完时,我们需要将「x」设置为「Nothing」,让它清空来接受新的数据(图中没有表现)。

注:「Add to Variable」并不是将传递给它的数据简单地「糅合」,而是「分隔开」且「有序」地储存在「变量」中,可以将其理解为编程中的「List」数据类型。这个特性为后来的变量处理简化了很多。

元素的区别和分类

3. 文本变量的有序替换

获取「x」对其下接「Repeat」,实现文本变量的有序替换。因为变量都是按照顺序来的,即:

「%n」→「变量n」

所以「n」的「有序递增」就成为这个部分的关键(图中体现为「s」)

「n」的「有序递增」

我们知道在「Set Variable」中的变量名称是不能插入另外一个变量的,这就需要新建一个Text框,在框内写入能够递增的「s」来曲线救国,每一次执行「Repeat」,「s」就会 +1s ,藉此实现「%n」的递增。与上一部分的「x」同理,在进行新的「Repeat」之前都需要对「s」进行还原,即重新设置为 1 。

这里运用「If」和两个「Replace Text」是为了避免文本替换对短信模板的污染。「Replace Text」的用法不赘述,看仔细看wf流程就会理解。

因为这个部分的图太长,所以请点击链接观看:文本变量的有序替换

最后

本wf是凭借着我对它浅薄的理解做出来的,过程说实话还是有点辛苦的,但如果能起到抛砖引玉的效果,我也会十分地开心的。Workflow是个万能工具箱,而你就就是一个木匠,请不要吝啬自己的脑洞以及智慧,拿上称手的工具,创造出属于自己的杰作吧。