Fix various small errors in emailed-KDM zip file format (#478).
authorCarl Hetherington <cth@carlh.net>
Sat, 13 May 2017 11:00:35 +0000 (12:00 +0100)
committerCarl Hetherington <cth@carlh.net>
Sat, 13 May 2017 11:00:35 +0000 (12:00 +0100)
src/lib/cinema_kdms.cc
src/lib/cinema_kdms.h
src/lib/send_kdm_email_job.cc
src/lib/send_kdm_email_job.h
src/wx/kdm_output_panel.cc

index 605e414a0c4db08042b8da174286f5cbb3bb706d..dc9bfd3d77f83023142229c4374c2bbd6f66a773 100644 (file)
@@ -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<CinemaKDMs> 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> 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 ();
 
index 98cb84541677f2518f8b71a7750ce311cc066059..9d4887f5ae53456fe48fe54cd12e78108c342a71 100644 (file)
@@ -51,7 +51,8 @@ public:
 
        static void email (
                std::list<CinemaKDMs> 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> log
index 890115747a3c379b6e64cfcb2e4cf28f80807cfd..eff77ce43bfa6b6467876fb24705df093171878c 100644 (file)
@@ -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<CinemaKDMs> 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> log
        )
        : Job (shared_ptr<Film>())
-       , _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);
 }
index c2916f69d02a14f2d0522fb280e0e5cfe3468d6e..88de1e9fee6bf86f8e997152391f2829e2674369 100644 (file)
@@ -32,7 +32,8 @@ class SendKDMEmailJob : public Job
 public:
        SendKDMEmailJob (
                std::list<CinemaKDMs> 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> 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<CinemaKDMs> _cinema_kdms;
index bbfc1a01d4bf53ff6b7bca07742d9adda1d29661..82c5210d2e20fdaf2c4e2a06e5d7163698d6b356 100644 (file)
@@ -248,6 +248,7 @@ KDMOutputPanel::make (
                        job.reset (
                                new SendKDMEmailJob (
                                        cinema_kdms,
+                                       _container_name_format->get(),
                                        _filename_format->get(),
                                        name_values,
                                        name,