import os

from compress.utils import get_output_filename, media_root
from compress.versioning.base import VersioningBase


class MTimeVersioning(VersioningBase):

    def get_version(self, source_files):

        # Return the modification time for the newest source file
        return str(max([int(os.stat(media_root(f)).st_mtime) for f in source_files]))

    def needs_update(self, output_file, source_files, version):

        output_file_name = get_output_filename(output_file, version)
        compressed_file_full = media_root(output_file_name)

        return (int(os.stat(compressed_file_full).st_mtime) < int(version)), version
