「Workflow」短信群发器v2 构想及成品解析

引言

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

短信

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

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

短信群发v2演示视频

如果无法观看请Safari打开

构想

最初(v1)的构想是比较简单的,就是将wf做成两个核心板块,分别为模板板块和数据板块。这样分的原因有三:

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

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

缺点:

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

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

后来v2是针对v1中的缺点进行改进。
先给出v2的wf图片和链接以便在阅读的过程中参考:

图片v2链接


2017-12-2更新:关于提高「数据模板」输入效率的补充


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位的数字则设为「电话」变量;否则就是普通变量,通过「Add to Variable」将其添加到「x」中。在最后对单条信息处理完时,我们需要将「x」设置为「Nothing」,让它清空来接受新的数据。(图中没有表现)
注:「Add to Variable」并不是将传递给它的数据简单地「糅合」在一起,而是「分隔开」且「有序」地储存在「变量」中,可以将其理解为编程中的「List」数据类型。这个特性为后来的变量处理简化了很多。

元素的区别和分类

其实这里是可以做得更优雅,即将第一位元素直接设置为电话变量,这样就可以不用对电话号码的格式进行限定(有些电话号码格式不是11位或电话号码中带有连字符或国家代码)。只不过我懒,因此就不作改动了。


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是个万能工具箱,而你就就是一个木匠,请不要吝啬自己的脑洞以及智慧,拿上称手的工具,创造出属于自己的杰作吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容