JustPaste
HomeCategoriesAboutDonateContactTerms of UsePrivacy Policy
JustPaste

Free online notepad — write and share instantly

Navigate

  • Home
  • Timeline
  • Categories

Info

  • About
  • Donate
  • Contact

Legal

  • Terms of Use
  • Privacy Policy

© 2026 JustPaste.app. All rights reserved.

Made with ♥ by JustPaste

Untitled Page | JustPaste.app
13 days ago6 views
💻Technology
# ============================================================
# TRASSIR -> ZABBIX
# STATE JSON TEST
# Version 3.3
# ============================================================

message("=== TRASSIR ZABBIX STATE 3.3 START ===")


# ------------------------------------------------------------
# Получаем список каналов
# ------------------------------------------------------------

try:

    channels = objects_list("Channel")

except:

    channels = []


message("CHANNEL COUNT: %s" % len(channels))


# ------------------------------------------------------------
# Начинаем JSON
# ------------------------------------------------------------

json = '{"channels":['

first = True


# ------------------------------------------------------------
# Обрабатываем каналы
# ------------------------------------------------------------

for item in channels:

    try:

        channel_name = str(item[0])
        channel_guid = str(item[1])


        # ----------------------------------------------------
        # Получаем объект канала
        # ----------------------------------------------------

        channel = object(channel_guid)


        if channel is None:

            continue


        # ----------------------------------------------------
        # Получаем состояния
        # ----------------------------------------------------

        try:
            signal = str(
                channel.state("signal")
            )
        except:
            signal = "ERROR"


        try:
            motion = str(
                channel.state("motion")
            )
        except:
            motion = "ERROR"


        try:
            recording = str(
                channel.state("recording")
            )
        except:
            recording = "ERROR"


        try:
            recording_device = str(
                channel.state("recording_on_device")
            )
        except:
            recording_device = "ERROR"


        # ----------------------------------------------------
        # Экранируем строки JSON
        # ----------------------------------------------------

        channel_name = channel_name.replace(
            '\\',
            '\\\\'
        )

        channel_name = channel_name.replace(
            '"',
            '\\"'
        )


        signal = signal.replace(
            '\\',
            '\\\\'
        )

        signal = signal.replace(
            '"',
            '\\"'
        )


        motion = motion.replace(
            '\\',
            '\\\\'
        )

        motion = motion.replace(
            '"',
            '\\"'
        )


        recording = recording.replace(
            '\\',
            '\\\\'
        )

        recording = recording.replace(
            '"',
            '\\"'
        )


        recording_device = recording_device.replace(
            '\\',
            '\\\\'
        )

        recording_device = recording_device.replace(
            '"',
            '\\"'
        )


        # ----------------------------------------------------
        # Разделитель JSON
        # ----------------------------------------------------

        if first:

            first = False

        else:

            json += ','


        # ----------------------------------------------------
        # Объект канала
        # ----------------------------------------------------

        json += (
            '{"guid":"%s",'
            '"name":"%s",'
            '"signal":"%s",'
            '"motion":"%s",'
            '"recording":"%s",'
            '"recording_device":"%s"}'
            % (
                channel_guid,
                channel_name,
                signal,
                motion,
                recording,
                recording_device
            )
        )


    except:

        pass


# ------------------------------------------------------------
# Закрываем JSON
# ------------------------------------------------------------

json += ']}'


# ------------------------------------------------------------
# Вывод
# ------------------------------------------------------------

message(
    "ZABBIX_STATE|%s"
    % json
)


message("=== TRASSIR ZABBIX STATE 3.3 END ===")
← Back to timeline