- Создал(а) Aleksandr Savkin, редактировал(а) Vasily Selivantsev янв. 26, 2023
Recommended to read: Parameters and resources in scripts
Script can save any kind of files in it's own code. It can be icons, Python libraries, or even code parts.
resources = { "sound_player.py": ''' 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 ''' } t1utils.resources_check(script_path, resources)
Script resources stored at base64 format (to avoid any kind of problems) in a dictionary, where file path will be used as a key (relatively script folder), and as a value - resource code in base64.
After script launch, resources will be "unpacked" in to the script folder with t1utils.resources_check function help, which will take path to the script folder and the dictionary as arguments.
Usually you can develop and test scripts locally (for example on Trassir Client side) because mostly all of Trassir functions are available at any kind of Trassir software (server part, client part, working on Windows or Trassir OS).
Let's try to use resources at sound alarm script.
Create new script and change script parameters.
After, you need to create script data folder.
Look carefully, parameters company, title, version will be included to the script data path.
For WinOS, folder will be created at .../trassir/scripts-data/company_title_version
For TrassirOS, folder will be created at /home/trassir/scripts-data/company_title_version
*all space signs will be changed to underscore "_"
Let's copy the sound_player.py in script data folder
From that moment, sound_player.py will be available for import in your script.
After this, we can try to copy our script with added resources to another server (or client).
To do this, you need to add a link to the resource in to the script parameters.
''' <parameters> <company>DSSL</company> <title>SoundPlayerExample</title> <version>1.0</version> <resources> <resource>sound_player.py</resource> </resources> </parameters> '''
Connect our library and integrated module "host".
import host import sound_player
Next, create a function which will make a sound after pressing the button. For our convenience we will use constant SOUND_FILE for sound file name, and initialize a global "player" object.
SOUND_FILE = "bell.wav" player = sound_player.SoundPlayer() def play_sound(): player.play(SOUND_FILE)
Then, we need to add a handler which will check the button press and call play_sound() function.
As a result you will have next:
# Sound player example ''' <parameters> <company>DSSL</company> <title>SoundPlayerExample</title> <version>1.0</version> <resources> <resource>sound_player.py</resource> </resources> </parameters> ''' import host import sound_player SOUND_FILE = "bell.wav" player = sound_player.SoundPlayer() def play_sound(): player.play(SOUND_FILE) host.activate_on_shortcut("F12", play_sound)
At this point, you can save and test your script.
Press F12 and you will hear sound.
To save the script with additional resources you need to use built-in functions of the script interface
After saving you will find your resources in script body, in base64 format.
# Sound player example ''' <parameters> <company>DSSL</company> <title>SoundPlayerExample</title> <version>1.0</version> <resources> <resource>sound_player.py</resource> </resources> </parameters> ''' resources = { "sound_player.py": ''' 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 ''' } t1utils.resources_check(script_path, resources) script = ''' 3c54sx/v1SfptVjOswhGbZNjLChosHjVdjBa3CYwjeyEBPTTTJ88coeL1fNXS8qrRyOMS6I3 G9pWlt73liA8ABtobQia5q39I1iaZq/zOcNzbS7Y6HILYBAQfXAILphX3stZMLkpvVj5+ehY hIC9uD80ezzo4w2DExgovMiweNnd50SohLte6pi7+PW88EyEZJSqlTpOTUrFvwvN+q2/frQ2 ghclaIAO88biyNdl+Zr7xI6SfHEeZ758o0fnd48SifVnPfUfLjZ75n/vAEDsPA== ''' exec_encoded(script)
# Sound player example ''' <parameters> <company>DSSL</company> <title>SoundPlayerExample</title> <version>1.0</version> <resources> <resource>sound_player.py</resource> </resources> </parameters> ''' resources = { "sound_player.py": ''' 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 ''' } t1utils.resources_check(script_path, resources) import host import sound_player SOUND_FILE = "bell.wav" player = sound_player.SoundPlayer() def play_sound(): player.play(SOUND_FILE) host.activate_on_shortcut("F12", play_sound)
- Нет меток