mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-11-03 19:17:24 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			99 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using MediaBrowser.Controller.Entities;
 | 
						|
using MediaBrowser.Controller.IO;
 | 
						|
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.IO;
 | 
						|
using System.Linq;
 | 
						|
using MediaBrowser.Controller.Library;
 | 
						|
 | 
						|
namespace MediaBrowser.Controller.Resolvers
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// Class EntityResolutionHelper
 | 
						|
    /// </summary>
 | 
						|
    public static class EntityResolutionHelper
 | 
						|
    {
 | 
						|
        /// <summary>
 | 
						|
        /// Any extension in this list is considered a video file - can be added to at runtime for extensibility
 | 
						|
        /// </summary>
 | 
						|
        public static List<string> VideoFileExtensions = new List<string>
 | 
						|
        {
 | 
						|
                ".mkv",
 | 
						|
                ".m2t",
 | 
						|
                ".m2ts",
 | 
						|
                ".img",
 | 
						|
                ".iso",
 | 
						|
                ".ts",
 | 
						|
                ".rmvb",
 | 
						|
                ".mov",
 | 
						|
                ".avi",
 | 
						|
                ".mpg",
 | 
						|
                ".mpeg",
 | 
						|
                ".wmv",
 | 
						|
                ".mp4",
 | 
						|
                ".divx",
 | 
						|
                ".dvr-ms",
 | 
						|
                ".wtv",
 | 
						|
                ".ogm",
 | 
						|
                ".ogv",
 | 
						|
                ".asf",
 | 
						|
                ".m4v",
 | 
						|
                ".flv",
 | 
						|
                ".f4v",
 | 
						|
                ".3gp",
 | 
						|
                ".webm"
 | 
						|
        };
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Determines whether [is video file] [the specified path].
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="path">The path.</param>
 | 
						|
        /// <returns><c>true</c> if [is video file] [the specified path]; otherwise, <c>false</c>.</returns>
 | 
						|
        public static bool IsVideoFile(string path)
 | 
						|
        {
 | 
						|
            var extension = Path.GetExtension(path) ?? string.Empty;
 | 
						|
            return VideoFileExtensions.Contains(extension, StringComparer.OrdinalIgnoreCase);
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Ensures DateCreated and DateModified have values
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="item">The item.</param>
 | 
						|
        /// <param name="args">The args.</param>
 | 
						|
        public static void EnsureDates(BaseItem item, ItemResolveArgs args)
 | 
						|
        {
 | 
						|
            if (!Path.IsPathRooted(item.Path))
 | 
						|
            {
 | 
						|
                return;
 | 
						|
            }
 | 
						|
 | 
						|
            // See if a different path came out of the resolver than what went in
 | 
						|
            if (!args.Path.Equals(item.Path, StringComparison.OrdinalIgnoreCase))
 | 
						|
            {
 | 
						|
                var childData = args.IsDirectory ? args.GetFileSystemEntryByPath(item.Path) : null;
 | 
						|
 | 
						|
                if (childData.HasValue)
 | 
						|
                {
 | 
						|
                    item.DateCreated = childData.Value.CreationTimeUtc;
 | 
						|
                    item.DateModified = childData.Value.LastWriteTimeUtc;
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    var fileData = FileSystem.GetFileData(item.Path);
 | 
						|
 | 
						|
                    if (fileData.HasValue)
 | 
						|
                    {
 | 
						|
                        item.DateCreated = fileData.Value.CreationTimeUtc;
 | 
						|
                        item.DateModified = fileData.Value.LastWriteTimeUtc;
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                item.DateCreated = args.FileInfo.CreationTimeUtc;
 | 
						|
                item.DateModified = args.FileInfo.LastWriteTimeUtc;
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |