Users are now stored in the database rather than a configuration file.
+The server now has a built-in list of stopwords, so only additions need
+be mentioned in the configuration file.
+
** Web Interface
The web interface now uses cookies to remember user identity, and allows
# The channel to control
channel pcm
-# Stopwords (i.e. ignored words) for the track search facility.
-stopword 01 02 03 04 05 06 07 08 09 10
-stopword 1 2 3 4 5 6 7 8 9
-stopword 11 12 13 14 15 16 17 18 19 20
-stopword 21 22 23 24 25 26 27 28 29 30
-stopword the a an and to too in on of we i am as im for is
-
# include debconf configuration
include /etc/disorder/conf.debconf
.IP
If \fBstopword\fR is used without arguments then the list of stopwords is
cleared.
+.IP
+There is a default set of stopwords built in, but this option can be used to
+augment or replace that list.
.TP
.B tracklength \fIPATTERN\fR \fIMODULE\fR
Specifies the module used to calculate the length of files matching
mixer /dev/mixer
# The channel to control
channel pcm
-
-# URL of the web interface
-url http://jukebox.anjou.terraraq.org.uk/
-
-# Stopwords (i.e. ignored words) for the track search facility.
-stopword 01 02 03 04 05 06 07 08 09 10
-stopword 1 2 3 4 5 6 7 8 9
-stopword 11 12 13 14 15 16 17 18 19 20
-stopword 21 22 23 24 25 26 27 28 29 30
-stopword the a an and to too in on of we i am as im for is
return ret;
}
+static const char *const default_stopwords[] = {
+ "stopword",
+
+ "01",
+ "02",
+ "03",
+ "04",
+ "05",
+ "06",
+ "07",
+ "08",
+ "09",
+ "1",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "2",
+ "20",
+ "21",
+ "22",
+ "23",
+ "24",
+ "25",
+ "26",
+ "27",
+ "28",
+ "29",
+ "3",
+ "30",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "a",
+ "am",
+ "an",
+ "and",
+ "as",
+ "for",
+ "i",
+ "im",
+ "in",
+ "is",
+ "of",
+ "on",
+ "the",
+ "to",
+ "too",
+ "we",
+};
+#define NDEFAULT_STOPWORDS (sizeof default_stopwords / sizeof *default_stopwords)
+
/** @brief Make a new default configuration */
static struct config *config_default(void) {
struct config *c = xmalloc(sizeof *c);
const char *logname;
struct passwd *pw;
+ struct config_state cs;
+ cs.path = "<internal>";
+ cs.line = 0;
+ cs.config = c;
/* Strings had better be xstrdup'd as they will get freed at some point. */
c->gap = 2;
c->history = 60;
c->dbversion = 2;
c->cookie_login_lifetime = 86400;
c->cookie_key_lifetime = 86400 * 7;
+ if(config_set(&cs, (int)NDEFAULT_STOPWORDS, (char **)default_stopwords))
+ exit(1);
return c;
}
check_search_results([u"fi\u0300rst"], first)
check_search_results([u"THI\u0301RD"], third)
check_search_results([u"thI\u0301rd"], third)
+ # stopwords shouldn't show up
+ check_search_results(["01"], [])
if failures > 0:
sys.exit(1)