mirror of
https://github.com/netinvent/npbackup.git
synced 2025-11-10 22:23:09 +08:00
Add custom image updater
This commit is contained in:
parent
b2646ca8e6
commit
1dcaa6381a
1 changed files with 68 additions and 0 deletions
68
resources/update_custom_resources.py
Normal file
68
resources/update_custom_resources.py
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
#! /usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# This file is part of npbackup
|
||||||
|
|
||||||
|
__intname__ = "npbackup.customization_creator"
|
||||||
|
__author__ = "Orsiris de Jong"
|
||||||
|
__copyright__ = "Copyright (C) 2024 NetInvent"
|
||||||
|
__license__ = "GPL-3.0-only"
|
||||||
|
__build__ = "2024060401"
|
||||||
|
__version__ = "1.0.0"
|
||||||
|
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import base64
|
||||||
|
from npbackup.path_helper import BASEDIR
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
Launching this file will update customization.py inline png images and gif animations with files from resources directory, if exist
|
||||||
|
"""
|
||||||
|
|
||||||
|
def image_to_data_url(filename, as_url: bool = False):
|
||||||
|
ext = filename.split('.')[-1]
|
||||||
|
with open(filename, 'rb') as f:
|
||||||
|
img = f.read()
|
||||||
|
if as_url:
|
||||||
|
return f'data:image/{ext};base64,' + base64.b64encode(img).decode('utf-8')
|
||||||
|
else:
|
||||||
|
return base64.b64encode(img).decode('utf-8')
|
||||||
|
|
||||||
|
|
||||||
|
def update_custom_icons():
|
||||||
|
"""
|
||||||
|
Update customization.py file with icon content
|
||||||
|
"""
|
||||||
|
|
||||||
|
custom_resources = {
|
||||||
|
'FOLDER_ICON': 'folder_icon.png',
|
||||||
|
'INHERITED_FOLDER_ICON': 'inherited_folder_icon.png',
|
||||||
|
'FILE_ICON': 'file_icon.png',
|
||||||
|
'INHERITED_FILE_ICON': 'inherited_file_icon.png',
|
||||||
|
'TREE_ICON': 'tree_icon.png',
|
||||||
|
'INHERITED_TREE_ICON': 'inherited_tree_icon.png',
|
||||||
|
'NON_INHERITED_ICON': 'non_inherited_icon.png',
|
||||||
|
'LOADING_ANIMATION': 'loading.gif',
|
||||||
|
'OEM_LOGO': 'oem_logo.png',
|
||||||
|
'OEM_ICON': 'oem_icon.png'
|
||||||
|
}
|
||||||
|
|
||||||
|
resources_dir = os.path.join(BASEDIR, os.path.pardir, 'resources')
|
||||||
|
customization_py = os.path.join(resources_dir, 'customization.py')
|
||||||
|
with open(customization_py, 'r') as f:
|
||||||
|
customization = f.read()
|
||||||
|
for var_name, file in custom_resources.items():
|
||||||
|
file_path = os.path.join(resources_dir, file)
|
||||||
|
print(file_path)
|
||||||
|
if os.path.exists(file_path):
|
||||||
|
print(f"Updating {var_name} with {file_path}")
|
||||||
|
encoded_b64 = image_to_data_url(file_path)
|
||||||
|
customization = re.sub(f'{var_name} = b".*"', f'{var_name} = b"{encoded_b64}"', customization)
|
||||||
|
else:
|
||||||
|
print("No file found for", var_name)
|
||||||
|
with open(customization_py, 'w') as f:
|
||||||
|
f.write(customization)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
update_custom_icons()
|
||||||
Loading…
Add table
Reference in a new issue