Refine file size notes

This commit is contained in:
Your Name
2025-06-04 18:46:56 +03:00
parent 6bd6ba8dd1
commit b8b73f0bf2
+40 -51
View File
@@ -249,7 +249,7 @@ class FormatTableMixin:
# Column 3: Notes for playlist mode, Extension for normal mode # Column 3: Notes for playlist mode, Extension for normal mode
if is_playlist_mode: if is_playlist_mode:
# Get notes for playlist mode # Get notes for playlist mode
notes = self.get_format_notes(f, 0) # We don't need best_video_size for simple notes notes = self._get_format_notes(f)
notes_item = QTableWidgetItem(notes) notes_item = QTableWidgetItem(notes)
if "✨ Recommended" in notes: if "✨ Recommended" in notes:
notes_item.setForeground(QColor('#00ff00')) # Green for recommended notes_item.setForeground(QColor('#00ff00')) # Green for recommended
@@ -296,7 +296,7 @@ class FormatTableMixin:
self.format_table.setItem(row, 5, QTableWidgetItem(codec)) self.format_table.setItem(row, 5, QTableWidgetItem(codec))
# Column 7: Notes # Column 7: Notes
notes = self.get_format_notes(f, best_video_size) notes = self._get_format_notes(f)
notes_item = QTableWidgetItem(notes) notes_item = QTableWidgetItem(notes)
if "✨ Recommended" in notes: if "✨ Recommended" in notes:
notes_item.setForeground(QColor('#00ff00')) # Green for recommended notes_item.setForeground(QColor('#00ff00')) # Green for recommended
@@ -357,54 +357,43 @@ class FormatTableMixin:
else: else:
return "Low Quality" return "Low Quality"
def get_format_notes(self, format_info, best_video_size): def _get_format_notes(self, format_info):
"""Generate helpful notes about the format""" """Generate helpful format notes based on format info."""
if format_info.get('vcodec') == 'none': notes = []
# Audio format
abr = format_info.get('abr', 0) # Add storage indicator with more granular categories
if abr >= 256: file_size = format_info.get('filesize') or format_info.get('filesize_approx', 0)
return "✨ Recommended for music" resolution = format_info.get('resolution', '')
elif abr >= 128: height = 0
return "📱 Mobile friendly" if resolution:
return "💾 Storage friendly" try:
else: height = int(resolution.split('x')[1])
# Video format except:
height = 0 pass
resolution = format_info.get('resolution', '')
if resolution: # Better file size categories
try: if file_size > 50 * 1024 * 1024: # Over 50MB
height = int(resolution.split('x')[1]) notes.append("Large size")
except: elif file_size > 15 * 1024 * 1024: # 15-50MB
pass notes.append("Medium size")
elif file_size > 5 * 1024 * 1024: # 5-15MB
notes.append("Standard size")
else: # Under 5MB
notes.append("Small size")
filesize = format_info.get('filesize', 0) # Add codec quality indicator
vcodec = format_info.get('vcodec', '')
if vcodec != 'none':
if 'avc1' in vcodec: # H.264
notes.append("Compatible")
elif 'av01' in vcodec: # AV1
notes.append("Efficient")
elif 'vp9' in vcodec: # VP9
notes.append("High quality")
# Add quick mobile compatibility check
if 'avc1' in vcodec and file_size < 8 * 1024 * 1024:
notes.append("Mobile")
notes = [] # Return simple string
return "".join(notes)
# Resolution-based recommendations
if height >= 1440: # 2K or 4K
if filesize == best_video_size:
notes.append("✨ Recommended for high-end displays")
else:
notes.append("🖥️ Best for large screens")
elif height == 1080:
if 'avc1' in format_info.get('vcodec', '').lower():
notes.append("✨ Recommended for most devices")
else:
notes.append("👍 Good balance")
elif height == 720:
notes.append("📱 Mobile friendly")
else:
notes.append("💾 Storage friendly")
# Codec-based notes
if 'av1' in format_info.get('vcodec', '').lower():
notes.append("Better compression")
elif 'vp9' in format_info.get('vcodec', '').lower():
notes.append("Good for Chrome")
# File size note for large files
if filesize > 100 * 1024 * 1024: # More than 100MB
notes.append("Large file")
return "".join(notes)