#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)
|