Logging improvements to allow prettier displays in the server GUI.
[dcpomatic.git] / src / lib / send_problem_report_job.cc
index 0fd14bc2452fb6e789e2eb12d92b219209bc314f..f0c34f590bca5f823dadabbfdc70863d9d5a84a1 100644 (file)
@@ -23,7 +23,8 @@
 #include "cross.h"
 #include "film.h"
 #include "log.h"
-#include "quickmail.h"
+#include "version.h"
+#include "emailer.h"
 
 #include "i18n.h"
 
@@ -31,6 +32,7 @@ using std::string;
 using std::list;
 using boost::shared_ptr;
 
+/** @param film Film thta the problem is with, or 0 */
 SendProblemReportJob::SendProblemReportJob (
        shared_ptr<const Film> film,
        string from,
@@ -46,6 +48,10 @@ SendProblemReportJob::SendProblemReportJob (
 string
 SendProblemReportJob::name () const
 {
+       if (!_film) {
+               return _("Email problem report");
+       }
+
        return String::compose (_("Email problem report for %1"), _film->name());
 }
 
@@ -61,32 +67,22 @@ SendProblemReportJob::run ()
        sub (_("Sending email"));
        set_progress_unknown ();
 
-       quickmail mail = quickmail_create (_from.c_str(), "DCP-o-matic problem report");
-       
-       quickmail_add_to (mail, "carl@dcpomatic.com");
-       
        string body = _summary + "\n\n";
-       
-       body += "log head and tail:\n";
-       body += "---<8----\n";
-       body += _film->log()->head_and_tail ();
-       body += "---<8----\n\n";
 
-       add_file (body, "ffprobe.log");
-       add_file (body, "metadata.xml");
-
-       quickmail_set_body (mail, body.c_str());
-       
-       char const* error = quickmail_send (mail, "main.carlh.net", 2525, 0, 0);
-       
-       if (error) {
-               set_state (FINISHED_ERROR);
-               set_error (error, "");
-       } else {
-               set_state (FINISHED_OK);
+       body += "Version: " + string (dcpomatic_version) + " " + string (dcpomatic_git_commit) + "\n\n";
+
+       if (_film) {
+               body += "log head and tail:\n";
+               body += "---<8----\n";
+               body += _film->log()->head_and_tail (4096);
+               body += "---<8----\n\n";
+
+               add_file (body, "ffprobe.log");
+               add_file (body, "metadata.xml");
        }
-       
-       quickmail_destroy (mail);
+
+       Emailer emailer (_from, "carl@dcpomatic.com", "DCP-o-matic problem report", body);
+       emailer.send (shared_from_this ());
 
        set_progress (1);
 }
@@ -98,7 +94,7 @@ SendProblemReportJob::add_file (string& body, boost::filesystem::path file) cons
        if (!f) {
                return;
        }
-       
+
        body += file.string() + ":\n";
        body += "---<8----\n";
        uintmax_t const size = boost::filesystem::file_size (_film->file (file));