<commit_before>// Copyright 2017 by caixw, All rights reserved.
// Use of this source code is governed by a MIT
// license that can be found in the LICENSE file.

// Package server 与路由有关的服务管理。
//
// NOTE: 测试内容涉及到 80 端口，部分系统可能需要 sudo go test 才能正确执行。
package server

import (
	"context"
	"errors"
	"net/http"
	"strings"
	"time"

	"github.com/issue9/handlers"
	"github.com/issue9/logs"
	"github.com/issue9/mux"
)

// Server 服务器控制
type Server struct {
	conf *Config
	mux  *mux.ServeMux

	// 除了 mux 所依赖的 http.Server 实例之外，
	// 还有诸如 80 端口跳转等产生的 http.Server 实例。
	// 记录这些 server，方便重启等操作。
	servers []*http.Server
}

// New 声明一个新的 Server 实例
func New(conf *Config) (*Server, error) {
	if conf == nil {
		return nil, errors.New("参数 conf 不能为空")
	}

	if err := conf.Sanitize(); err != nil {
		return nil, err
	}

	return &Server{<commit_msg>更新文档错误<commit_after>// Copyright 2017 by caixw, All rights reserved.
// Use of this source code is governed by a MIT
// license that can be found in the LICENSE file.

// Package server 与路由有关的服务管理。
//
// NOTE: 测试内容涉及到 80 端口，部分系统可能需要 sudo go test 才能正确执行。
package server

import (
	"context"
	"errors"
	"net/http"
	"strings"
	"time"

	"github.com/issue9/handlers"
	"github.com/issue9/logs"
	"github.com/issue9/mux"
)

// Server 服务器控制
type Server struct {
	conf *Config
	mux  *mux.ServeMux

	// 除了 mux 所依赖的 http.Server 实例之外，
	// 还有诸如 80 端口跳转等产生的 http.Server 实例。
	// 记录这些 server，方便关闭服务等操作。
	servers []*http.Server
}

// New 声明一个新的 Server 实例
func New(conf *Config) (*Server, error) {
	if conf == nil {
		return nil, errors.New("参数 conf 不能为空")
	}

	if err := conf.Sanitize(); err != nil {
		return nil, err
	}

	return &Server{
{'fraction_non_alphanumeric': 0.12871888281724347, 'fraction_numerical': 0.013357619914996965, 'mean_word_length': 3.2805194805194806, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2611589', 'n_tokens_mistral': 768, 'n_tokens_neox': 782, 'n_words': 197}