Basic (untested) ebur128 (#368).
[dcpomatic.git] / src / lib / send_problem_report_job.cc
index b0e37c5ef226301caacac73c1f496e9f6fac37b1..8142b173c3d42e89171ed6fbafb5b5e7c1e79aed 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());
 }
 
@@ -58,34 +64,28 @@ SendProblemReportJob::json_name () const
 void
 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);
+
+       list<string> to;
+       to.push_back ("carl@dcpomatic.com");
+
+       Emailer emailer (_from, to, "DCP-o-matic problem report", body);
+       emailer.send (shared_from_this ());
 
        set_progress (1);
 }
@@ -97,7 +97,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));