diff options
Diffstat (limited to 'jfr_playoff/filemanager.py')
-rw-r--r-- | jfr_playoff/filemanager.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/jfr_playoff/filemanager.py b/jfr_playoff/filemanager.py new file mode 100644 index 0000000..5cd2a80 --- /dev/null +++ b/jfr_playoff/filemanager.py @@ -0,0 +1,53 @@ +import os +import shutil +import socket + +import __main__ + + +class PlayoffFileManager(object): + + def __init__(self, settings): + self.goniec = settings.get('goniec') + self.output_file = settings.get('output') + self.output_path = os.path.dirname( + self.output_file + ).strip(os.sep) + os.sep + self.files = set() + + def reset(self): + self.files.clear() + + def register_file(self, path): + if path.startswith(self.output_path): + self.files.add(path.replace(self.output_path, '')) + + def write_content(self, content): + output = open(self.output_file, 'w') + output.write(content.encode('utf8')) + output.close() + self.register_file(self.output_file) + return self.output_file + + def copy_scripts(self, script_path='sklady/playoff.js'): + script_output_path = os.path.join(self.output_path, script_path) + shutil.copy( + unicode(os.path.join( + os.path.dirname(__main__.__file__), 'playoff.js')), + unicode(script_output_path)) + self.register_file(script_output_path) + return script_output_path + + def send_files(self): + if self.goniec['enabled']: + try: + content_lines = [self.output_path] + \ + list(self.files) + \ + ['bye', ''] + print '\n'.join(content_lines) + goniec = socket.socket() + goniec.connect((self.goniec['host'], self.goniec['port'])) + goniec.sendall('\n'.join(content_lines)) + goniec.close() + except socket.error: + pass |