コード例 #1
0
        public override bool Process(HttpServer.IHttpRequest request, HttpServer.IHttpResponse response, HttpServer.Sessions.IHttpSession session)
        {
            string command = request.UriPath;

            if (command == "/settings")
            {

                StringBuilder page = new StringBuilder(Properties.Resources.settings_page);

                //-------------------- General Settings --------------------------

                if (Settings.AutoStartManuallyAddedThreads)
                {
                    page.Replace("{gs0c}", Checked);
                }
                else
                {
                    page.Replace("{gs0c}", "");
                }

                if (Settings.ThumbnailOnly)
                {
                    page.Replace("{gs1c}", Checked);
                }
                else
                {
                    page.Replace("{gs1c}", "");
                }

                if (Settings.EnableFileStats)
                {
                    page.Replace("{gs2c}", Checked);
                }
                else
                {
                    page.Replace("{gs2c}", "");
                }

                if (Settings.UseHttps)
                {
                    page.Replace("{gs3c}", Checked);
                }
                else
                {
                    page.Replace("{gs3c}", "");
                }

                if (Settings.RemoveThreadsWhenTheyEnterArchivedState)
                {
                    page.Replace("{gs4c}", Checked);
                }
                else
                {
                    page.Replace("{gs4c}", "");
                }

                if (Settings.SaveBannedFileThumbnail)
                {
                    page.Replace("{gs5c}", Checked);
                }
                else
                {
                    page.Replace("{gs5c}", "");
                }

                if (Settings.CacheAPIFilesInMemory)
                {
                    page.Replace("{gs6c}", Checked);
                }
                else
                {
                    page.Replace("{gs6c}", "");
                }

                //-------------------- Security Settings --------------------------

                if (Settings.EnableAuthentication)
                {
                    page.Replace("{ss0c}", Checked);
                }
                else
                {
                    page.Replace("{ss0c}", "");
                }

                if (Settings.AllowGuestAccess)
                {
                    page.Replace("{ss1c}", Checked);
                }
                else
                {
                    page.Replace("{ss1c}", "");
                }

                page.Replace("{bauser}", string.IsNullOrEmpty(Settings.AuthUsername) ? "" : Settings.AuthUsername);

                page.Replace("{bapass}", string.IsNullOrEmpty(Settings.AuthPassword) ? "" : Settings.AuthPassword);

                //-------------------- FFMPEG Settings --------------------------

                page.Replace("{ffpath}", Program.ffmpeg_path);

                if (Settings.ConvertGifsToWebm)
                {
                    page.Replace("{ff0c}", Checked);
                }
                else
                {
                    page.Replace("{ff0c}", "");
                }

                if (Settings.ConvertWebmToMp4)
                {
                    page.Replace("{ff1c}", Checked);
                }
                else
                {
                    page.Replace("{ff1c}", "");
                }

                if (Settings.Convert_Webmgif_To_Target)
                {
                    page.Replace("{ff2c}", Checked);
                }
                else
                {
                    page.Replace("{ff2c}", "");
                }

                if (Settings.Convert_Webmgif_Target == Settings.X_Target.GIF)
                {
                    page.Replace("{ff2s1o1c}", Selected);
                    page.Replace("{ff2s1o2c}", "");
                }
                else
                {
                    page.Replace("{ff2s1o1c}", "");
                    page.Replace("{ff2s1o2c}", Selected);
                }

                if (Settings.Convert_Webmgif_only_devices)
                {
                    page.Replace("{ff2s2o1c}", Selected);
                    page.Replace("{ff2s2o2c}", "");
                }
                else
                {
                    page.Replace("{ff2s2o1c}", "");
                    page.Replace("{ff2s2o2c}", Selected);
                }

                //-------------------- File Queue Settings --------------------------

                if (Settings.ListThumbsInQueue)
                {
                    page.Replace("{fq0c}", Checked);
                }
                else
                {
                    page.Replace("{fq0c}", "");
                }

                /*
                if (Settings.PrioritizeBumpLimit)
                {
                    page.Replace("{fq1c}", Checked);
                }
                else
                {
                    page.Replace("{fq1c}", "");
                }

                switch (Settings.FilePrioritizeMode)
                {
                    case Settings.FilePrioritizeModeEnum.BoardSpeed:
                        page.Replace("{fq2s1o1c}", "");
                        page.Replace("{fq2s1o2c}", "");
                        page.Replace("{fq2s1o3c}", Selected);
                        break;
                    case Settings.FilePrioritizeModeEnum.LargerFirst:
                        page.Replace("{fq2s1o1c}", "");
                        page.Replace("{fq2s1o2c}", Selected);
                        page.Replace("{fq2s1o3c}", "");
                        break;
                    case Settings.FilePrioritizeModeEnum.SmallerFirst:
                        page.Replace("{fq2s1o1c}", Selected);
                        page.Replace("{fq2s1o2c}", "");
                        page.Replace("{fq2s1o3c}", "");
                        break;
                    default:
                        break;
                }
                 */

                if (Settings.AutoRemoveCompleteFiles)
                {
                    page.Replace("{fq3c}", Checked);
                }
                else
                {
                    page.Replace("{fq3c}", "");
                }

                response.Status = System.Net.HttpStatusCode.OK;
                response.ContentType = "text/html";
                byte[] data = Encoding.UTF8.GetBytes(page.ToString());
                response.ContentLength = data.Length;
                response.SendHeaders();
                response.SendBody(data);

                return true;
            }

            if (command.StartsWith("/settings/"))
            {
                // -------------- General Settings ------------
                Settings.AutoStartManuallyAddedThreads = request.QueryString["gs0"].Value == "1";
                Settings.ThumbnailOnly = request.QueryString["gs1"].Value == "1";
                Settings.EnableFileStats = request.QueryString["gs2"].Value == "1";
                Settings.UseHttps = request.QueryString["gs3"].Value == "1";
                Settings.RemoveThreadsWhenTheyEnterArchivedState = request.QueryString["gs4"].Value == "1";
                Settings.SaveBannedFileThumbnail = request.QueryString["gs5"].Value == "1";
                Settings.CacheAPIFilesInMemory = request.QueryString["gs6"].Value == "1";

                if (Settings.EnableFileStats) { FileSystemStats.Init(); }

                // -------------- Security Settings ------------
                Settings.EnableAuthentication = request.QueryString["ss0"].Value == "1";
                Settings.AllowGuestAccess = request.QueryString["ss1"].Value == "1";
                Settings.AuthUsername = request.QueryString["ba_user"].Value;
                Settings.AuthPassword = request.QueryString["ba_pass"].Value;

                // -------------- FFMPEG Settings ------------

                Settings.ConvertGifsToWebm = request.QueryString["ff0"].Value == "1";

                Settings.ConvertWebmToMp4 = request.QueryString["ff1"].Value == "1";
                Settings.Convert_Webmgif_To_Target = request.QueryString["ff2"].Value == "1";

                if (request.QueryString["ff2s1"].Value == "gif")
                {
                    Settings.Convert_Webmgif_Target = Settings.X_Target.GIF;
                }
                else
                {
                    Settings.Convert_Webmgif_Target = Settings.X_Target.MP4;
                }

                Settings.Convert_Webmgif_only_devices = request.QueryString["ff2s2"].Value == "ff2s2o1";

                // -------------- File Queue Settings ------------

                Settings.ListThumbsInQueue = request.QueryString["fq0"].Value == "1";
                /*
                Settings.PrioritizeBumpLimit = request.QueryString["fq1"].Value == "1";

                switch (request.QueryString["fq2s1"].Value)
                {
                    case "fq2s1o1":
                        Settings.FilePrioritizeMode = Settings.FilePrioritizeModeEnum.SmallerFirst;
                        break;
                    case "fq2s1o2":
                        Settings.FilePrioritizeMode = Settings.FilePrioritizeModeEnum.LargerFirst;
                        break;
                    case "fq2s1o3":
                        Settings.FilePrioritizeMode = Settings.FilePrioritizeModeEnum.BoardSpeed;
                        break;
                    default:
                        Settings.FilePrioritizeMode = Settings.FilePrioritizeModeEnum.SmallerFirst;
                        break;
                }*/

                Settings.AutoRemoveCompleteFiles = request.QueryString["fq3"].Value == "1";

                Settings.Save();

                if (!Settings.EnableAuthentication)
                {
                    session.Clear();
                    response.Cookies.Clear();
                }

                response.Redirect("/settings");
                return true;
            }

            return false;
        }