def file_new(self, force=False): if self.recording or (not force and not self.file_new_ask()): return ext = dict([(t, ext) for (_, t, desc, ext) in self.FILE_TYPES])[self.outtype] if self.moviefile: moviefile = self.moviefile else: moviefile = os.path.join(self.tempdir, 'pyvnc2swf-%d%s' % (os.getpid(), ext)) self.info.filename = moviefile self.fp = None if self.outtype == 'vnc' or self.outtype == 'novnc': self.fp = file(self.info.filename, 'wb') self.client = RFBNetworkClientForRecordingWithTk( self.host, self.port, self.fp, pwdfile=self.pwdfile, preferred_encoding=self.preferred_encoding, debug=self.debug, outtype=self.outtype, info=self.info) self.stream = None else: self.stream = StreamFactory(self.outtype)(self.info) self.client = RFBNetworkClientWithTk( self.host, self.port, RFBStreamConverter(self.info, self.stream), pwdfile=self.pwdfile, preferred_encoding=self.preferred_encoding) self.set_status() return True
def vnc2swf(info, outtype='swf5', host='localhost', port=5900, preferred_encoding=(0, ), subprocess=None, pwdfile=None, vncfile=None, debug=0, merge=False): fp = None if outtype == 'vnc' or outtype == 'novnc': if info.filename == '-': fp = sys.stdout else: fp = file(info.filename, 'wb') client = RFBNetworkClientForRecording( host, port, fp, pwdfile=pwdfile, preferred_encoding=preferred_encoding, debug=debug, outtype=outtype, info=info) else: stream = StreamFactory(outtype)(info, debug=debug) converter = RFBStreamConverter(info, stream, debug=debug) if vncfile: client = RFBFileParser(vncfile, converter, debug=debug) else: client = RFBNetworkClient(host, port, converter, pwdfile=pwdfile, preferred_encoding=preferred_encoding, debug=debug) try: client.init().auth().start() except socket.error, e: print >> stderr, 'Socket error:', e