appcask 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 84b4342166055f34caca13c015782050cc53a3b822def01f171d5b7a3b46cfd6
4
- data.tar.gz: 2d3a8ae4795e748adcc170cb9a718604fe121b1342a87dc562a6c7cf7db62ad2
3
+ metadata.gz: d9bd75bdfd4ad953034b8c138d77182dad7b6ce42574b5759de17c47112a0f40
4
+ data.tar.gz: 3965bdb3ce67b2b05ec839b6b10e8483ad39512f516f1ef9f51b8ed84d6753c7
5
5
  SHA512:
6
- metadata.gz: d352aaccc7f028d535de981d1381d924f9e01c572cd5ccebd37950ce645625f22c2b38cd0eb0aa75cc8c6fbaec0b930d6659e3e0e0438323b1af8a86460f1685
7
- data.tar.gz: e7f972f9abfafb77b5e8bb62af302b51eb61e3e0702a08979941265f7a52d7dda260a848c6d2eca8448d4bfd5fa7d5ec207c2b4ebe60e43bf74c89a06f41ab00
6
+ metadata.gz: 64ac79508b09554074b746bdb19e3fd93e395ca31fc814ba75aa6a2ca9ad37342185f196afc5e078a14d15e6bb0a21195f1a5afc702769315abe7c1b5e619679
7
+ data.tar.gz: f0dbf33f39841824842988acf02d9f10f004dc52069daa85108504faf1c91c5ec98a983a338161ac1ef2b9ff1fcd5e109556cf48f1082cc494edd24b9dd9d367
data/.idea/appcask.iml ADDED
@@ -0,0 +1,47 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="RUBY_MODULE" version="4">
3
+ <component name="ModuleRunConfigurationManager">
4
+ <shared />
5
+ </component>
6
+ <component name="NewModuleRootManager">
7
+ <content url="file://$MODULE_DIR$">
8
+ <sourceFolder url="file://$MODULE_DIR$/features" isTestSource="true" />
9
+ <sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
10
+ <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
11
+ </content>
12
+ <orderEntry type="jdk" jdkName="mise: 4.0.0" jdkType="RUBY_SDK" />
13
+ <orderEntry type="sourceFolder" forTests="false" />
14
+ <orderEntry type="library" scope="PROVIDED" name="ansi (v1.5.0, mise: 4.0.0) [gem]" level="application" />
15
+ <orderEntry type="library" scope="PROVIDED" name="ast (v2.4.3, mise: 4.0.0) [gem]" level="application" />
16
+ <orderEntry type="library" scope="PROVIDED" name="builder (v3.3.0, mise: 4.0.0) [gem]" level="application" />
17
+ <orderEntry type="library" scope="PROVIDED" name="bundler (v4.0.3, mise: 4.0.0) [gem]" level="application" />
18
+ <orderEntry type="library" scope="PROVIDED" name="date (v3.5.1, mise: 4.0.0) [gem]" level="application" />
19
+ <orderEntry type="library" scope="PROVIDED" name="erb (v6.0.1, mise: 4.0.0) [gem]" level="application" />
20
+ <orderEntry type="library" scope="PROVIDED" name="io-console (v0.8.2, mise: 4.0.0) [gem]" level="application" />
21
+ <orderEntry type="library" scope="PROVIDED" name="irb (v1.16.0, mise: 4.0.0) [gem]" level="application" />
22
+ <orderEntry type="library" scope="PROVIDED" name="json (v2.18.0, mise: 4.0.0) [gem]" level="application" />
23
+ <orderEntry type="library" scope="PROVIDED" name="language_server-protocol (v3.17.0.5, mise: 4.0.0) [gem]" level="application" />
24
+ <orderEntry type="library" scope="PROVIDED" name="lint_roller (v1.1.0, mise: 4.0.0) [gem]" level="application" />
25
+ <orderEntry type="library" scope="PROVIDED" name="minitest (v5.27.0, mise: 4.0.0) [gem]" level="application" />
26
+ <orderEntry type="library" scope="PROVIDED" name="minitest-reporters (v1.7.1, mise: 4.0.0) [gem]" level="application" />
27
+ <orderEntry type="library" scope="PROVIDED" name="parallel (v1.27.0, mise: 4.0.0) [gem]" level="application" />
28
+ <orderEntry type="library" scope="PROVIDED" name="parser (v3.3.10.1, mise: 4.0.0) [gem]" level="application" />
29
+ <orderEntry type="library" scope="PROVIDED" name="pp (v0.6.3, mise: 4.0.0) [gem]" level="application" />
30
+ <orderEntry type="library" scope="PROVIDED" name="prettyprint (v0.2.0, mise: 4.0.0) [gem]" level="application" />
31
+ <orderEntry type="library" scope="PROVIDED" name="prism (v1.9.0, mise: 4.0.0) [gem]" level="application" />
32
+ <orderEntry type="library" scope="PROVIDED" name="psych (v5.3.1, mise: 4.0.0) [gem]" level="application" />
33
+ <orderEntry type="library" scope="PROVIDED" name="racc (v1.8.1, mise: 4.0.0) [gem]" level="application" />
34
+ <orderEntry type="library" scope="PROVIDED" name="rainbow (v3.1.1, mise: 4.0.0) [gem]" level="application" />
35
+ <orderEntry type="library" scope="PROVIDED" name="rake (v13.3.1, mise: 4.0.0) [gem]" level="application" />
36
+ <orderEntry type="library" scope="PROVIDED" name="rdoc (v7.1.0, mise: 4.0.0) [gem]" level="application" />
37
+ <orderEntry type="library" scope="PROVIDED" name="regexp_parser (v2.11.3, mise: 4.0.0) [gem]" level="application" />
38
+ <orderEntry type="library" scope="PROVIDED" name="reline (v0.6.3, mise: 4.0.0) [gem]" level="application" />
39
+ <orderEntry type="library" scope="PROVIDED" name="rubocop (v1.84.0, mise: 4.0.0) [gem]" level="application" />
40
+ <orderEntry type="library" scope="PROVIDED" name="rubocop-ast (v1.49.0, mise: 4.0.0) [gem]" level="application" />
41
+ <orderEntry type="library" scope="PROVIDED" name="ruby-progressbar (v1.13.0, mise: 4.0.0) [gem]" level="application" />
42
+ <orderEntry type="library" scope="PROVIDED" name="stringio (v3.2.0, mise: 4.0.0) [gem]" level="application" />
43
+ <orderEntry type="library" scope="PROVIDED" name="tsort (v0.2.0, mise: 4.0.0) [gem]" level="application" />
44
+ <orderEntry type="library" scope="PROVIDED" name="unicode-display_width (v3.2.0, mise: 4.0.0) [gem]" level="application" />
45
+ <orderEntry type="library" scope="PROVIDED" name="unicode-emoji (v4.2.0, mise: 4.0.0) [gem]" level="application" />
46
+ </component>
47
+ </module>
data/.idea/modules.xml ADDED
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/appcask.iml" filepath="$PROJECT_DIR$/.idea/appcask.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
data/.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="" vcs="Git" />
5
+ </component>
6
+ </project>
data/.idea/workspace.xml CHANGED
@@ -5,25 +5,11 @@
5
5
  </component>
6
6
  <component name="ChangeListManager">
7
7
  <list default="true" id="1bd4c817-c426-471c-bdf5-e80649db2ae2" name="更改" comment="">
8
- <change afterPath="$PROJECT_DIR$/.github/workflows/main.yml" afterDir="false" />
9
- <change afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
10
- <change afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
11
- <change afterPath="$PROJECT_DIR$/.rubocop.yml" afterDir="false" />
12
- <change afterPath="$PROJECT_DIR$/CHANGELOG.md" afterDir="false" />
13
- <change afterPath="$PROJECT_DIR$/CODE_OF_CONDUCT.md" afterDir="false" />
14
- <change afterPath="$PROJECT_DIR$/Gemfile" afterDir="false" />
15
- <change afterPath="$PROJECT_DIR$/LICENSE.txt" afterDir="false" />
16
- <change afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
17
- <change afterPath="$PROJECT_DIR$/Rakefile" afterDir="false" />
18
- <change afterPath="$PROJECT_DIR$/appcask.gemspec" afterDir="false" />
19
- <change afterPath="$PROJECT_DIR$/bin/console" afterDir="false" />
20
- <change afterPath="$PROJECT_DIR$/bin/setup" afterDir="false" />
21
- <change afterPath="$PROJECT_DIR$/examples/batch_download.rb" afterDir="false" />
22
- <change afterPath="$PROJECT_DIR$/lib/appcask.rb" afterDir="false" />
23
- <change afterPath="$PROJECT_DIR$/lib/appcask/version.rb" afterDir="false" />
24
- <change afterPath="$PROJECT_DIR$/sig/appcask.rbs" afterDir="false" />
25
- <change afterPath="$PROJECT_DIR$/test/test_appcask.rb" afterDir="false" />
26
- <change afterPath="$PROJECT_DIR$/test/test_helper.rb" afterDir="false" />
8
+ <change beforePath="$PROJECT_DIR$/.idea/appcask.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/appcask.iml" afterDir="false" />
9
+ <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
10
+ <change beforePath="$PROJECT_DIR$/Gemfile.lock" beforeDir="false" afterPath="$PROJECT_DIR$/Gemfile.lock" afterDir="false" />
11
+ <change beforePath="$PROJECT_DIR$/appcask.gemspec" beforeDir="false" afterPath="$PROJECT_DIR$/appcask.gemspec" afterDir="false" />
12
+ <change beforePath="$PROJECT_DIR$/lib/appcask/version.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/appcask/version.rb" afterDir="false" />
27
13
  </list>
28
14
  <option name="SHOW_DIALOG" value="false" />
29
15
  <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -33,9 +19,9 @@
33
19
  <component name="Git.Settings">
34
20
  <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
35
21
  </component>
36
- <component name="ProjectColorInfo"><![CDATA[{
37
- "associatedIndex": 3
38
- }]]></component>
22
+ <component name="ProjectColorInfo">{
23
+ &quot;associatedIndex&quot;: 3
24
+ }</component>
39
25
  <component name="ProjectId" id="38w4u8bpa7evnl9Tft1pg9mpNsJ" />
40
26
  <component name="ProjectViewState">
41
27
  <option name="hideEmptyMiddlePackages" value="true" />
@@ -49,6 +35,7 @@
49
35
  "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
50
36
  "RunOnceActivity.git.unshallow": "true",
51
37
  "RunOnceActivity.typescript.service.memoryLimit.init": "true",
38
+ "com.intellij.lang.ruby.rbs.tools.collection.workspace.sync.RbsCollectionUpdateProjectActivity#LAST_UPDATE_TIMESTAMP": "1769702888715",
52
39
  "git-widget-placeholder": "main",
53
40
  "node.js.detected.package.eslint": "true",
54
41
  "node.js.detected.package.tslint": "true",
@@ -76,11 +63,16 @@
76
63
  <option name="presentableId" value="Default" />
77
64
  <updated>1767270112011</updated>
78
65
  <workItem from="1767270116395" duration="20000" />
79
- <workItem from="1769697520161" duration="3786000" />
66
+ <workItem from="1769697520161" duration="4958000" />
67
+ <workItem from="1769702829159" duration="260000" />
80
68
  </task>
81
69
  <servers />
82
70
  </component>
83
71
  <component name="TypeScriptGeneratedFilesManager">
84
72
  <option name="version" value="3" />
85
73
  </component>
74
+ <component name="VcsManagerConfiguration">
75
+ <MESSAGE value="first commit" />
76
+ <option name="LAST_COMMIT_MESSAGE" value="first commit" />
77
+ </component>
86
78
  </project>
data/QUICKSTART.md ADDED
@@ -0,0 +1,224 @@
1
+ # AppCask 快速入门指南
2
+
3
+ ## 欢迎使用 AppCask! 🎉
4
+
5
+ AppCask 是一个强大的命令行工具,可以帮你下载 App Store 应用的各种资源。
6
+
7
+ ## 5分钟快速上手
8
+
9
+ ### 1️⃣ 安装
10
+
11
+ ```bash
12
+ gem install appcask
13
+ ```
14
+
15
+ ### 2️⃣ 第一次使用
16
+
17
+ 最简单的方式 - 直接运行:
18
+
19
+ ```bash
20
+ appcask
21
+ ```
22
+
23
+ 然后按照提示操作即可!
24
+
25
+ ### 3️⃣ 快速搜索
26
+
27
+ 如果你知道要找什么应用:
28
+
29
+ ```bash
30
+ appcask "Instagram"
31
+ ```
32
+
33
+ ### 4️⃣ 选择下载内容
34
+
35
+ 运行后,你会看到 4 个选项:
36
+
37
+ ```
38
+ [1] 图标 - 下载应用图标(4种尺寸)
39
+ [2] 截图 - 下载应用截图(iPhone和iPad)
40
+ [3] 简介信息 - 导出应用详细信息
41
+ [4] 完整包 - 一次下载所有内容
42
+ ```
43
+
44
+ 推荐新手选择 **[4] 完整包**,一次获取所有资源!
45
+
46
+ ## 常用场景
47
+
48
+ ### 场景1: 我想要应用的高清图标
49
+
50
+ ```bash
51
+ appcask "应用名称"
52
+ # 选择 [1] 图标
53
+ # 选择 [3] 1024x1024
54
+ ```
55
+
56
+ ### 场景2: 我需要应用的所有截图
57
+
58
+ ```bash
59
+ appcask "应用名称"
60
+ # 选择 [2] 截图
61
+ # 选择 all (下载所有设备的截图)
62
+ ```
63
+
64
+ ### 场景3: 我要做应用分析,需要详细信息
65
+
66
+ ```bash
67
+ appcask "应用名称"
68
+ # 选择 [3] 简介信息
69
+ # 会生成 3 个文件: TXT, JSON, Markdown
70
+ ```
71
+
72
+ ### 场景4: 我什么都要!
73
+
74
+ ```bash
75
+ appcask "应用名称"
76
+ # 选择 [4] 完整包
77
+ # 一次性下载图标、截图、信息
78
+ ```
79
+
80
+ ## 下载的文件在哪里?
81
+
82
+ 默认保存位置:
83
+
84
+ ```
85
+ ~/Desktop/AppCask Downloads/应用名称/
86
+ ```
87
+
88
+ 目录结构:
89
+
90
+ ```
91
+ Instagram/
92
+ ├── icons/ # 所有尺寸的图标
93
+ ├── screenshots/ # 按设备分类的截图
94
+ │ ├── iPhone/
95
+ │ └── iPad/
96
+ ├── app_info.txt # 文本格式信息
97
+ ├── app_info.json # JSON格式信息
98
+ └── README.md # Markdown格式文档
99
+ ```
100
+
101
+ ## 搜索其他国家的 App Store
102
+
103
+ AppCask 支持 9 个国家/地区:
104
+
105
+ ```bash
106
+ # 搜索中国区
107
+ appcask "微信" cn
108
+
109
+ # 搜索日本区
110
+ appcask "Line" jp
111
+
112
+ # 搜索韩国区
113
+ appcask "KakaoTalk" kr
114
+ ```
115
+
116
+ 支持的区域代码:
117
+ - `us` - 🇺🇸 美国
118
+ - `cn` - 🇨🇳 中国
119
+ - `jp` - 🇯🇵 日本
120
+ - `kr` - 🇰🇷 韩国
121
+ - `hk` - 🇭🇰 香港
122
+ - `tw` - 🇹🇼 台湾
123
+ - `gb` - 🇬🇧 英国
124
+ - `de` - 🇩🇪 德国
125
+ - `fr` - 🇫🇷 法国
126
+
127
+ ## 快捷键
128
+
129
+ - **回车** - 使用默认选项
130
+ - **q** - 退出当前步骤
131
+ - **Ctrl+C** - 安全退出程序
132
+
133
+ ## 实用技巧
134
+
135
+ ### 技巧1: 批量下载
136
+
137
+ 创建一个文本文件 `apps.txt`:
138
+
139
+ ```
140
+ Instagram
141
+ Twitter
142
+ Facebook
143
+ TikTok
144
+ ```
145
+
146
+ 然后运行:
147
+
148
+ ```bash
149
+ while read app; do
150
+ appcask "$app"
151
+ sleep 2
152
+ done < apps.txt
153
+ ```
154
+
155
+ ### 技巧2: 只看不下载
156
+
157
+ 想看看有哪些信息但不下载?按 `q` 随时退出!
158
+
159
+ ### 技巧3: macOS 用户专属
160
+
161
+ 下载完成后,选择 `y` 直接打开文件夹:
162
+
163
+ ```
164
+ 是否打开文件夹? (y/n): y
165
+ ```
166
+
167
+ ## 遇到问题?
168
+
169
+ ### 问题1: 找不到应用
170
+
171
+ ✅ 解决方法:
172
+ - 检查拼写
173
+ - 尝试用英文名搜索
174
+ - 切换不同区域
175
+
176
+ ### 问题2: 网络超时
177
+
178
+ ✅ 解决方法:
179
+ - 检查网络连接
180
+ - 使用 VPN
181
+ - 稍后重试
182
+
183
+ ### 问题3: 下载失败
184
+
185
+ ✅ 解决方法:
186
+
187
+ ```bash
188
+ DEBUG=1 appcask "应用名称"
189
+ ```
190
+
191
+ 这会显示详细的错误信息,方便排查问题。
192
+
193
+ ## 下一步
194
+
195
+ ### 了解更多功能
196
+
197
+ 查看完整文档:
198
+
199
+ ```bash
200
+ # 如果安装了 gem
201
+ gem help appcask
202
+ ```
203
+
204
+ 或访问 GitHub 仓库查看 README.md
205
+
206
+ ### 升级到最新版
207
+
208
+ ```bash
209
+ gem update appcask
210
+ ```
211
+
212
+ ### 分享你的使用经验
213
+
214
+ 觉得好用?给项目点个 Star ⭐
215
+
216
+ 有问题?提交 Issue 📝
217
+
218
+ 有建议?发起 Pull Request 🚀
219
+
220
+ ## 最后
221
+
222
+ 享受使用 AppCask!如有任何问题,欢迎反馈。
223
+
224
+ Happy downloading! 🎊
data/bin/console ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "bundler/setup"
5
+ require "appcask"
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ require "irb"
11
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
data/exe/appcask ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "appcask"
4
+
5
+ AppCask.main
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Appcask
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.0"
5
5
  end
metadata CHANGED
@@ -1,57 +1,37 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appcask
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Billow Wang
8
8
  bindir: exe
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
- dependencies:
12
- - !ruby/object:Gem::Dependency
13
- name: json
14
- requirement: !ruby/object:Gem::Requirement
15
- requirements:
16
- - - ">="
17
- - !ruby/object:Gem::Version
18
- version: '0'
19
- type: :runtime
20
- prerelease: false
21
- version_requirements: !ruby/object:Gem::Requirement
22
- requirements:
23
- - - ">="
24
- - !ruby/object:Gem::Version
25
- version: '0'
26
- - !ruby/object:Gem::Dependency
27
- name: net-http
28
- requirement: !ruby/object:Gem::Requirement
29
- requirements:
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: '0'
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: '0'
11
+ dependencies: []
40
12
  description: AppCask is a CLI tool for downloading App Store icons, screenshots and
41
13
  metadata.
42
14
  email:
43
15
  - netheadonline@gmail.com
44
- executables: []
16
+ executables:
17
+ - appcask
45
18
  extensions: []
46
19
  extra_rdoc_files: []
47
20
  files:
21
+ - ".idea/appcask.iml"
22
+ - ".idea/modules.xml"
23
+ - ".idea/vcs.xml"
48
24
  - ".idea/workspace.xml"
49
25
  - CHANGELOG.md
50
26
  - CODE_OF_CONDUCT.md
51
27
  - LICENSE.txt
28
+ - QUICKSTART.md
52
29
  - README.md
53
30
  - Rakefile
31
+ - bin/console
32
+ - bin/setup
54
33
  - examples/batch_download.rb
34
+ - exe/appcask
55
35
  - lib/appcask.rb
56
36
  - lib/appcask/version.rb
57
37
  - sig/appcask.rbs
@@ -62,7 +42,7 @@ metadata:
62
42
  allowed_push_host: https://rubygems.org/
63
43
  homepage_uri: https://github.com/gamepunk/appcask
64
44
  source_code_uri: https://github.com/gamepunk/appcask
65
- changelog_uri: https://github.com/gamepunk/appcask
45
+ changelog_uri: https://github.com/gamepunk/appcask/blob/main/CHANGELOG.md
66
46
  rdoc_options: []
67
47
  require_paths:
68
48
  - lib