Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Основные функции

Позволяет перекинуть файл в указанную папку скриншотов на сервер TRASSIR OS

Установка

  • Перейти в автоматизацию, нажать «Загрузить пример» и выбрать «Из файла», указав путь к скрипту.
  • Снять галочку «Включить скрипт» и нажать сохранить.
  • Выполнить настройку и нажать "Сохранить и запустить".

Настройка

Image RemovedImage Added

  • Загрузить файл в папку скриншотов на сервере или клиенте под Windows.
  • В параметры вписать имя файла с расширением.
  • Путь на TRASSIR OS по примеру.
  • Выбрать сервер на который будет отправлен файл.
  • Нажать "Сохранить и запустить".


Раскрыть
titlecode
Блок кода
languagepy
#only text file
#F2 to send file
'''
<parameters>
	<company>DSSL</company>
	<title>File<title>Uvarov to TrassirOS<EG</title>
	<version>1.0</version>
	<parameter>
		<type>server</type>
		<id>server_id<<id>SERVER</id>
		<name>Сервер</name>
		<value></value>
	</parameter>
	<parameter>
		<type>string</type>
		<id>PATH_TO_TRASSIR</id>
		<name>путь на сервер TOS</name>
		<value>/home/trassir/shots/</value>
	</parameter>
	<parameter>
		<type>string</type>
		<id>NAME_FILE</id>
		<name>Имя файла с расширением</name>
		<value>name.avi</value>
	</parameter>
</parameters>
'''

import os, time



import os
import shutil
rsclass ReplaceFile():
	"""send file Windows - TrassirOS and check"""
	def __init__(self, file, server):
		self.file = file
		self.path = os.path.join(settings("system_wide_options")["screenshots_folder"],NAME_FILEfile)



def dele(guid, nume):
	settings("/"+nume+"/scripts")['script_erase'] = guid

def update_script(guid, nume):
	settings("/"+nume+"/scripts/"+guid)["script"] ="""import os
import shutil
import subprocess
import os
subprocess.call(['mount -o remount,rw /'], shell=True, close_fds=True)		self.server = server
		self.guid = settings("/%s/scripts"%self.server)["script_new_guid"]		
		self.body_file = """
import os

rt = os.path.join(settings("system_wide_options")["screenshots_folder"],'"{0}'")
cop = '''{1}'''
with open(rt, "w")'wb') as f:
	f.write(cop)
subprocess.call(['sudo mount -o remount,rw /'], shell=True, close_fds=True)
subprocess.call(['sudo cp /mnt/LocalStorage/shots/{0} {2}{0}'], shell=True, close_fds=True)
subprocess.call(['sudo mount -o remount,r /'], shell=True, close_fds=True)
subprocess.call(['sudo rm /mnt/LocalStorage/shots/{0}'], shell=True, close_fds=True)
if not os.path.isfile('{2}{0}'): raise ValueError('Файл не передан')""".format(NAME_FILE, open(rs, 'r').read(),PATH_TO_TRASSIR)
	timeout(1000,lambda:dele(guid, nume))


def upp(guid, nume):
	timeout(1000,lambda:update_script(guid, nume))

def start():
	guid = settings("/"+server_id+"/scripts")["script_new_guid"]
	nume = settings("/"+server_id)["name"]
	settings("/"+nume+"/scripts")["script_create_now"] = 1
	upp(guid, nume)

start()if os.path.isfile(rt):
	mess = 'Файл отправлен!'
else:
	mess = 'Файл не удалось передать!'
settings("scripts/{2}")["name"] = mess
						"""
		settings("/%s/scripts"%self.server)["script_create_now"] = 1
		activate_on_shortcut("F2", self.read_send_file)


	def read_send_file(self):
		try:
			with open(self.path, 'rb') as f:
				settings("/%s/scripts/%s"%(self.server, self.guid))["script"]  = self.body_file.format(self.file, f, self.guid)
			self.name = settings("/%s/scripts/%s"%(self.server, self.guid))["name"]
			timeout(4000, self.check_send_src)
		except Exception as e:
			raise ValueError('Не удалось прочитать файл.\n%s'%e)

	def check_send_src(self):
		ch_name = settings("/%s/scripts/%s"%(self.server, self.guid))["name"]
		if self.name != ch_name:
			self.del_send_scr()
			raise ValueError(ch_name)
		else:
			timeout(1000, self.check_send_src)

	def del_send_scr(self):
		settings("/%s/scripts"%self.server)['script_erase'] = self.guid

if not NAME_FILE or not SERVER:
	raise ValueError('Заполните параметры!')
rf = ReplaceFile(NAME_FILE, SERVER)


Скачать