public override void Handle(HttpListenerRequest request, HttpListenerResponse response) { try { var result = new List <Item>(); /* * var drives = DriveInfo.GetDrives(); * * foreach (var drive in drives) * { * try * { * if (drive.IsReady) * { * string mainText = $"{drive.Name} ({Tools.FSize(drive.AvailableFreeSpace)} свободно из {Tools.FSize(drive.TotalSize)})"; * string subText = $"<br>Метка диска: {drive.VolumeLabel}<br>Тип носителя: {drive.DriveType}"; * * result.Add(new Item * { * Name = mainText + subText, * Link = CreateUrl( * request, * TreePath, * new NameValueCollection { [null] = new Uri(drive.Name).AbsoluteUri+"/" } * ), * Type = ItemType.DIRECTORY * }); * * Console.WriteLine($"Drive: {mainText}{subText}"); * } * } * catch (Exception e) * { * Console.WriteLine(e.ToString()); * } * } */ foreach (var plugin in PluginManager.Instance.GetPlugins()) { result.Add( new Item { Name = plugin.Value.Name, Link = PluginRequestHandler.CreatePluginUrl(request, plugin.Key), ImageLink = plugin.Value.ImageLink, Type = ItemType.DIRECTORY } ); } WriteResponse(response, ResponseSerializer.ToM3U(result.ToArray())); } catch (Exception e) { Console.WriteLine(e); } }
public override void Handle(HttpListenerRequest request, HttpListenerResponse response) { var pluginKey = ParsePluginKey(request); if (!string.IsNullOrEmpty(pluginKey)) { var plugin = PluginManager.Instance.GetPlugin(pluginKey); if (plugin != null) { Console.WriteLine("Execute: " + plugin.Name); var pluginResponse = plugin.Instance.GetList(new PluginContext(pluginKey, request, new NameValueCollection(request.QueryString))); if (pluginResponse != null) { WriteResponse(response, ResponseSerializer.ToXml(pluginResponse)); } else { WriteResponse(response, HttpStatusCode.NotFound, $"Plugin Playlist is null. Plugin: {pluginKey}"); } } else { Console.WriteLine("Plugin Not Found. Plugin:" + pluginKey); WriteResponse(response, HttpStatusCode.NotFound, $"Plugin Not Found. Plugin: {pluginKey}"); } } else { Console.WriteLine("Plugin is not defined in request. Plugin: " + pluginKey); WriteResponse(response, HttpStatusCode.NotFound, $"Plugin is not defined in request. Plugin: {pluginKey}"); } }