SolarFM/plugins
2024-09-11 02:11:00 -05:00
..
archiver Plugin cleanup and tweaks 2023-02-20 19:18:45 -06:00
disk_usage added images to plugin menu options, added testing for generators, attempted mitigation of memory leak 2023-05-16 21:26:00 -05:00
favorites Plugin cleanup and tweaks 2023-02-20 19:18:45 -06:00
file_properties Attempting to prompt for gc; About page updates; small non crit errors fixed 2024-07-04 17:24:31 -05:00
git_clone Added Singleton class to inherit as needed 2023-03-27 20:07:17 -05:00
movie_tv_info Fixed missing plugin parts removed by .gitignore 2023-09-30 14:33:47 -05:00
py_run Added debugger setup, cleanup 2023-04-29 09:44:22 -05:00
searcher Attempted further memory leak prevention; fixed bugs from moving to python 12; misc. 2024-09-11 02:11:00 -05:00
template moved thumbnail generation to plugin; extended plugin loading for pre and post window loading 2024-06-29 21:37:44 -05:00
thumbnailer moved thumbnail generation to plugin; extended plugin loading for pre and post window loading 2024-06-29 21:37:44 -05:00
translate Fixing translate plugin; attempted dispose call 2024-03-11 22:28:42 -05:00
trasher moved thumbnail generation to plugin; extended plugin loading for pre and post window loading 2024-06-29 21:37:44 -05:00
vod_thumbnailer WIP implimentig new files widget, updated settings, broke keybindings 2023-02-23 23:03:29 -06:00
youtube_download Updated ytdlp version 2023-08-13 20:13:21 -05:00
README.md moved thumbnail generation to plugin; extended plugin loading for pre and post window loading 2024-06-29 21:37:44 -05:00

Note

Copy the example and rename it to your desired name. Plugins define a ui target slot with the 'ui_target' requests data but don't have to if not directly interacted with. Plugins must have a run method defined; though, you do not need to necessarily do anything within it. The run method implies that the passed in event system or other data is ready for the plugin to use.

Manifest Example (All are required even if empty.)

class Manifest:
    name: str     = "Example Plugin"
    author: str   = "John Doe"
    version: str  = "0.0.1"
    support: str  = ""
    requests: {}  = {
        'ui_target': "plugin_control_list",
        'pass_fm_events': "true"
    }
    pre_launch: bool = False

Requests

requests: {}  = {
    'ui_target': "plugin_control_list",
    'ui_target_id': "<some other Gtk Glade ID>",          # Only needed if using "other" in "ui_target". See below for predefined "ui_target" options...
    'pass_fm_events': "true",                             # If empty or not present will be ignored.
    "pass_ui_objects": [""],                              # Request reference to a UI component. Will be passed back as array to plugin.
    'bind_keys': [f"{name}||send_message:<Control>f"],
                  f"{name}||do_save:<Control>s"]          # Bind keys with method and key pare using list. Must pass "name" like shown with delimiter to its right.

}

UI Targets:

  • main_Window
  • main_menu_bar
  • path_menu_bar
  • plugin_control_list
  • window_(1-4)
  • context_menu
  • other