]> git.r.bdr.sh - rbdr/mobius/blobdiff - hotline/config.go
Fix handling of refuse PM flag
[rbdr/mobius] / hotline / config.go
index e0c20cf8f96055919c3163feaeacbbf91d5eabad..a30bbf77465c1a21dd6a9e04fb2ef5bfc0a6b45b 100644 (file)
@@ -1,21 +1,23 @@
 package hotline
 
 const (
-       defaultAgreement    = "This is an agreement.  Say you agree.\r"
-       defaultMessageBoard = "Welcome to Hotline\r"
-       defaultThreadedNews = "Categories:\n"
+       userIdleSeconds        = 300 // time in seconds before an inactive user is marked idle
+       idleCheckInterval      = 10  // time in seconds to check for idle users
+       trackerUpdateFrequency = 300 // time in seconds between tracker re-registration
 )
 
 type Config struct {
-       Name                      string   `yaml:"Name"`                      // Name used for Tracker registration
-       Description               string   `yaml:"Description"`               // Description used for Tracker registration
-       BannerID                  int      `yaml:"BannerID"`                  // Unimplemented
-       FileRoot                  string   `yaml:"FileRoot"`                  // Path to Files
-       EnableTrackerRegistration bool     `yaml:"EnableTrackerRegistration"` // Toggle Tracker Registration
-       Trackers                  []string `yaml:"Trackers"`                  // List of trackers that the server should register with
-       NewsDelimiter             string   `yaml:"NewsDelimiter"`             // String used to separate news posts
-       NewsDateFormat            string   `yaml:"NewsDateFormat"`            // Go template string to customize news date format
-       MaxDownloads              int      `yaml:"MaxDownloads"`              // Global simultaneous download limit
-       MaxDownloadsPerClient     int      `yaml:"MaxDownloadsPerClient"`     // Per client simultaneous download limit
-       MaxConnectionsPerIP       int      `yaml:"MaxConnectionsPerIP"`       // Max connections per IP
+       Name                      string   `yaml:"Name" validate:"required,max=50"`         // Name used for Tracker registration
+       Description               string   `yaml:"Description" validate:"required,max=200"` // Description used for Tracker registration
+       BannerFile                string   `yaml:"BannerFile"`                              // Path to banner jpg
+       FileRoot                  string   `yaml:"FileRoot" validate:"required"`            // Path to Files
+       EnableTrackerRegistration bool     `yaml:"EnableTrackerRegistration"`               // Toggle Tracker Registration
+       Trackers                  []string `yaml:"Trackers" validate:"dive,hostname_port"`  // List of trackers that the server should register with
+       NewsDelimiter             string   `yaml:"NewsDelimiter"`                           // String used to separate news posts
+       NewsDateFormat            string   `yaml:"NewsDateFormat"`                          // Go template string to customize news date format
+       MaxDownloads              int      `yaml:"MaxDownloads"`                            // Global simultaneous download limit
+       MaxDownloadsPerClient     int      `yaml:"MaxDownloadsPerClient"`                   // Per client simultaneous download limit
+       MaxConnectionsPerIP       int      `yaml:"MaxConnectionsPerIP"`                     // Max connections per IP
+       PreserveResourceForks     bool     `yaml:"PreserveResourceForks"`                   // Enable preservation of file info and resource forks in sidecar files
+       IgnoreFiles               []string `yaml:"IgnoreFiles"`                             // List of regular expression for filtering files from the file list
 }