public override void ResolveEntity(IMediaLocation location,
                                           out BaseItemFactory factory,
                                           out IEnumerable <InitializationParameter> setup)
        {
            factory = null;
            setup   = null;

            if (!location.IsHidden())
            {
                bool isFolder = !Path.HasExtension(location.Path);

                bool containsIfo = false;
                bool isDvd       = isFolder ? IsDvd(location, out containsIfo) : false;
                bool isIso       = isFolder ? false : Helper.IsIso(location.Path);
                bool isBD        = isFolder ? Helper.IsBluRayFolder(location.Path, null) : false;

                bool isVideo = !(location is IFolderMediaLocation) &&
                               (isIso || isBD || Helper.IsVideo(location.Path) || location.IsVob());

                if ((isDvd || isBD || isVideo) &&
                    TVUtils.IsEpisode(location.Path))
                {
                    if (isBD)
                    {
                        setup = new List <InitializationParameter>()
                        {
                            new MediaTypeInitializationParameter()
                            {
                                MediaType = MediaType.BluRay
                            }
                        };
                    }
                    else if (containsIfo || isIso)
                    {
                        MediaType mt = isIso ? MediaType.ISO : MediaType.DVD;
                        setup = new List <InitializationParameter>()
                        {
                            new MediaTypeInitializationParameter()
                            {
                                MediaType = mt
                            }
                        };
                    }
                    else if (isVideo)
                    {
                        MediaType mt = location.GetVideoMediaType();
                        setup = new List <InitializationParameter>()
                        {
                            new MediaTypeInitializationParameter()
                            {
                                MediaType = mt
                            }
                        };
                    }

                    factory = BaseItemFactory <Episode> .Instance;
                }
            }
        }
Example #2
0
        public override void ResolveEntity(IMediaLocation location,
                                           out BaseItemFactory factory,
                                           out IEnumerable <InitializationParameter> setup)
        {
            factory = null;
            setup   = null;

            if (!(location is IFolderMediaLocation) && Helper.IsVideo(location.Path) && TVUtils.IsEpisode(location.Path))
            {
                factory = BaseItemFactory <Episode> .Instance;
            }
        }