@Override
public Output output(Reaction reaction) {
DefaultOutput output = new DefaultOutput(String.format("Found %d new Torrent(s) for “%s!”", newTorrentFiles.size(), reaction.name()));
- output.addText("text/plain", getPlainTextList(newTorrentFiles));
- output.addText("text/html", getHtmlTextList(newTorrentFiles));
+ output.addText("text/plain", getPlainTextList(reaction));
+ output.addText("text/html", getHtmlTextList(reaction));
return output;
}
/**
* Generates a plain text list of torrent files.
*
- * @param torrentFiles
- * The torrent files to list
+ * @param reaction
+ * The reaction that was triggered
* @return The generated plain text
*/
- private static String getPlainTextList(List<TorrentFile> torrentFiles) {
+ private String getPlainTextList(Reaction reaction) {
StringBuilder plainText = new StringBuilder();
plainText.append("New Torrents:\n\n");
- for (TorrentFile torrentFile : torrentFiles) {
+ for (TorrentFile torrentFile : newTorrentFiles) {
plainText.append(torrentFile.name()).append('\n');
plainText.append('\t').append(torrentFile.size()).append(" in ").append(torrentFile.fileCount()).append(" file(s)\n");
plainText.append('\t').append(torrentFile.seedCount()).append(" seed(s), ").append(torrentFile.leechCount()).append(" leecher(s)\n");
/**
* Generates an HTML list of the given torrent files.
*
- * @param torrentFiles
- * The torrent files to list
+ * @param reaction
+ * The reaction that was triggered
* @return The generated HTML
*/
- private static String getHtmlTextList(List<TorrentFile> torrentFiles) {
- StringBuilder htmlText = new StringBuilder();
- htmlText.append("<html><body>\n");
- htmlText.append("<h1>New Torrents</h1>\n");
- htmlText.append("<ul>\n");
- for (TorrentFile torrentFile : torrentFiles) {
- htmlText.append("<li><strong>").append(StringEscapeUtils.escapeHtml4(torrentFile.name())).append("</strong></li>");
- htmlText.append("<div>Size: <strong>").append(StringEscapeUtils.escapeHtml4(torrentFile.size())).append("</strong> in <strong>").append(torrentFile.fileCount()).append("</strong> file(s)</div>");
- htmlText.append("<div><strong>").append(torrentFile.seedCount()).append("</strong> seed(s), <strong>").append(torrentFile.leechCount()).append("</strong> leecher(s)</div>");
- if ((torrentFile.magnetUri() != null) && (torrentFile.magnetUri().length() > 0)) {
- htmlText.append(String.format("<div><a href=\"%s\">Magnet URI</a></div>", StringEscapeUtils.escapeHtml4(torrentFile.magnetUri())));
- }
- if ((torrentFile.downloadUri() != null) && (torrentFile.downloadUri().length() > 0)) {
- htmlText.append(String.format("<div><a href=\"%s\">Download URI</a></div>", StringEscapeUtils.escapeHtml4(torrentFile.downloadUri())));
+ private String getHtmlTextList(Reaction reaction) {
+ StringBuilder htmlBuilder = new StringBuilder();
+ htmlBuilder.append("<html><body>\n");
+ htmlBuilder.append("<table>\n<caption>All Known Torrents</caption>\n");
+ htmlBuilder.append("<thead>\n");
+ htmlBuilder.append("<tr>");
+ htmlBuilder.append("<th>Filename</th>");
+ htmlBuilder.append("<th>Size</th>");
+ htmlBuilder.append("<th>File(s)</th>");
+ htmlBuilder.append("<th>Seeds</th>");
+ htmlBuilder.append("<th>Leechers</th>");
+ htmlBuilder.append("<th>Magnet</th>");
+ htmlBuilder.append("<th>Download</th>");
+ htmlBuilder.append("</tr>\n");
+ htmlBuilder.append("</thead>\n");
+ htmlBuilder.append("<tbody>\n");
+ for (TorrentFile torrentFile : allTorrentFiles) {
+ if (newTorrentFiles.contains(torrentFile)) {
+ htmlBuilder.append("<tr style=\"color: #008000; font-weight: bold;\">");
+ } else {
+ htmlBuilder.append("<tr>");
}
+ htmlBuilder.append("<td>").append(StringEscapeUtils.escapeHtml4(torrentFile.name())).append("</td>");
+ htmlBuilder.append("<td>").append(StringEscapeUtils.escapeHtml4(torrentFile.size())).append("</td>");
+ htmlBuilder.append("<td>").append(torrentFile.fileCount()).append("</td>");
+ htmlBuilder.append("<td>").append(torrentFile.seedCount()).append("</td>");
+ htmlBuilder.append("<td>").append(torrentFile.leechCount()).append("</td>");
+ htmlBuilder.append("<td><a href=\"").append(StringEscapeUtils.escapeHtml4(torrentFile.magnetUri())).append("\">Link</a></td>");
+ htmlBuilder.append("<td><a href=\"").append(StringEscapeUtils.escapeHtml4(torrentFile.downloadUri())).append("\">Link</a></td>");
+ htmlBuilder.append("</tr>\n");
}
- htmlText.append("</ul>\n");
- htmlText.append("</body></html>\n");
- return htmlText.toString();
+ htmlBuilder.append("</tbody>\n");
+ htmlBuilder.append("</table>\n");
+ htmlBuilder.append("</body></html>\n");
+ return htmlBuilder.toString();
}
}