From f44b297a36dbce9cc17c55df1de195aadcffc398 Mon Sep 17 00:00:00 2001 From: adam Date: Sun, 22 Jul 2007 02:27:44 +0000 Subject: [PATCH] better DCC interface darcs-hash:20070722022744-5007d-b74723c8d4d1eea62500a846c7c8b0fdf6bec182.gz --- src/org/ibex/mail/Script.java | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/org/ibex/mail/Script.java b/src/org/ibex/mail/Script.java index 875b178..f7b259d 100644 --- a/src/org/ibex/mail/Script.java +++ b/src/org/ibex/mail/Script.java @@ -243,7 +243,37 @@ public class Script extends JS.Obj implements Target { StringBuffer ret = new StringBuffer(); new Stream(p.getInputStream()).transcribe(ret); p.waitFor(); - return JSU.S(ret.toString()); + String result = ret.toString(); + Log.warn("dcc", ((Message)args[0]).summary() + ":\n " + result); + int body = 0; + int fuz1 = 0; + int fuz2 = 0; + int i_body = result.indexOf("Body="); + int i_fuz1 = result.indexOf("Fuz1="); + int i_fuz2 = result.indexOf("Fuz2="); + if (i_body != -1) try { + String s = result.substring(i_body+5); + if (s.indexOf(' ') != -1) s = s.substring(0, s.indexOf(' ')); + if (s.indexOf('\n') != -1) s = s.substring(0, s.indexOf('\n')); + body = s.equals("many") ? 999 : Integer.parseInt(s.trim()); + } catch (Exception e) { Log.error("", e); } + if (i_fuz1 != -1) try { + String s = result.substring(i_fuz1+5); + if (s.indexOf(' ') != -1) s = s.substring(0, s.indexOf(' ')); + if (s.indexOf('\n') != -1) s = s.substring(0, s.indexOf('\n')); + fuz1 = s.equals("many") ? 999 : Integer.parseInt(s.trim()); + } catch (Exception e) { Log.error("", e); } + if (i_fuz2 != -1) try { + String s = result.substring(i_fuz2+5); + if (s.indexOf(' ') != -1) s = s.substring(0, s.indexOf(' ')); + if (s.indexOf('\n') != -1) s = s.substring(0, s.indexOf('\n')); + fuz2 = s.equals("many") ? 999 : Integer.parseInt(s.trim()); + } catch (Exception e) { Log.error("", e); } + JSArray jsa = new JSArray(); + jsa.put(JSU.N(0), JSU.N(body)); + jsa.put(JSU.N(1), JSU.N(fuz1)); + jsa.put(JSU.N(2), JSU.N(fuz2)); + return jsa; } if (name.equals("mail.drop")) { return args.length==0 ? new Drop() : new Drop(JSU.toString(args[0])); -- 1.7.10.4