Commit b55db6bc by Owo Sugiana

Bug fixed need reconnect

1 parent efe2453e
...@@ -46,19 +46,18 @@ def save_status(status=0, jawaban='OK'): ...@@ -46,19 +46,18 @@ def save_status(status=0, jawaban='OK'):
save_result(d, 'status.json') save_result(d, 'status.json')
def send(server): def send(server, job_files):
conf = registry['conf'] conf = registry['conf']
job_dir = conf['job_dir'] job_dir = conf['job_dir']
job_files = os.listdir(job_dir)
if not job_files:
return
log = getLogger('send') log = getLogger('send')
job_files.sort() job_files.sort()
job_file = os.path.join(job_dir, job_files[0]) for job_file in job_files:
result_file = os.path.split(job_file)[-1] result_file = job_file
job_file = os.path.join(conf['job_dir'], job_file)
d = file2dict(job_file) d = file2dict(job_file)
os.remove(job_file) os.remove(job_file)
result = 'id' in d and dict(id=d['id']) or dict() result = 'id' in d and dict(id=d['id']) or dict()
err = None
try: try:
doc = dict2doc(d) doc = dict2doc(d)
log.info(f'Send {clean_log(d)}') log.info(f'Send {clean_log(d)}')
...@@ -66,11 +65,19 @@ def send(server): ...@@ -66,11 +65,19 @@ def send(server):
conf['username'], d['penerima'], doc.as_string()) conf['username'], d['penerima'], doc.as_string())
result['status'] = 0 result['status'] = 0
result['jawaban'] = 'OK' result['jawaban'] = 'OK'
except Exception as e: except smtplib.SMTPSenderRefused as err:
msg = str(err)
except smtplib.SMTPServerDisconnected as err:
msg = str(err)
except Exception as err:
msg = exception_message()
if err:
result['status'] = -3 result['status'] = -3
result['jawaban'] = exception_message() result['jawaban'] = msg
log.error(f'Result {result}') log.error(f'Result {result}')
save_result(result, result_file) save_result(result, result_file)
if err:
return
def get_option(argv): def get_option(argv):
...@@ -90,16 +97,20 @@ def main(argv=sys.argv[1:]): ...@@ -90,16 +97,20 @@ def main(argv=sys.argv[1:]):
log = getLogger('main') log = getLogger('main')
cf['tls'] = cf['tls'] == 'true' cf['tls'] = cf['tls'] == 'true'
cf['port'] = int(cf['port']) cf['port'] = int(cf['port'])
log.debug(f'Connect to {cf["host"]}:{cf["port"]}') first = True
try: try:
while True:
job_files = os.listdir(cf['job_dir'])
if first or job_files:
log.debug(f'Connect to {cf["host"]}:{cf["port"]}')
with smtplib.SMTP(cf['host'], cf['port']) as server: with smtplib.SMTP(cf['host'], cf['port']) as server:
if cf['tls']: if cf['tls']:
server.starttls() server.starttls()
log.debug(f'Login sebagai {cf["username"]}') log.debug(f'Login sebagai {cf["username"]}')
server.login(cf['username'], cf['password']) server.login(cf['username'], cf['password'])
save_status() first and save_status()
while True: send(server, job_files)
send(server) first = False
sleep(1) sleep(1)
except ConnectionRefusedError as err: except ConnectionRefusedError as err:
msg = str(err) msg = str(err)
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!