HEX
Server: Apache/2.4.63 (Unix)
System: Linux Synopilou92 4.4.302+ #72806 SMP Mon Jul 21 23:16:00 CST 2025 x86_64
User: pilou92 (1026)
PHP: 8.0.30
Disabled: NONE
Upload Files
File: /volume1/@appstore/SynologyPhotos/sdk-plugin/synology_foto_share_mount_action.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright (c) 2000 - present Synology Inc. All rights reserved.

from os import environ
from importlib.util import spec_from_file_location, module_from_spec

module_name = "common"
module_path = "/var/packages/SynologyPhotos/target/sdk-plugin/common.py"
spec = spec_from_file_location(module_name, module_path)
common = module_from_spec(spec)
spec.loader.exec_module(common)


class ShareMountAction(common.PluginRunner):
    def __init__(self):
        self._version = "2.0"

    def pre(self):
        if "0" != environ.get("RESULT"):
            return None

        action = environ.get("MOUNT_ACTION")

        if action == "mount":
            return None

        share_name = environ.get("SHARE_NAME")
        share_path = environ.get("SHARE_PATH")

        is_package_running = self.is_package_running()

        if not is_package_running:
            return None

        self.send_command(
            "share-disable",
            {
                "origin_name": "",
                "origin_path": "",
                "name": share_name,
                "path": share_path,
            },
        )

    def post(self):
        if "0" != environ.get("RESULT"):
            return None

        action = environ.get("MOUNT_ACTION")

        if action == "unmount":
            return None

        share_name = environ.get("SHARE_NAME")
        share_path = environ.get("SHARE_PATH")

        is_package_running = self.is_package_running()

        if not is_package_running:
            return None

        self.send_command(
            "share-enable",
            {
                "origin_name": "",
                "origin_path": "",
                "name": share_name,
                "path": share_path,
            },
        )

common.MainBody(ShareMountAction())