X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fcinema_kdms.cc;h=f5d9aef4172705f599680281f6e2c5f98ee32d93;hb=ad1ef39eda58b3a919ea3b7084401a0439409ec6;hp=dc9bfd3d77f83023142229c4374c2bbd6f66a773;hpb=8bdc1edabc107c3ba0ec6c5f0b8f93ac00e4c631;p=dcpomatic.git diff --git a/src/lib/cinema_kdms.cc b/src/lib/cinema_kdms.cc index dc9bfd3d7..f5d9aef41 100644 --- a/src/lib/cinema_kdms.cc +++ b/src/lib/cinema_kdms.cc @@ -27,6 +27,7 @@ #include "emailer.h" #include "compose.hpp" #include "log.h" +#include "dcpomatic_log.h" #include #include @@ -65,6 +66,7 @@ CinemaKDMs::make_zip_file (boost::filesystem::path zip_file, dcp::NameFormat nam } name_values['s'] = i.screen->name; + name_values['i'] = i.kdm.id (); string const name = name_format.get(name_values, ".xml"); if (zip_add (zip, name.c_str(), source) == -1) { throw runtime_error ("failed to add KDM to ZIP archive"); @@ -183,7 +185,6 @@ CinemaKDMs::write_zip_files ( * @param filename_format Format of filenames to use. * @param name_values Values to substitute into \p container_name_format and \p filename_format. * @param cpl_name Name of the CPL that the KDMs are for. - * @param log Log to write email session transcript to, or 0. */ void CinemaKDMs::email ( @@ -191,8 +192,7 @@ CinemaKDMs::email ( dcp::NameFormat container_name_format, dcp::NameFormat filename_format, dcp::NameFormat::Map name_values, - string cpl_name, - shared_ptr log + string cpl_name ) { Config* config = Config::instance (); @@ -208,7 +208,8 @@ CinemaKDMs::email ( name_values['c'] = i.cinema->name; - boost::filesystem::path zip_file = boost::filesystem::temp_directory_path(); + boost::filesystem::path zip_file = boost::filesystem::temp_directory_path() / boost::filesystem::unique_path(); + boost::filesystem::create_directories (zip_file); zip_file /= container_name_format.get(name_values, ".zip"); i.make_zip_file (zip_file, filename_format, name_values); @@ -246,20 +247,19 @@ CinemaKDMs::email ( try { email.send (c->mail_server(), c->mail_port(), c->mail_user(), c->mail_password()); } catch (...) { - if (log) { - log->log ("Email content follows", LogEntry::TYPE_DEBUG_EMAIL); - log->log (email.email(), LogEntry::TYPE_DEBUG_EMAIL); - log->log ("Email session follows", LogEntry::TYPE_DEBUG_EMAIL); - log->log (email.notes(), LogEntry::TYPE_DEBUG_EMAIL); - } + boost::filesystem::remove (zip_file); + dcpomatic_log->log ("Email content follows", LogEntry::TYPE_DEBUG_EMAIL); + dcpomatic_log->log (email.email(), LogEntry::TYPE_DEBUG_EMAIL); + dcpomatic_log->log ("Email session follows", LogEntry::TYPE_DEBUG_EMAIL); + dcpomatic_log->log (email.notes(), LogEntry::TYPE_DEBUG_EMAIL); throw; } - if (log) { - log->log ("Email content follows", LogEntry::TYPE_DEBUG_EMAIL); - log->log (email.email(), LogEntry::TYPE_DEBUG_EMAIL); - log->log ("Email session follows", LogEntry::TYPE_DEBUG_EMAIL); - log->log (email.notes(), LogEntry::TYPE_DEBUG_EMAIL); - } + boost::filesystem::remove (zip_file); + + dcpomatic_log->log ("Email content follows", LogEntry::TYPE_DEBUG_EMAIL); + dcpomatic_log->log (email.email(), LogEntry::TYPE_DEBUG_EMAIL); + dcpomatic_log->log ("Email session follows", LogEntry::TYPE_DEBUG_EMAIL); + dcpomatic_log->log (email.notes(), LogEntry::TYPE_DEBUG_EMAIL); } }