1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 package fr.paris.lutece.plugins.botpress.service.renderers;
36
37 import com.fasterxml.jackson.databind.JsonNode;
38 import static fr.paris.lutece.plugins.botpress.service.renderers.BotMessageRenderer.FIELD_TYPE;
39 import fr.paris.lutece.plugins.chatbot.business.Post;
40 import fr.paris.lutece.portal.service.template.AppTemplateService;
41 import fr.paris.lutece.portal.web.l10n.LocaleService;
42 import fr.paris.lutece.util.html.HtmlTemplate;
43 import java.util.HashMap;
44 import java.util.Map;
45
46
47
48
49 public class FileRenderer extends AbstractRenderer implements BotMessageRenderer
50 {
51 private static final String TEMPLATE_IMAGE = "/admin/plugins/botpress/renderers/image.html";
52 private static final String MARK_URL = "url";
53
54 private static final String EXT_JPG = ".jpg";
55 private static final String EXT_JPEG = ".jpeg";
56 private static final String EXT_PNG = ".png";
57 private static final String EXT_GIF = ".gif";
58
59
60
61
62 @Override
63 public boolean isInvoked( JsonNode nodeResponse )
64 {
65 return ( nodeResponse.get( FIELD_TYPE ) != null ) && ( nodeResponse.get( FIELD_TYPE ).asText( ).equals( TYPE_FILE ) );
66 }
67
68
69
70
71 @Override
72 public String render( Map map )
73 {
74 String strUrl = (String) map.get( FIELD_URL );
75 if ( strUrl.endsWith( EXT_JPG ) || strUrl.endsWith( EXT_JPEG ) || strUrl.endsWith( EXT_PNG ) || strUrl.endsWith( EXT_GIF ) )
76 {
77 Map<String, Object> model = new HashMap<>( );
78 model.put( MARK_URL, strUrl );
79 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_IMAGE, LocaleService.getDefault( ), model );
80
81 return template.getHtml( );
82 }
83 return "";
84 }
85
86
87
88
89 @Override
90 public String getPostContentType( )
91 {
92 return Post.CONTENT_TYPE_IMAGE;
93 }
94
95 }