Ejemplo n.º 1
0
        public string GetLatestVersionNumber(string id)
        {
            if (ProgramSettings.Settings.CheckUpdate)
            {
                if (UpdateController.IsUpdateAvaiable(id))
                {
                    var updater = UpdateController.GetUpdater(id);
                    return(updater.GetLatestVersionNumber(false).Result);
                }
            }

            return(null);
        }
Ejemplo n.º 2
0
        public override async Task <string> Handle(HttpRequest request, HttpResponse response)
        {
            var items = new List <IItem>();

            await Task.Run((() => {
                if (ProgramSettings.Settings.CheckUpdate)
                {
                    if (UpdateController.IsUpdateAvaiable("RemoteFork"))
                    {
                        items.Add(
                            new FileItem()
                        {
                            Title =
                                $"Доступна новая версия: {UpdateController.GetUpdater("RemoteFork").GetLatestVersionNumber(false).Result}",
                            Link = "http://newversion.m3u"
                        }
                            );
                    }
                }

                if (ProgramSettings.Settings.Dlna)
                {
                    if (ProgramSettings.Settings.DlnaFilterType == FilterMode.INCLUSION)
                    {
                        if (ProgramSettings.Settings.DlnaDirectories != null)
                        {
                            foreach (string directory in ProgramSettings.Settings.DlnaDirectories)
                            {
                                Console.WriteLine(directory);
                                if (FileManager.DirectoryExists(directory))
                                {
                                    Console.WriteLine(true);
                                    items.Add(DlnaDirectoryRequestHandler.CreateDirectoryItem(request, directory));

                                    Log.LogDebug($"Filtering directory: {directory}");
                                }
                            }
                        }
                    }
                    else
                    {
                        var drives = FileManager.GetDrives();

                        foreach (var drive in drives.Where(i => Tools.Tools.CheckAccessPath(i.Name)))
                        {
                            if (drive.IsReady)
                            {
                                string mainText =
                                    $"{drive.Name} ({Tools.Tools.FSize(drive.AvailableFreeSpace)} свободно из {Tools.Tools.FSize(drive.TotalSize)})";
                                string subText =
                                    $"<br>Метка диска: {drive.VolumeLabel}<br>Тип носителя: {drive.DriveType}";

                                items.Add(new DirectoryItem()
                                {
                                    Title = mainText + subText,
                                    Link = DlnaDirectoryRequestHandler.CreateDriveItem(request, drive.Name)
                                });

                                Log.LogDebug($"Drive: {mainText}{subText}");
                            }
                        }
                    }
                }


                if ((ProgramSettings.Settings.UserUrls != null) && (ProgramSettings.Settings.UserUrls.Length > 0))
                {
                    items.Add(
                        new DirectoryItem()
                    {
                        Title = "Пользовательские ссылки",
                        Link = CreateUrl(request, UserUrlsRequestHandler.URL_PATH,
                                         new NameValueCollection()
                        {
                            { string.Empty, UserUrlsRequestHandler.PARAM_URLS }
                        })
                    }
                        );

                    Log.LogDebug("User urls: {0}", ProgramSettings.Settings.UserUrls.Length);
                }

                foreach (var plugin in PluginManager.Instance.GetPlugins())
                {
                    var item = new DirectoryItem()
                    {
                        Title = plugin.Value.Name,
                        Link = PluginRequestHandler.CreatePluginUrl(request, plugin.Key)
                    };
                    if (ProgramSettings.Settings.PluginIcons)
                    {
                        item.ImageLink = plugin.Value.Attribute.ImageLink;
                    }

                    items.Add(item);

                    Log.LogDebug("Plugin: {0}", plugin.Value.ToString());
                }
            }));

            PlayList playList = null;

            if (ProgramSettings.Settings.StartPageModernStyle)
            {
                playList = new RootPlayList();
            }
            else
            {
                playList = new PlayList();
            }

            playList.Items = items.ToArray();

            return(ResponseManager.CreateResponse(playList));
        }
Ejemplo n.º 3
0
        public static SettingsModel GetModel(dynamic viewBag)
        {
            var ipAddresses = Tools.Tools.GetIPAddresses();
            var ipList      = ipAddresses.Select(ip => new SelectListItem()
            {
                Text  = ip.ToString(),
                Value = ip.ToString()
            }).ToList();

            var logLevels = Enum.GetValues(typeof(LogLevel)).Cast <LogLevel>();
            var logList   = logLevels.Select(log => new SelectListItem()
            {
                Text  = log.ToString(),
                Value = ((byte)log).ToString()
            }).ToList();

            viewBag.Ips  = new SelectList(ipList, "Value", "Text", ProgramSettings.Settings.IpAddress);
            viewBag.Logs = new SelectList(logList, "Value", "Text", ProgramSettings.Settings.LogLevel);

            viewBag.AceStreamCheck =
                $"http://{ProgramSettings.Settings.IpAddress}:{ProgramSettings.Settings.AceStreamPort}/webui/api/service?method=get_version&format=jsonp&callback=mycallback";

            var proxyType     = Enum.GetValues(typeof(ProxyType)).Cast <ProxyType>();
            var proxyTypeList = proxyType.Select(proxy => new SelectListItem()
            {
                Text  = proxy.ToString(),
                Value = ((byte)proxy).ToString()
            })
                                .ToList();

            viewBag.ProxyType = new SelectList(proxyTypeList, "Value", "Text",
                                               ((byte)ProgramSettings.Settings.ProxyType).ToString());

            var model = new SettingsModel()
            {
                IP              = ProgramSettings.Settings.IpAddress,
                Port            = ProgramSettings.Settings.Port,
                ListenLocalhost = ProgramSettings.Settings.ListenLocalhost,

                ProxyEnable           = ProgramSettings.Settings.UseProxy,
                ProxyAddress          = ProgramSettings.Settings.ProxyAddress,
                ProxyPort             = ProgramSettings.Settings.ProxyPort,
                ProxyUserName         = ProgramSettings.Settings.ProxyUserName,
                ProxyPassword         = ProgramSettings.Settings.ProxyPassword,
                ProxyNotDefaultEnable = ProgramSettings.Settings.ProxyNotDefaultEnable,
                ProxyType             = ((byte)ProgramSettings.Settings.ProxyType).ToString(),

                AceStreamPort = ProgramSettings.Settings.AceStreamPort,
                CheckUpdate   = ProgramSettings.Settings.CheckUpdate,
                UserAgent     = ProgramSettings.Settings.UserAgent,
                DeveloperMode = ProgramSettings.Settings.DeveloperMode,

                StartPageModernStyle = ProgramSettings.Settings.StartPageModernStyle,
            };

            if (ProgramSettings.Settings.CheckUpdate)
            {
                if (UpdateController.IsUpdateAvaiable("RemoteFork"))
                {
                    var updater = UpdateController.GetUpdater("RemoteFork");
                    model.DownloadLink  = updater.GetDownloadLinkLastVersion();
                    model.LatestVersion = updater.GetLatestVersionNumber(false).Result;
                }
            }

            return(model);
        }