コード例 #1
0
ファイル: faxutils.py プロジェクト: amsys/faxcelerate
def create_fax_entry(metadata):
	from faxcelerate.fax.models import Fax
	def m(key):
		try:
			return metadata[key]
		except KeyError:
			return None
	f = Fax()
	f.comm_id = m('commid')
	f.station_id = m('tsi')
	f.msn = m('msn')
	f.received_on = m('date')
	f.time_to_receive = m('jobduration')
	f.conn_duration = m('connduration')
	f.pages = m('pages')
	f.params = m('params')
	f.reason = m('reason')
	f.filename = m('filename')
	f.caller_id = m('callerid')
	f.save()
	return f
コード例 #2
0
ファイル: notify.py プロジェクト: puccia/faxcelerate
    fax.outbound = True
    fax.caller_id = info['number']
    if error_message:
        fax.reason = error_message
    # Exit if job is not done
    if int(info['state']) < 7:
        fax.save()
        sys.exit(1)

    # List files
    input_files = []
    for tag in ('postscript', 'pdf', '!postscript', '!pdf'):
        if tag in info:
            input_files += [os.path.join(settings.FAX_SPOOL_DIR, 
                name.split(':')[-1]) for name in info[tag]]

    # Build TIFF file
    output_file = '%s.tif' % os.path.join(TIFF_OUTPUT_DIR, info['commid'])
    os.system('gs -dBATCH -dNOPAUSE -q -sDEVICE=tiffg3 -sOutputFile=%s %s -r200'
        % (output_file, ' '.join(input_files)))
    
    # Store in DB
    fax.filename = 'senttiff/%s.tif' % info['commid']
    fax.time_to_receive = 1
    fax.update_from_tiff()
    fax.save()
    from faxcelerate.fax.image import FaxImage
    FaxImage(fax).cache_thumbnails()
	
    
コード例 #3
0
ファイル: faxnotify.py プロジェクト: amsys/faxcelerate
    def handle(self, *args, **options):

        if 3 > len(args) > 4:
            raise AttributeError

        TIFF_OUTPUT_DIR = os.path.join(settings.FAX_SPOOL_DIR, 'senttiff')

        qfile, why, jobtime = args[:3]

        # Scan qfile for info
        info = {}
        for line in open(os.path.join(settings.FAX_SPOOL_DIR, qfile), 'r'):
            tag, data = line.split(':', 1)
            data = data.strip()
            if tag[0] == '!':
                if not tag in info:
                    info[tag] = []
                info[tag].append(data)
            else:
                info[tag] = data
        print info

        try:
            fax = Fax.objects.get(comm_id=info['commid'])
        except Fax.DoesNotExist:
            fax = Fax()

        error_message = None
        if why != 'done' or int(info['state']) == 9:
            try:
                error_message = '%s: %s' % (why, info['status'])
            except KeyError:
                error_message = why
            fax.status = 2
        else:
            fax.status = 1
        print 'OK'

        # Continue if fax is done or aborted due to an error
        if why in ('blocked', 'requeued'):
            fax.status = 0
            fax.save()
            sys.exit(1)

        fax.comm_id = info['commid']
        fax.local_sender = '%s@%s' % (info['mailaddr'], info['client'])
        fax.received_on = datetime.fromtimestamp(float(info['tts']))
        fax.outbound = True
        fax.caller_id = info['number']
        if error_message:
            fax.reason = error_message
        # Exit if job is not done
        if int(info['state']) < 7:
            fax.save()
            sys.exit(1)

        # List files
        input_files = []
        for tag in ('postscript', 'pdf', '!postscript', '!pdf'):
            if tag in info:
                input_files += [os.path.join(settings.FAX_SPOOL_DIR,
                                             name.split(':')[-1]) for name in info[tag]]

        # Build TIFF file
        output_file = '%s.tif' % os.path.join(TIFF_OUTPUT_DIR, info['commid'])
        os.system('gs -dBATCH -dNOPAUSE -q -sDEVICE=tiffg3 -sOutputFile=%s %s -r200'
                  % (output_file, ' '.join(input_files)))

        # Store in DB
        fax.filename = 'senttiff/%s.tif' % info['commid']
        fax.time_to_receive = 1
        fax.update_from_tiff()
        fax.save()
        from faxcelerate.fax.image import FaxImage

        FaxImage(fax).cache_thumbnails()