60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
|
# Python imports
|
||
|
import os
|
||
|
|
||
|
# Lib imports
|
||
|
|
||
|
# Application imports
|
||
|
from plugins.plugin_base import PluginBase
|
||
|
from .icons.controller import IconController
|
||
|
|
||
|
|
||
|
|
||
|
class Plugin(PluginBase):
|
||
|
def __init__(self):
|
||
|
super().__init__()
|
||
|
|
||
|
self.name = "Thumbnailer" # NOTE: Need to remove after establishing private bidirectional 1-1 message bus
|
||
|
# where self.name should not be needed for message comms
|
||
|
# self.path = os.path.dirname(os.path.realpath(__file__))
|
||
|
|
||
|
|
||
|
def run(self):
|
||
|
self.icon_controller = IconController()
|
||
|
self._event_system.subscribe("create-thumbnail", self.create_thumbnail)
|
||
|
|
||
|
def generate_reference_ui_element(self):
|
||
|
...
|
||
|
|
||
|
def create_thumbnail(self, dir, file) -> str:
|
||
|
return self.icon_controller.create_icon(dir, file)
|
||
|
|
||
|
def get_video_icons(self, dir) -> list:
|
||
|
data = []
|
||
|
|
||
|
def get_video_icons(self) -> list:
|
||
|
data = []
|
||
|
fvideos = self.icon_controller.fvideos
|
||
|
vids = [ file for file in os.path.list_dir(dir) if file.lower().endswith(fvideos) ]
|
||
|
|
||
|
for file in vids:
|
||
|
img_hash, hash_img_path = self.create_video_thumbnail(full_path = f"{dir}/{file}", returnHashInstead = True)
|
||
|
data.append([img_hash, hash_img_path])
|
||
|
|
||
|
return data
|
||
|
|
||
|
def get_pixbuf_icon_str_combo(self, dir) -> list:
|
||
|
data = []
|
||
|
for file in os.path.list_dir(dir):
|
||
|
icon = self.icon_controller.create_icon(dir, file).get_pixbuf()
|
||
|
data.append([icon, file])
|
||
|
|
||
|
return data
|
||
|
|
||
|
def get_gtk_icon_str_combo(self, dir) -> list:
|
||
|
data = []
|
||
|
for file in os.path.list_dir(dir):
|
||
|
icon = self.icon_controller.create_icon(dir, file)
|
||
|
data.append([icon, file[0]])
|
||
|
|
||
|
return data
|