appydave-tools 0.48.0 → 0.50.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: ff53285a12ac4ca5ac173d0217d03fe16b296328eed8e352a15513d89a5d4d8b
4
- data.tar.gz: eb62938db64ac1b9e8d3dd0d4d746f56ba2e7b272576d65a8a14149e0b4b34be
3
+ metadata.gz: 38598a0a55919f57722e25ecd6656b7e4a9148fba9af4c9bb0e05bdd95673ba9
4
+ data.tar.gz: 2c05be9216300f1a20da72cacd81febcb766bd5c4d9fb837061833ab1dd84b0b
5
5
  SHA512:
6
- metadata.gz: 55833acd71659828aa8a1a7c31ddbb892ada82dc2e8edb7f9c9a187c91f37acce78e13b8e51cbbf1e55adc842ba18a2e0f028164692c5bdcab0f72a279607356
7
- data.tar.gz: c38ff4bbdd603224e8cbcb72a2a33d24bd52ab5e9130830903bc1486acdf23c64ce2a1baa117f3c32597a9f7c4af19bb9613899fadfd8726083652e87ad9d9a2
6
+ metadata.gz: 9f1ec38a694d7e59f8c1fb96e22a8e5383cf28ae67f5970d4d85115a7687f0ee1b0ae9f151854233c9b625222a8c3f916ff40485455ed86b640e4a0aeab5e340
7
+ data.tar.gz: 6da457e297a6af254471af6e6f662281c8dff6fd27fdb5f7cf0640b47051ad0491e5e782f9e01c6029e838f205ab39c0afba7fb54687e59eb34c324d80077912
data/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ # [0.49.0](https://github.com/appydave/appydave-tools/compare/v0.48.0...v0.49.0) (2025-11-21)
2
+
3
+
4
+ ### Features
5
+
6
+ * improve project status display with size, file counts, and remove git section ([0cc6e15](https://github.com/appydave/appydave-tools/commit/0cc6e155902c25dcd2a551508a91fd3715f94bff))
7
+
8
+ # [0.48.0](https://github.com/appydave/appydave-tools/compare/v0.47.0...v0.48.0) (2025-11-21)
9
+
10
+
11
+ ### Features
12
+
13
+ * remove PATH column from project lists and add note about file-only listing ([4cd3c67](https://github.com/appydave/appydave-tools/commit/4cd3c67196c08998fdbc172ff262a94abcfa8beb))
14
+
1
15
  # [0.47.0](https://github.com/appydave/appydave-tools/compare/v0.46.0...v0.47.0) (2025-11-21)
2
16
 
3
17
 
@@ -40,7 +40,8 @@ module Appydave
40
40
  end
41
41
 
42
42
  def show_project_status
43
- puts "📊 Status: v-#{brand}/#{File.basename(project_path)}"
43
+ project_size = calculate_project_size
44
+ puts "📊 Status: v-#{brand}/#{File.basename(project_path)} (#{format_size(project_size)})"
44
45
  puts ''
45
46
 
46
47
  manifest = load_manifest
@@ -57,7 +58,6 @@ module Appydave
57
58
  end
58
59
 
59
60
  show_storage_status(project_entry)
60
- show_git_status if git_repo?
61
61
  end
62
62
 
63
63
  def show_brand_status
@@ -104,8 +104,22 @@ module Appydave
104
104
 
105
105
  if local[:exists]
106
106
  puts ' 📁 Local: ✓ exists'
107
- puts " Heavy files: #{local[:has_heavy_files] ? 'yes' : 'no'}"
108
- puts " Light files: #{local[:has_light_files] ? 'yes' : 'no'}"
107
+
108
+ # Show heavy files with count and size
109
+ if local[:has_heavy_files]
110
+ heavy_info = count_and_size_heavy_files
111
+ puts " Heavy files: #{heavy_info[:count]} (#{format_size(heavy_info[:size])})"
112
+ else
113
+ puts ' Heavy files: none'
114
+ end
115
+
116
+ # Show light files with count and size
117
+ if local[:has_light_files]
118
+ light_info = count_and_size_light_files
119
+ puts " Light files: #{light_info[:count]} (#{format_size(light_info[:size])})"
120
+ else
121
+ puts ' Light files: none'
122
+ end
109
123
  else
110
124
  puts ' 📁 Local: ✗ does not exist'
111
125
  end
@@ -175,7 +189,24 @@ module Appydave
175
189
 
176
190
  def show_manifest_summary(manifest)
177
191
  puts '📋 Manifest Summary:'
178
- puts " Total projects: #{manifest[:projects].size}"
192
+
193
+ # Show manifest age
194
+ if manifest[:config] && manifest[:config][:last_updated]
195
+ age = calculate_manifest_age(manifest[:config][:last_updated])
196
+ age_indicator = manifest_age_indicator(age)
197
+ puts " Last updated: #{format_manifest_age(age)} #{age_indicator}"
198
+ end
199
+
200
+ # Count active (flat/local) vs archived projects
201
+ active_count = manifest[:projects].count do |p|
202
+ p[:storage][:local][:exists] && p[:storage][:local][:structure] == 'flat'
203
+ end
204
+ archived_count = manifest[:projects].count do |p|
205
+ p[:storage][:local][:exists] && p[:storage][:local][:structure] == 'archived'
206
+ end
207
+ total = manifest[:projects].size
208
+
209
+ puts " Total: #{total} (Active: #{active_count}, Archived: #{archived_count})"
179
210
 
180
211
  local_count = manifest[:projects].count { |p| p[:storage][:local][:exists] }
181
212
  s3_count = manifest[:projects].count { |p| p[:storage][:s3][:exists] }
@@ -258,6 +289,66 @@ module Appydave
258
289
  def commits_behind
259
290
  GitHelper.commits_behind(brand_path)
260
291
  end
292
+
293
+ def calculate_project_size
294
+ FileHelper.calculate_directory_size(project_path)
295
+ end
296
+
297
+ def count_and_size_heavy_files
298
+ count = 0
299
+ size = 0
300
+ Dir.glob(File.join(project_path, '*.{mp4,mov,avi,mkv,webm}')).each do |file|
301
+ count += 1
302
+ size += File.size(file)
303
+ end
304
+ { count: count, size: size }
305
+ end
306
+
307
+ def count_and_size_light_files
308
+ count = 0
309
+ size = 0
310
+ Dir.glob(File.join(project_path, '**/*.{srt,vtt,jpg,png,md,txt,json,yml}')).each do |file|
311
+ count += 1
312
+ size += File.size(file)
313
+ end
314
+ { count: count, size: size }
315
+ end
316
+
317
+ def format_size(bytes)
318
+ FileHelper.format_size(bytes)
319
+ end
320
+
321
+ def calculate_manifest_age(last_updated_str)
322
+ last_updated = Time.parse(last_updated_str)
323
+ Time.now - last_updated
324
+ rescue ArgumentError
325
+ nil
326
+ end
327
+
328
+ def format_manifest_age(age_seconds)
329
+ return 'Unknown' if age_seconds.nil?
330
+
331
+ days = age_seconds / 86_400
332
+ if days < 1
333
+ hours = age_seconds / 3600
334
+ "#{hours.round}h ago"
335
+ else
336
+ "#{days.round}d ago"
337
+ end
338
+ end
339
+
340
+ def manifest_age_indicator(age_seconds)
341
+ return '' if age_seconds.nil?
342
+
343
+ days = age_seconds / 86_400
344
+ if days < 3
345
+ '✓ Fresh'
346
+ elsif days < 7
347
+ 'â„šī¸ Aging'
348
+ else
349
+ 'âš ī¸ Stale'
350
+ end
351
+ end
261
352
  end
262
353
  end
263
354
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Appydave
4
4
  module Tools
5
- VERSION = '0.48.0'
5
+ VERSION = '0.50.0'
6
6
  end
7
7
  end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appydave-tools",
3
- "version": "0.48.0",
3
+ "version": "0.50.0",
4
4
  "description": "AppyDave YouTube Automation Tools",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appydave-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.48.0
4
+ version: 0.50.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys