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

推荐订阅源

H
Help Net Security
月光博客
月光博客
IT之家
IT之家
B
Blog RSS Feed
T
Tailwind CSS Blog
The GitHub Blog
The GitHub Blog
博客园 - 三生石上(FineUI控件)
MyScale Blog
MyScale Blog
J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - Franky
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
博客园_首页
B
Blog
V
V2EX
腾讯CDC
Vercel News
Vercel News
量子位
Microsoft Security Blog
Microsoft Security Blog

少数派

派早报: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 - 少数派
巧用「捷径」Base64 和解压缩功能 | 一日一技 - 少数派
2018-12-27 · via 少数派

为和我家小仙女聊天时能有更多表情包,本人决定把 LINE Store 洗劫一空,但在重写捷径 LINE Sticker¹ 时遇到了两个问题。一是捷径无法直接提取封装在 meta² 文件中的 json³ 数据,因此对于 meta 文件无法直接使用 「Get Dictionary」(获取词典)功能;另是在解压一个压缩文件后,由于捷径在处理流程时不支持文件路径功能,因此无法直接获取其中的二级文件夹中的文件。山穷水尽疑无路,柳暗花明又一村,困恼许久后还是用谜之操作成功解决了这两个问题。

¹ 捷径版本 V2.1.2。通过 MitM 利用 LINE API 下载表情包,由于能够以免费形式下载任意表情包,因此不公开。
² Metafile 一种能够存储多种数据格式的文件类型。
³ Json 一种轻量级的数据交换格式。

提取 meta 文件中的字符

最初,笔者试图更改 meta 文件的后缀为捷径支持的文件后缀,如 .txt,最终无果而归。笔者认为可能是由于捷径在处理文件时,对于文件名,使用的是类似于 Tag 🏷️ 的标记方式,因此改变文件后缀是无用的。不过此想法为进一步的操作提供了思路,既然无法改变文件格式,那不如去除文件格式,因此得到以下操作:

提取 meta 文件中的字符流程
提取 meta 文件中的字符流程

我们可以先对 meta 用「Base64 Encode」⁴进行编码再解码,就可以成功提取到其中包含的字符了。示例 meta to text 如下:

捷径 meta to text
捷径 meta to text

Base64 一种基于64个可打印字符来表示二进制数据的方法。

压缩文件中二级文件夹内的文件提取

捷径运行 LINE Sticker 下载到一个动态表情包的压缩包,可解压缩后发现需要的动态表情图片在一个文件夹里,在尝试过「文件过滤」等功能后无功而返,均无法提取到所要的表情图片。开始时笔者通过「捷径嵌套」或直接调用 iCloud Drive 来实现这个功能,但其操作过于繁琐,运行时产生大量垃圾文件占用 iCloud Drive 的空间等…弊大于利。参照提取 meta 中字符的方法,不难想出这里要进行一个去除路径有关的操作,而与之相关的动作也仅有「Extract Archive」。

压缩文件中二级文件夹内的文件提取流程
压缩文件中二级文件夹内的文件提取流程

于是,对一个压缩包解压后,可以通过文件夹的后缀长度为0这一特性用「If」获取文件夹⁵,先「Make Archive」再「Extract Archive」就可以得到文件夹内的文件了。示例 folder in zip

捷径 folder in zip
捷径 folder in zip

⁵「Filter Files」动作在这里无法使用,故用「If」代替。

结语

综上所述易见,这些方法都是对不完美乃至功能设计残缺的妥协。对于 meta 提取字符存在文字数据混合式 meta 可能提取失败以及只能支持较小的 meta 文件等问题…而对压缩文件中文件夹中文件的提取,进行「压缩」和「解压缩」时对性能的浪费和对三级及多级文件夹中文件提取繁琐的问题尚未解决。捷径随 iOS 12 发布已迈入 2.0 版本,就目前而言仍有许多不足之处,而作为普通用户的我们也只能寄希望于捷径开发团队的更新能带来相关功能及优化。