commit 2151708bf255c46859b03bc96511939e4232d511
Author: David Sorber <david.sorber@gmail.com>
Date:   Sun Feb 24 10:26:13 2019 -0500

    Add inital and final file size tracking for inclusion in encode complete
    email. Version 0.4.0.

diff --git a/software/hbkcd/hbkcd/daemon.py b/software/hbkcd/hbkcd/daemon.py
index 80c1409..ecf43fc 100755
--- a/software/hbkcd/hbkcd/daemon.py
+++ b/software/hbkcd/hbkcd/daemon.py
@@ -12,6 +12,7 @@ import time
 from hbkcd.config import *
 from hbkcd.command_server import StoppableHTTPServer, CommandHandler
 from hbkcd.queue import ENCODE_QUEUE
+from hbkcd.utils import *
 
 # These should probably be protected... 
 RELAY_EMAIL = 'dsorber.phalanx@gmail.com'
@@ -166,6 +167,7 @@ def main():
             status = ''
             if hbk_proc.returncode == 0:
                 status = 'COMPLETED SUCCESSFULLY'
+                item.final_size = os.stat(item.output_file).st_size
                 fmt_str = 'Encode of {:s} completed in {:s} (queued for: {:s})'
                 logging.info(fmt_str.format(item.path, elapsed_str, queued_str))
             else:
@@ -176,12 +178,17 @@ def main():
             # If configured send encode complete email
             if ENABLE_ENCODE_COMPLETE_EMAILS:
                 subject = 'hbkcd Encode Complete'
-                msg = '{:s}\n\nEncoded: {:s}\nOutput: {:s}\nDuration: {:s}\n'\
-                      'Queued time: {:s}\nEncode log: {:s}\n'
+                msg = '{:s}\n\nEncoded: {:s}\nInitial Size: {:s}\n\n'\
+                      'Output: {:s}\nFinal Size: {:s} ({:.2f}%)\n\n'\                      
+                      'Duration: {:s}\nQueued time: {:s}\nEncode log: {:s}\n'
                 
+                ratio = (item.final_size / (item.initial_size * 1.0))
                 send_email(subject, msg.format(status, item.path, 
-                                               item.output_file, elapsed_str, 
-                                               queued_str, log_path))
+                                               pp_filesize(item.initial_size),
+                                               item.output_file, 
+                                               pp_filesize(item.final_size), 
+                                               ratio, elapsed_str, queued_str, 
+                                               log_path))
                 logging.debug('Sent encode complete email')
             
             # Remove the item from the queue
diff --git a/software/hbkcd/hbkcd/queue.py b/software/hbkcd/hbkcd/queue.py
index 1006610..ee28b5c 100644
--- a/software/hbkcd/hbkcd/queue.py
+++ b/software/hbkcd/hbkcd/queue.py
@@ -68,6 +68,8 @@ class QueueItem(object):
         self.path = path
         self.filename = os.path.basename(path)
         self.output_file = output_file
+        self.initial_size = os.stat(path).st_size
+        self.final_size = 0
         self.position = None
         self.in_progress = False
         self.status = 'queued'
@@ -132,6 +134,7 @@ class QueueItem(object):
     def get_dict_rep(self):
         return {'position':         self.position,
                 'path':             self.path,
+                'initial_size':     self.initial_size,
                 'output_file':      self.output_file,
                 'in_progress':      self.in_progress,
                 'status':           self.status,
diff --git a/software/hbkcd/setup.py b/software/hbkcd/setup.py
index 3d4761f..9bea603 100755
--- a/software/hbkcd/setup.py
+++ b/software/hbkcd/setup.py
@@ -3,7 +3,7 @@ from setuptools import setup, find_packages
 
 setup(
     name = 'hbkcd',
-    version = '0.3.0',
+    version = '0.4.0',
     description = 'HandBrake Control Daemon',
     packages = find_packages(),
     python_requires = '>=3.6.0',
