1 package org.paneris.jammyjoes.mail;
2
3 import java.io.IOException;
4 import java.io.OutputStream;
5 import java.util.Iterator;
6 import java.util.List;
7
8 import javax.mail.MessagingException;
9
10 import com.quiotix.html.parser.HtmlDocument;
11 import com.quiotix.html.parser.HtmlDumper;
12 import com.quiotix.html.parser.HtmlDocument.Attribute;
13 import com.quiotix.html.parser.HtmlDocument.Tag;
14
15 public class ImageTranslator extends HtmlDumper {
16
17 private int count;
18 private NewsletterInterface newsletter;
19
20 public ImageTranslator(OutputStream out, NewsletterInterface newsletter) {
21 super(out);
22 this.newsletter = newsletter;
23 }
24
25 public void visit(Tag t) {
26 if (t.tagName.equals("img")){
27 out.write("<img ");
28 Iterator attributes = t.attributeList.attributes.iterator();
29 while (attributes.hasNext()) {
30 Attribute element = (Attribute) attributes.next();
31 if (element.name.equals("src")) {
32 out.write("src=\"cid:image" + count + "\" ");
33 } else {
34 out.write(element.toString() + " ");
35 }
36 }
37 out.write(">");
38 try {
39 newsletter.addImage(findName(t.attributeList.attributes), count);
40 } catch (MessagingException e) {
41 throw new RuntimeException(e);
42 } catch (IOException e) {
43 throw new RuntimeException(e);
44 }
45 count++;
46 } else {
47 super.visit(t);
48 }
49 }
50
51 public String findName(List vector) {
52 Iterator iter = vector.iterator();
53 while (iter.hasNext()) {
54 HtmlDocument.Attribute element = (HtmlDocument.Attribute) iter.next();
55 if (element.name.equals("src")) {
56 return element.value.replaceAll("\"","");
57 }
58 }
59 return null;
60 }
61
62 }