From 8bdc1edabc107c3ba0ec6c5f0b8f93ac00e4c631 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 13 May 2017 12:00:35 +0100 Subject: [PATCH 1/1] Fix various small errors in emailed-KDM zip file format (#478). --- src/lib/cinema_kdms.cc | 16 +++++++++------- src/lib/cinema_kdms.h | 3 ++- src/lib/send_kdm_email_job.cc | 13 ++++++++----- src/lib/send_kdm_email_job.h | 6 ++++-- src/wx/kdm_output_panel.cc | 1 + 5 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/lib/cinema_kdms.cc b/src/lib/cinema_kdms.cc index 605e414a0..dc9bfd3d7 100644 --- a/src/lib/cinema_kdms.cc +++ b/src/lib/cinema_kdms.cc @@ -179,15 +179,17 @@ CinemaKDMs::write_zip_files ( /** Email one ZIP file per cinema to the cinema. * @param cinema_kdms KDMS to email. - * @param name_format Format of filename to use. - * @param name_values Values to substitute into \p name_format. + * @param container_name_format Format of folder / ZIP to use. + * @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 ( list cinema_kdms, - dcp::NameFormat name_format, + dcp::NameFormat container_name_format, + dcp::NameFormat filename_format, dcp::NameFormat::Map name_values, string cpl_name, shared_ptr log @@ -206,9 +208,9 @@ CinemaKDMs::email ( name_values['c'] = i.cinema->name; - boost::filesystem::path zip_file = boost::filesystem::temp_directory_path (); - zip_file /= boost::filesystem::unique_path().string() + ".zip"; - i.make_zip_file (zip_file, name_format, name_values); + boost::filesystem::path zip_file = boost::filesystem::temp_directory_path(); + zip_file /= container_name_format.get(name_values, ".zip"); + i.make_zip_file (zip_file, filename_format, name_values); string subject = config->kdm_subject(); boost::algorithm::replace_all (subject, "$CPL_NAME", cpl_name); @@ -237,7 +239,7 @@ CinemaKDMs::email ( email.add_bcc (config->kdm_bcc ()); } - email.add_attachment (zip_file, name_format.get(name_values, ".zip"), "application/zip"); + email.add_attachment (zip_file, container_name_format.get(name_values, ".zip"), "application/zip"); Config* c = Config::instance (); diff --git a/src/lib/cinema_kdms.h b/src/lib/cinema_kdms.h index 98cb84541..9d4887f5a 100644 --- a/src/lib/cinema_kdms.h +++ b/src/lib/cinema_kdms.h @@ -51,7 +51,8 @@ public: static void email ( std::list cinema_kdms, - dcp::NameFormat name_format, + dcp::NameFormat container_name_format, + dcp::NameFormat filename_format, dcp::NameFormat::Map name_values, std::string cpl_name, boost::shared_ptr log diff --git a/src/lib/send_kdm_email_job.cc b/src/lib/send_kdm_email_job.cc index 890115747..eff77ce43 100644 --- a/src/lib/send_kdm_email_job.cc +++ b/src/lib/send_kdm_email_job.cc @@ -31,20 +31,23 @@ using std::list; using boost::shared_ptr; /** @param cinema_kdms KDMs to email. - * @param name_format Format to use for filenames. - * @param name_values Values to substitute into the filenames. + * @param container_name_format Format to ues for folders / ZIP files. + * @param filename_format Format to use for filenames. + * @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 to, or 0. */ SendKDMEmailJob::SendKDMEmailJob ( list cinema_kdms, - dcp::NameFormat name_format, + dcp::NameFormat container_name_format, + dcp::NameFormat filename_format, dcp::NameFormat::Map name_values, string cpl_name, shared_ptr log ) : Job (shared_ptr()) - , _name_format (name_format) + , _container_name_format (container_name_format) + , _filename_format (filename_format) , _name_values (name_values) , _cpl_name (cpl_name) , _cinema_kdms (cinema_kdms) @@ -74,7 +77,7 @@ void SendKDMEmailJob::run () { set_progress_unknown (); - CinemaKDMs::email (_cinema_kdms, _name_format, _name_values, _cpl_name, _log); + CinemaKDMs::email (_cinema_kdms, _container_name_format, _filename_format, _name_values, _cpl_name, _log); set_progress (1); set_state (FINISHED_OK); } diff --git a/src/lib/send_kdm_email_job.h b/src/lib/send_kdm_email_job.h index c2916f69d..88de1e9fe 100644 --- a/src/lib/send_kdm_email_job.h +++ b/src/lib/send_kdm_email_job.h @@ -32,7 +32,8 @@ class SendKDMEmailJob : public Job public: SendKDMEmailJob ( std::list cinema_kdms, - dcp::NameFormat name_format, + dcp::NameFormat container_name_format, + dcp::NameFormat filename_format, dcp::NameFormat::Map name_values, std::string cpl_name, boost::shared_ptr log @@ -43,7 +44,8 @@ public: void run (); private: - dcp::NameFormat _name_format; + dcp::NameFormat _container_name_format; + dcp::NameFormat _filename_format; dcp::NameFormat::Map _name_values; std::string _cpl_name; std::list _cinema_kdms; diff --git a/src/wx/kdm_output_panel.cc b/src/wx/kdm_output_panel.cc index bbfc1a01d..82c5210d2 100644 --- a/src/wx/kdm_output_panel.cc +++ b/src/wx/kdm_output_panel.cc @@ -248,6 +248,7 @@ KDMOutputPanel::make ( job.reset ( new SendKDMEmailJob ( cinema_kdms, + _container_name_format->get(), _filename_format->get(), name_values, name, -- 2.30.2