summaryrefslogtreecommitdiff
path: root/rddb
diff options
context:
space:
mode:
Diffstat (limited to 'rddb')
-rw-r--r--rddb/rddb.go368
1 files changed, 184 insertions, 184 deletions
diff --git a/rddb/rddb.go b/rddb/rddb.go
index e7f1d3a..4fbb303 100644
--- a/rddb/rddb.go
+++ b/rddb/rddb.go
@@ -221,7 +221,7 @@ type updateCutCartTitleRequest struct {
response chan<- updateCutCartTitleResult
}
-type DB struct {
+type db struct {
conf *config
dbh *sql.DB
passwordCache map[string]string
@@ -255,16 +255,16 @@ type DB struct {
done chan bool
}
-func (db *DB) init() (err error) {
+func (d *db) init() (err error) {
godrv.Register("SET CHARACTER SET utf8;")
- dsn := fmt.Sprintf("tcp:%s:3306*%s/%s/%s", db.conf.dbHost, db.conf.dbDb, db.conf.dbUser, db.conf.dbPasswd)
- if db.dbh, err = sql.Open("mymysql", dsn); err != nil {
+ dsn := fmt.Sprintf("tcp:%s:3306*%s/%s/%s", d.conf.dbHost, d.conf.dbDb, d.conf.dbUser, d.conf.dbPasswd)
+ if d.dbh, err = sql.Open("mymysql", dsn); err != nil {
return
}
var dbver int
- err = db.dbh.QueryRow("select DB from VERSION;").Scan(&dbver)
+ err = d.dbh.QueryRow("select DB from VERSION;").Scan(&dbver)
if err != nil {
err = fmt.Errorf("fetching version: %s", err)
return
@@ -274,73 +274,73 @@ func (db *DB) init() (err error) {
return
}
- if db.getPasswordStmt, err = db.dbh.Prepare("select PASSWORD from USERS where LOGIN_NAME = ?;"); err != nil {
+ if d.getPasswordStmt, err = d.dbh.Prepare("select PASSWORD from USERS where LOGIN_NAME = ?;"); err != nil {
return
}
- if db.getGroupOfCartStmt, err = db.dbh.Prepare("select NAME,DEFAULT_LOW_CART,DEFAULT_HIGH_CART from GROUPS where DEFAULT_LOW_CART <= ? and DEFAULT_HIGH_CART >= ?;"); err != nil {
+ if d.getGroupOfCartStmt, err = d.dbh.Prepare("select NAME,DEFAULT_LOW_CART,DEFAULT_HIGH_CART from GROUPS where DEFAULT_LOW_CART <= ? and DEFAULT_HIGH_CART >= ?;"); err != nil {
return
}
- if db.getShowInfoStmt, err = db.dbh.Prepare("select CART.TITLE,CART.MACROS,DROPBOXES.GROUP_NAME,DROPBOXES.NORMALIZATION_LEVEL,DROPBOXES.AUTOTRIM_LEVEL,GROUPS.DEFAULT_LOW_CART,GROUPS.DEFAULT_HIGH_CART from CART, DROPBOXES, GROUPS where CART.NUMBER = DROPBOXES.TO_CART and GROUPS.NAME = DROPBOXES.GROUP_NAME and CART.NUMBER = ?;"); err != nil {
+ if d.getShowInfoStmt, err = d.dbh.Prepare("select CART.TITLE,CART.MACROS,DROPBOXES.GROUP_NAME,DROPBOXES.NORMALIZATION_LEVEL,DROPBOXES.AUTOTRIM_LEVEL,GROUPS.DEFAULT_LOW_CART,GROUPS.DEFAULT_HIGH_CART from CART, DROPBOXES, GROUPS where CART.NUMBER = DROPBOXES.TO_CART and GROUPS.NAME = DROPBOXES.GROUP_NAME and CART.NUMBER = ?;"); err != nil {
return
}
- if db.checkMusicGroupStmt, err = db.dbh.Prepare("select count(*) from DROPBOXES where GROUP_NAME = ? and SET_USER_DEFINED like \"M;%\";"); err != nil {
+ if d.checkMusicGroupStmt, err = d.dbh.Prepare("select count(*) from DROPBOXES where GROUP_NAME = ? and SET_USER_DEFINED like \"M;%\";"); err != nil {
return
}
- if db.getMusicInfoStmt, err = db.dbh.Prepare("select NORMALIZATION_LEVEL,AUTOTRIM_LEVEL from DROPBOXES where DROPBOXES.GROUP_NAME = ?;"); err != nil {
+ if d.getMusicInfoStmt, err = d.dbh.Prepare("select NORMALIZATION_LEVEL,AUTOTRIM_LEVEL from DROPBOXES where DROPBOXES.GROUP_NAME = ?;"); err != nil {
return
}
- if db.getShowListStmt, err = db.dbh.Prepare("select CART.TITLE,CART.MACROS,DROPBOXES.TO_CART,DROPBOXES.SET_USER_DEFINED,GROUPS.DEFAULT_LOW_CART,GROUPS.DEFAULT_HIGH_CART from CART, USER_PERMS, DROPBOXES, GROUPS where CART.NUMBER = DROPBOXES.TO_CART and USER_PERMS.USER_NAME = ? and DROPBOXES.GROUP_NAME = USER_PERMS.GROUP_NAME and DROPBOXES.GROUP_NAME = GROUPS.NAME and DROPBOXES.STATION_NAME = ?;"); err != nil {
+ if d.getShowListStmt, err = d.dbh.Prepare("select CART.TITLE,CART.MACROS,DROPBOXES.TO_CART,DROPBOXES.SET_USER_DEFINED,GROUPS.DEFAULT_LOW_CART,GROUPS.DEFAULT_HIGH_CART from CART, USER_PERMS, DROPBOXES, GROUPS where CART.NUMBER = DROPBOXES.TO_CART and USER_PERMS.USER_NAME = ? and DROPBOXES.GROUP_NAME = USER_PERMS.GROUP_NAME and DROPBOXES.GROUP_NAME = GROUPS.NAME and DROPBOXES.STATION_NAME = ?;"); err != nil {
return
}
- if db.getCartInfoStmt, err = db.dbh.Prepare("select TITLE from CART where TYPE=1 and NUMBER = ?"); err != nil {
+ if d.getCartInfoStmt, err = d.dbh.Prepare("select TITLE from CART where TYPE=1 and NUMBER = ?"); err != nil {
return
}
- if db.getCutInfoStmt, err = db.dbh.Prepare("select CUT_NAME,EVERGREEN,DESCRIPTION,LENGTH,ORIGIN_DATETIME,PLAY_COUNTER,LAST_PLAY_DATETIME from CUTS where CART_NUMBER = ?"); err != nil {
+ if d.getCutInfoStmt, err = d.dbh.Prepare("select CUT_NAME,EVERGREEN,DESCRIPTION,LENGTH,ORIGIN_DATETIME,PLAY_COUNTER,LAST_PLAY_DATETIME from CUTS where CART_NUMBER = ?"); err != nil {
return
}
- if db.getJingleListStmt, err = db.dbh.Prepare("select GROUPS.NAME,DROPBOXES.SET_USER_DEFINED,GROUPS.DEFAULT_LOW_CART,GROUPS.DEFAULT_HIGH_CART,GROUPS.DESCRIPTION from USER_PERMS, DROPBOXES, GROUPS where USER_PERMS.USER_NAME = ? and DROPBOXES.GROUP_NAME = USER_PERMS.GROUP_NAME and DROPBOXES.GROUP_NAME = GROUPS.NAME and DROPBOXES.STATION_NAME = ?;"); err != nil {
+ if d.getJingleListStmt, err = d.dbh.Prepare("select GROUPS.NAME,DROPBOXES.SET_USER_DEFINED,GROUPS.DEFAULT_LOW_CART,GROUPS.DEFAULT_HIGH_CART,GROUPS.DESCRIPTION from USER_PERMS, DROPBOXES, GROUPS where USER_PERMS.USER_NAME = ? and DROPBOXES.GROUP_NAME = USER_PERMS.GROUP_NAME and DROPBOXES.GROUP_NAME = GROUPS.NAME and DROPBOXES.STATION_NAME = ?;"); err != nil {
return
}
- if db.getPoolListStmt, err = db.dbh.Prepare("select GROUPS.NAME,DROPBOXES.SET_USER_DEFINED,GROUPS.DESCRIPTION from USER_PERMS, DROPBOXES, GROUPS where USER_PERMS.USER_NAME = ? and DROPBOXES.GROUP_NAME = USER_PERMS.GROUP_NAME and DROPBOXES.GROUP_NAME = GROUPS.NAME and DROPBOXES.STATION_NAME = ?;"); err != nil {
+ if d.getPoolListStmt, err = d.dbh.Prepare("select GROUPS.NAME,DROPBOXES.SET_USER_DEFINED,GROUPS.DESCRIPTION from USER_PERMS, DROPBOXES, GROUPS where USER_PERMS.USER_NAME = ? and DROPBOXES.GROUP_NAME = USER_PERMS.GROUP_NAME and DROPBOXES.GROUP_NAME = GROUPS.NAME and DROPBOXES.STATION_NAME = ?;"); err != nil {
return
}
- if db.getPoolCartsStmt, err = db.dbh.Prepare("select CART.NUMBER,CART.ARTIST,CART.TITLE,CART.ALBUM,CUTS.CUT_NAME,CUTS.EVERGREEN,CUTS.DESCRIPTION,CUTS.LENGTH,CUTS.ORIGIN_DATETIME,CUTS.PLAY_COUNTER,CUTS.LAST_PLAY_DATETIME from CUTS,CART where CUTS.CART_NUMBER = CART.NUMBER and CART.GROUP_NAME = ?;"); err != nil {
+ if d.getPoolCartsStmt, err = d.dbh.Prepare("select CART.NUMBER,CART.ARTIST,CART.TITLE,CART.ALBUM,CUTS.CUT_NAME,CUTS.EVERGREEN,CUTS.DESCRIPTION,CUTS.LENGTH,CUTS.ORIGIN_DATETIME,CUTS.PLAY_COUNTER,CUTS.LAST_PLAY_DATETIME from CUTS,CART where CUTS.CART_NUMBER = CART.NUMBER and CART.GROUP_NAME = ?;"); err != nil {
return
}
- if db.getGroupDefaultTitleStmt, err = db.dbh.Prepare("select DEFAULT_TITLE from GROUPS where NAME = ?;"); err != nil {
+ if d.getGroupDefaultTitleStmt, err = d.dbh.Prepare("select DEFAULT_TITLE from GROUPS where NAME = ?;"); err != nil {
return
}
- if db.updateCutTitleStmt, err = db.dbh.Prepare("update CUTS set DESCRIPTION = ? where CUT_NAME = ?;"); err != nil {
+ if d.updateCutTitleStmt, err = d.dbh.Prepare("update CUTS set DESCRIPTION = ? where CUT_NAME = ?;"); err != nil {
return
}
- if db.updateCartTitleMaybeStmt, err = db.dbh.Prepare("update CART set TITLE = ? where NUMBER = ? and TITLE = ?;"); err != nil {
+ if d.updateCartTitleMaybeStmt, err = d.dbh.Prepare("update CART set TITLE = ? where NUMBER = ? and TITLE = ?;"); err != nil {
return
}
return
}
-func (db *DB) getPassword(username string, cached bool) (result getPasswordResult) {
+func (d *db) getPassword(username string, cached bool) (result getPasswordResult) {
if cached {
- result.password = db.passwordCache[username]
+ result.password = d.passwordCache[username]
}
if result.password == "" {
- if result.err = db.getPasswordStmt.QueryRow(username).Scan(&result.password); result.err != nil {
+ if result.err = d.getPasswordStmt.QueryRow(username).Scan(&result.password); result.err != nil {
if result.err == sql.ErrNoRows {
result.err = fmt.Errorf("user '%s' not known by rivendell", username)
}
return
}
- db.passwordCache[username] = result.password
+ d.passwordCache[username] = result.password
}
return
}
-func (db *DB) getGroupOfCart(cart uint) (result getGroupOfCartResult) {
+func (d *db) getGroupOfCart(cart uint) (result getGroupOfCartResult) {
var rows *sql.Rows
- if rows, result.err = db.getGroupOfCartStmt.Query(cart, cart); result.err != nil {
+ if rows, result.err = d.getGroupOfCartStmt.Query(cart, cart); result.err != nil {
return
}
defer rows.Close()
@@ -368,7 +368,7 @@ func (db *DB) getGroupOfCart(cart uint) (result getGroupOfCartResult) {
return
}
-func (db *DB) getLogTableName(log string) (logtable string, err error) {
+func (d *db) getLogTableName(log string) (logtable string, err error) {
logtable = strings.Replace(log, " ", "_", -1) + "_LOG"
if !mysqlTableNameRe.MatchString(logtable) {
return "", fmt.Errorf("the log table name contains illegal charecters: %s", logtable)
@@ -376,14 +376,14 @@ func (db *DB) getLogTableName(log string) (logtable string, err error) {
return
}
-func (db *DB) getShowCarts(log string, lowCart, highCart int) (carts []uint, err error) {
+func (d *db) getShowCarts(log string, lowCart, highCart int) (carts []uint, err error) {
var logtable string
- if logtable, err = db.getLogTableName(log); err != nil {
+ if logtable, err = d.getLogTableName(log); err != nil {
return
}
q := fmt.Sprintf("select CART_NUMBER from %s where CART_NUMBER >= %d and CART_NUMBER <= %d order by COUNT;", logtable, lowCart, highCart)
var rows *sql.Rows
- if rows, err = db.dbh.Query(q); err != nil {
+ if rows, err = d.dbh.Query(q); err != nil {
return
}
defer rows.Close()
@@ -398,10 +398,10 @@ func (db *DB) getShowCarts(log string, lowCart, highCart int) (carts []uint, err
return
}
-func (db *DB) getShowInfo(showid uint) (result getShowInfoResult) {
+func (d *db) getShowInfo(showid uint) (result getShowInfoResult) {
var macros string
var lowCart, highCart int
- result.err = db.getShowInfoStmt.QueryRow(showid).Scan(&result.title, &macros, &result.group, &result.normLvl, &result.trimLvl, &lowCart, &highCart)
+ result.err = d.getShowInfoStmt.QueryRow(showid).Scan(&result.title, &macros, &result.group, &result.normLvl, &result.trimLvl, &lowCart, &highCart)
if result.err != nil {
if result.err == sql.ErrNoRows {
result.err = fmt.Errorf("show '%d' not found", showid)
@@ -410,13 +410,13 @@ func (db *DB) getShowInfo(showid uint) (result getShowInfoResult) {
}
result.normLvl /= 100
result.trimLvl /= 100
- result.carts, result.err = db.getShowCarts(showMacroRe.FindStringSubmatch(macros)[1], lowCart, highCart)
+ result.carts, result.err = d.getShowCarts(showMacroRe.FindStringSubmatch(macros)[1], lowCart, highCart)
return
}
-func (db *DB) checkMusicGroup(group string) (result checkMusicGroupResult) {
+func (d *db) checkMusicGroup(group string) (result checkMusicGroupResult) {
var cnt int
- if result.err = db.checkMusicGroupStmt.QueryRow(group).Scan(&cnt); result.err != nil {
+ if result.err = d.checkMusicGroupStmt.QueryRow(group).Scan(&cnt); result.err != nil {
if result.err == sql.ErrNoRows {
result.err = nil
result.ismusic = false
@@ -427,8 +427,8 @@ func (db *DB) checkMusicGroup(group string) (result checkMusicGroupResult) {
return
}
-func (db *DB) getMusicInfo(group string) (result getMusicInfoResult) {
- result.err = db.getMusicInfoStmt.QueryRow(group).Scan(&result.normLvl, &result.trimLvl)
+func (d *db) getMusicInfo(group string) (result getMusicInfoResult) {
+ result.err = d.getMusicInfoStmt.QueryRow(group).Scan(&result.normLvl, &result.trimLvl)
if result.err != nil {
if result.err == sql.ErrNoRows {
result.err = fmt.Errorf("music pool '%s' not found", group)
@@ -438,9 +438,9 @@ func (db *DB) getMusicInfo(group string) (result getMusicInfoResult) {
return
}
-func (db *DB) getShowList(username string) (result getShowListResult) {
+func (d *db) getShowList(username string) (result getShowListResult) {
var rows *sql.Rows
- if rows, result.err = db.getShowListStmt.Query(username, dropboxPseudoStation); result.err != nil {
+ if rows, result.err = d.getShowListStmt.Query(username, dropboxPseudoStation); result.err != nil {
return
}
defer rows.Close()
@@ -463,9 +463,9 @@ func (db *DB) getShowList(username string) (result getShowListResult) {
return
}
-func (db *DB) getCutInfo(cart uint) (cuts []CutListEntry, err error) {
+func (d *db) getCutInfo(cart uint) (cuts []CutListEntry, err error) {
var rows *sql.Rows
- if rows, err = db.getCutInfoStmt.Query(cart); err != nil {
+ if rows, err = d.getCutInfoStmt.Query(cart); err != nil {
return
}
defer rows.Close()
@@ -503,11 +503,11 @@ func (db *DB) getCutInfo(cart uint) (cuts []CutListEntry, err error) {
return
}
-func (db *DB) getCartInfo(cart uint) (c CartListEntry, err error) {
+func (d *db) getCartInfo(cart uint) (c CartListEntry, err error) {
c = CartListEntry{}
c.Number = cart
c.Exists = true
- err = db.getCartInfoStmt.QueryRow(cart).Scan(&c.Title)
+ err = d.getCartInfoStmt.QueryRow(cart).Scan(&c.Title)
if err != nil {
if err == sql.ErrNoRows {
err = nil
@@ -515,21 +515,21 @@ func (db *DB) getCartInfo(cart uint) (c CartListEntry, err error) {
}
return
}
- if c.Cuts, err = db.getCutInfo(cart); err != nil {
+ if c.Cuts, err = d.getCutInfo(cart); err != nil {
return
}
return
}
-func (db *DB) getShowCartList(show ShowListEntry) (result getShowCartListResult) {
+func (d *db) getShowCartList(show ShowListEntry) (result getShowCartListResult) {
var carts []uint
- if carts, result.err = db.getShowCarts(show.log, show.lowCart, show.highCart); result.err != nil {
+ if carts, result.err = d.getShowCarts(show.log, show.lowCart, show.highCart); result.err != nil {
return
}
for _, cart := range carts {
var c CartListEntry
- if c, result.err = db.getCartInfo(cart); result.err != nil {
+ if c, result.err = d.getCartInfo(cart); result.err != nil {
return
}
result.carts = append(result.carts, c)
@@ -537,9 +537,9 @@ func (db *DB) getShowCartList(show ShowListEntry) (result getShowCartListResult)
return
}
-func (db *DB) getJingleList(username string) (result getJingleListResult) {
+func (d *db) getJingleList(username string) (result getJingleListResult) {
var rows *sql.Rows
- if rows, result.err = db.getJingleListStmt.Query(username, dropboxPseudoStation); result.err != nil {
+ if rows, result.err = d.getJingleListStmt.Query(username, dropboxPseudoStation); result.err != nil {
return
}
defer rows.Close()
@@ -561,19 +561,19 @@ func (db *DB) getJingleList(username string) (result getJingleListResult) {
return
}
-func (db *DB) getJingleCutList(jingle JingleListEntry) (result getJingleCutListResult) {
- if result.active, result.err = db.getCartInfo(uint(jingle.ActiveCart)); result.err != nil {
+func (d *db) getJingleCutList(jingle JingleListEntry) (result getJingleCutListResult) {
+ if result.active, result.err = d.getCartInfo(uint(jingle.ActiveCart)); result.err != nil {
return
}
- if result.inactive, result.err = db.getCartInfo(uint(jingle.InactiveCart)); result.err != nil {
+ if result.inactive, result.err = d.getCartInfo(uint(jingle.InactiveCart)); result.err != nil {
return
}
return
}
-func (db *DB) getPoolList(username string) (result getPoolListResult) {
+func (d *db) getPoolList(username string) (result getPoolListResult) {
var rows *sql.Rows
- if rows, result.err = db.getPoolListStmt.Query(username, dropboxPseudoStation); result.err != nil {
+ if rows, result.err = d.getPoolListStmt.Query(username, dropboxPseudoStation); result.err != nil {
return
}
defer rows.Close()
@@ -595,9 +595,9 @@ func (db *DB) getPoolList(username string) (result getPoolListResult) {
return
}
-func (db *DB) getPoolCartList(pool PoolListEntry) (result getPoolCartListResult) {
+func (d *db) getPoolCartList(pool PoolListEntry) (result getPoolCartListResult) {
var rows *sql.Rows
- if rows, result.err = db.getPoolCartsStmt.Query(pool.Group); result.err != nil {
+ if rows, result.err = d.getPoolCartsStmt.Query(pool.Group); result.err != nil {
return
}
defer rows.Close()
@@ -643,13 +643,13 @@ func (db *DB) getPoolCartList(pool PoolListEntry) (result getPoolCartListResult)
return
}
-func (db *DB) updateCutCartTitle(cart, cut uint, groupName, sourceFile string) (result updateCutCartTitleResult) {
+func (d *db) updateCutCartTitle(cart, cut uint, groupName, sourceFile string) (result updateCutCartTitleResult) {
path, filename := filepath.Split(sourceFile)
ext := strings.TrimLeft(filepath.Ext(filename), ".")
filename = strings.TrimRight(strings.TrimSuffix(filename, ext), ".")
if groupName == "" {
- res := db.getGroupOfCart(cart)
+ res := d.getGroupOfCart(cart)
if res.err != nil {
result.err = res.err
return
@@ -658,7 +658,7 @@ func (db *DB) updateCutCartTitle(cart, cut uint, groupName, sourceFile string) (
}
groupDefaultTitle := ""
- result.err = db.getGroupDefaultTitleStmt.QueryRow(groupName).Scan(&groupDefaultTitle)
+ result.err = d.getGroupDefaultTitleStmt.QueryRow(groupName).Scan(&groupDefaultTitle)
if result.err != nil {
return
}
@@ -666,45 +666,45 @@ func (db *DB) updateCutCartTitle(cart, cut uint, groupName, sourceFile string) (
r := strings.NewReplacer("%p", path, "%f", filename, "%e", ext)
title := r.Replace(groupDefaultTitle)
- if _, result.err = db.updateCutTitleStmt.Exec(title, fmt.Sprintf("%06d_%03d", cart, cut)); result.err != nil {
+ if _, result.err = d.updateCutTitleStmt.Exec(title, fmt.Sprintf("%06d_%03d", cart, cut)); result.err != nil {
return
}
- if _, result.err = db.updateCartTitleMaybeStmt.Exec(title, cart, defaultCartTitle); result.err != nil {
+ if _, result.err = d.updateCartTitleMaybeStmt.Exec(title, cart, defaultCartTitle); result.err != nil {
return
}
return
}
-func (db *DB) dispatchRequests() {
- defer func() { db.done <- true }()
+func (d *db) dispatchRequests() {
+ defer func() { d.done <- true }()
for {
select {
- case <-db.quit:
+ case <-d.quit:
return
- case req := <-db.getPasswordChan:
- req.response <- db.getPassword(req.username, req.cached)
- case req := <-db.getGroupOfCartChan:
- req.response <- db.getGroupOfCart(req.cart)
- case req := <-db.getShowInfoChan:
- req.response <- db.getShowInfo(req.showid)
- case req := <-db.checkMusicGroupChan:
- req.response <- db.checkMusicGroup(req.group)
- case req := <-db.getMusicInfoChan:
- req.response <- db.getMusicInfo(req.group)
- case req := <-db.getShowListChan:
- req.response <- db.getShowList(req.username)
- case req := <-db.getShowCartListChan:
- req.response <- db.getShowCartList(req.show)
- case req := <-db.getJingleListChan:
- req.response <- db.getJingleList(req.username)
- case req := <-db.getJingleCutListChan:
- req.response <- db.getJingleCutList(req.jingle)
- case req := <-db.getPoolListChan:
- req.response <- db.getPoolList(req.username)
- case req := <-db.getPoolCartListChan:
- req.response <- db.getPoolCartList(req.pool)
- case req := <-db.updateCutCartTitleChan:
- req.response <- db.updateCutCartTitle(req.cart, req.cut, req.groupName, req.sourceFile)
+ case req := <-d.getPasswordChan:
+ req.response <- d.getPassword(req.username, req.cached)
+ case req := <-d.getGroupOfCartChan:
+ req.response <- d.getGroupOfCart(req.cart)
+ case req := <-d.getShowInfoChan:
+ req.response <- d.getShowInfo(req.showid)
+ case req := <-d.checkMusicGroupChan:
+ req.response <- d.checkMusicGroup(req.group)
+ case req := <-d.getMusicInfoChan:
+ req.response <- d.getMusicInfo(req.group)
+ case req := <-d.getShowListChan:
+ req.response <- d.getShowList(req.username)
+ case req := <-d.getShowCartListChan:
+ req.response <- d.getShowCartList(req.show)
+ case req := <-d.getJingleListChan:
+ req.response <- d.getJingleList(req.username)
+ case req := <-d.getJingleCutListChan:
+ req.response <- d.getJingleCutList(req.jingle)
+ case req := <-d.getPoolListChan:
+ req.response <- d.getPoolList(req.username)
+ case req := <-d.getPoolCartListChan:
+ req.response <- d.getPoolCartList(req.pool)
+ case req := <-d.updateCutCartTitleChan:
+ req.response <- d.updateCutCartTitle(req.cart, req.cut, req.groupName, req.sourceFile)
}
}
}
@@ -712,7 +712,7 @@ func (db *DB) dispatchRequests() {
// *********************************************************
// Public Interface
-type DBChan struct {
+type DB struct {
getPasswordChan chan<- getPasswordRequest
getGroupOfCartChan chan<- getGroupOfCartRequest
getShowInfoChan chan<- getShowInfoRequest
@@ -727,13 +727,13 @@ type DBChan struct {
updateCutCartTitleChan chan<- updateCutCartTitleRequest
}
-func (db *DBChan) GetPassword(username string, cached bool) (string, error) {
+func (d *DB) GetPassword(username string, cached bool) (string, error) {
resCh := make(chan getPasswordResult)
req := getPasswordRequest{}
req.username = username
req.cached = cached
req.response = resCh
- db.getPasswordChan <- req
+ d.getPasswordChan <- req
res := <-resCh
if res.err != nil {
@@ -742,7 +742,7 @@ func (db *DBChan) GetPassword(username string, cached bool) (string, error) {
return res.password, nil
}
-func (db *DBChan) CheckPassword(username, password string) (bool, error) {
+func (d *DB) CheckPassword(username, password string) (bool, error) {
cached := true
for {
@@ -751,7 +751,7 @@ func (db *DBChan) CheckPassword(username, password string) (bool, error) {
req.username = username
req.cached = cached
req.response = resCh
- db.getPasswordChan <- req
+ d.getPasswordChan <- req
res := <-resCh
if res.err != nil {
@@ -769,12 +769,12 @@ func (db *DBChan) CheckPassword(username, password string) (bool, error) {
return false, nil
}
-func (db *DBChan) GetGroupOfCart(cart uint) (string, error) {
+func (d *DB) GetGroupOfCart(cart uint) (string, error) {
resCh := make(chan getGroupOfCartResult)
req := getGroupOfCartRequest{}
req.cart = cart
req.response = resCh
- db.getGroupOfCartChan <- req
+ d.getGroupOfCartChan <- req
res := <-resCh
if res.err != nil {
@@ -783,12 +783,12 @@ func (db *DBChan) GetGroupOfCart(cart uint) (string, error) {
return res.group, nil
}
-func (db *DBChan) GetShowInfo(showid uint) (string, int, int, []uint, error) {
+func (d *DB) GetShowInfo(showid uint) (string, int, int, []uint, error) {
resCh := make(chan getShowInfoResult)
req := getShowInfoRequest{}
req.showid = showid
req.response = resCh
- db.getShowInfoChan <- req
+ d.getShowInfoChan <- req
res := <-resCh
if res.err != nil {
@@ -797,12 +797,12 @@ func (db *DBChan) GetShowInfo(showid uint) (string, int, int, []uint, error) {
return res.group, res.normLvl, res.trimLvl, res.carts, nil
}
-func (db *DBChan) CheckMusicGroup(groupname string) (bool, error) {
+func (d *DB) CheckMusicGroup(groupname string) (bool, error) {
resCh := make(chan checkMusicGroupResult)
req := checkMusicGroupRequest{}
req.group = groupname
req.response = resCh
- db.checkMusicGroupChan <- req
+ d.checkMusicGroupChan <- req
res := <-resCh
if res.err != nil {
@@ -811,12 +811,12 @@ func (db *DBChan) CheckMusicGroup(groupname string) (bool, error) {
return res.ismusic, nil
}
-func (db *DBChan) GetMusicInfo(groupname string) (int, int, error) {
+func (d *DB) GetMusicInfo(groupname string) (int, int, error) {
resCh := make(chan getMusicInfoResult)
req := getMusicInfoRequest{}
req.group = groupname
req.response = resCh
- db.getMusicInfoChan <- req
+ d.getMusicInfoChan <- req
res := <-resCh
if res.err != nil {
@@ -825,12 +825,12 @@ func (db *DBChan) GetMusicInfo(groupname string) (int, int, error) {
return res.normLvl, res.trimLvl, nil
}
-func (db *DBChan) GetShowList(username string) (ShowList, error) {
+func (d *DB) GetShowList(username string) (ShowList, error) {
resCh := make(chan getShowListResult)
req := getShowListRequest{}
req.username = username
req.response = resCh
- db.getShowListChan <- req
+ d.getShowListChan <- req
res := <-resCh
if res.err != nil {
@@ -839,12 +839,12 @@ func (db *DBChan) GetShowList(username string) (ShowList, error) {
return res.shows, nil
}
-func (db *DBChan) GetShowCartList(show ShowListEntry) ([]CartListEntry, error) {
+func (d *DB) GetShowCartList(show ShowListEntry) ([]CartListEntry, error) {
resCh := make(chan getShowCartListResult)
req := getShowCartListRequest{}
req.show = show
req.response = resCh
- db.getShowCartListChan <- req
+ d.getShowCartListChan <- req
res := <-resCh
if res.err != nil {
@@ -853,12 +853,12 @@ func (db *DBChan) GetShowCartList(show ShowListEntry) ([]CartListEntry, error) {
return res.carts, nil
}
-func (db *DBChan) GetJingleList(username string) (JingleList, error) {
+func (d *DB) GetJingleList(username string) (JingleList, error) {
resCh := make(chan getJingleListResult)
req := getJingleListRequest{}
req.username = username
req.response = resCh
- db.getJingleListChan <- req
+ d.getJingleListChan <- req
res := <-resCh
if res.err != nil {
@@ -867,23 +867,23 @@ func (db *DBChan) GetJingleList(username string) (JingleList, error) {
return res.jingles, nil
}
-func (db *DBChan) GetJingleCutList(jingle JingleListEntry) (CartListEntry, CartListEntry, error) {
+func (d *DB) GetJingleCutList(jingle JingleListEntry) (CartListEntry, CartListEntry, error) {
resCh := make(chan getJingleCutListResult)
req := getJingleCutListRequest{}
req.jingle = jingle
req.response = resCh
- db.getJingleCutListChan <- req
+ d.getJingleCutListChan <- req
res := <-resCh
return res.active, res.inactive, res.err
}
-func (db *DBChan) GetPoolList(username string) (PoolList, error) {
+func (d *DB) GetPoolList(username string) (PoolList, error) {
resCh := make(chan getPoolListResult)
req := getPoolListRequest{}
req.username = username
req.response = resCh
- db.getPoolListChan <- req
+ d.getPoolListChan <- req
res := <-resCh
if res.err != nil {
@@ -892,12 +892,12 @@ func (db *DBChan) GetPoolList(username string) (PoolList, error) {
return res.pools, nil
}
-func (db *DBChan) GetPoolCartList(pool PoolListEntry) (map[uint]CartListEntry, error) {
+func (d *DB) GetPoolCartList(pool PoolListEntry) (map[uint]CartListEntry, error) {
resCh := make(chan getPoolCartListResult)
req := getPoolCartListRequest{}
req.pool = pool
req.response = resCh
- db.getPoolCartListChan <- req
+ d.getPoolCartListChan <- req
res := <-resCh
if res.err != nil {
@@ -906,7 +906,7 @@ func (db *DBChan) GetPoolCartList(pool PoolListEntry) (map[uint]CartListEntry, e
return res.carts, nil
}
-func (db *DBChan) UpdateCutCartTitle(cart, cut uint, groupName, sourceFile string) error {
+func (d *DB) UpdateCutCartTitle(cart, cut uint, groupName, sourceFile string) error {
resCh := make(chan updateCutCartTitleResult)
req := updateCutCartTitleRequest{}
req.cart = cart
@@ -914,108 +914,108 @@ func (db *DBChan) UpdateCutCartTitle(cart, cut uint, groupName, sourceFile strin
req.groupName = groupName
req.sourceFile = sourceFile
req.response = resCh
- db.updateCutCartTitleChan <- req
+ d.updateCutCartTitleChan <- req
res := <-resCh
return res.err
}
-func (db *DB) GetInterface() *DBChan {
- ch := &DBChan{}
- ch.getPasswordChan = db.getPasswordChan
- ch.getGroupOfCartChan = db.getGroupOfCartChan
- ch.getShowInfoChan = db.getShowInfoChan
- ch.checkMusicGroupChan = db.checkMusicGroupChan
- ch.getMusicInfoChan = db.getMusicInfoChan
- ch.getShowListChan = db.getShowListChan
- ch.getShowCartListChan = db.getShowCartListChan
- ch.getJingleListChan = db.getJingleListChan
- ch.getJingleCutListChan = db.getJingleCutListChan
- ch.getPoolListChan = db.getPoolListChan
- ch.getPoolCartListChan = db.getPoolCartListChan
- ch.updateCutCartTitleChan = db.updateCutCartTitleChan
+func (d *db) GetInterface() *DB {
+ ch := &DB{}
+ ch.getPasswordChan = d.getPasswordChan
+ ch.getGroupOfCartChan = d.getGroupOfCartChan
+ ch.getShowInfoChan = d.getShowInfoChan
+ ch.checkMusicGroupChan = d.checkMusicGroupChan
+ ch.getMusicInfoChan = d.getMusicInfoChan
+ ch.getShowListChan = d.getShowListChan
+ ch.getShowCartListChan = d.getShowCartListChan
+ ch.getJingleListChan = d.getJingleListChan
+ ch.getJingleCutListChan = d.getJingleCutListChan
+ ch.getPoolListChan = d.getPoolListChan
+ ch.getPoolCartListChan = d.getPoolCartListChan
+ ch.updateCutCartTitleChan = d.updateCutCartTitleChan
return ch
}
-func (db *DB) Cleanup() {
- db.quit <- true
- <-db.done
- close(db.quit)
- close(db.done)
- close(db.getPasswordChan)
- if db.dbh != nil {
- db.dbh.Close()
+func (d *db) Cleanup() {
+ d.quit <- true
+ <-d.done
+ close(d.quit)
+ close(d.done)
+ close(d.getPasswordChan)
+ if d.dbh != nil {
+ d.dbh.Close()
}
- if db.getPasswordStmt != nil {
- db.getPasswordStmt.Close()
+ if d.getPasswordStmt != nil {
+ d.getPasswordStmt.Close()
}
- if db.getGroupOfCartStmt != nil {
- db.getGroupOfCartStmt.Close()
+ if d.getGroupOfCartStmt != nil {
+ d.getGroupOfCartStmt.Close()
}
- if db.getShowInfoStmt != nil {
- db.getShowInfoStmt.Close()
+ if d.getShowInfoStmt != nil {
+ d.getShowInfoStmt.Close()
}
- if db.checkMusicGroupStmt != nil {
- db.checkMusicGroupStmt.Close()
+ if d.checkMusicGroupStmt != nil {
+ d.checkMusicGroupStmt.Close()
}
- if db.getMusicInfoStmt != nil {
- db.getMusicInfoStmt.Close()
+ if d.getMusicInfoStmt != nil {
+ d.getMusicInfoStmt.Close()
}
- if db.getShowListStmt != nil {
- db.getShowListStmt.Close()
+ if d.getShowListStmt != nil {
+ d.getShowListStmt.Close()
}
- if db.getCartInfoStmt != nil {
- db.getCartInfoStmt.Close()
+ if d.getCartInfoStmt != nil {
+ d.getCartInfoStmt.Close()
}
- if db.getCutInfoStmt != nil {
- db.getCutInfoStmt.Close()
+ if d.getCutInfoStmt != nil {
+ d.getCutInfoStmt.Close()
}
- if db.getJingleListStmt != nil {
- db.getJingleListStmt.Close()
+ if d.getJingleListStmt != nil {
+ d.getJingleListStmt.Close()
}
- if db.getPoolListStmt != nil {
- db.getPoolListStmt.Close()
+ if d.getPoolListStmt != nil {
+ d.getPoolListStmt.Close()
}
- if db.getPoolCartsStmt != nil {
- db.getPoolCartsStmt.Close()
+ if d.getPoolCartsStmt != nil {
+ d.getPoolCartsStmt.Close()
}
- if db.getGroupDefaultTitleStmt != nil {
- db.getGroupDefaultTitleStmt.Close()
+ if d.getGroupDefaultTitleStmt != nil {
+ d.getGroupDefaultTitleStmt.Close()
}
- if db.updateCutTitleStmt != nil {
- db.updateCutTitleStmt.Close()
+ if d.updateCutTitleStmt != nil {
+ d.updateCutTitleStmt.Close()
}
- if db.updateCartTitleMaybeStmt != nil {
- db.updateCartTitleMaybeStmt.Close()
+ if d.updateCartTitleMaybeStmt != nil {
+ d.updateCartTitleMaybeStmt.Close()
}
}
-func NewDB(configfile string) (db *DB, err error) {
- db = new(DB)
- if db.conf, err = newConfig(configfile); err != nil {
+func NewDB(configfile string) (d *db, err error) {
+ d = new(db)
+ if d.conf, err = newConfig(configfile); err != nil {
return
}
- db.quit = make(chan bool)
- db.done = make(chan bool)
- db.passwordCache = make(map[string]string)
- db.getPasswordChan = make(chan getPasswordRequest, 10)
- db.getGroupOfCartChan = make(chan getGroupOfCartRequest, 10)
- db.getShowInfoChan = make(chan getShowInfoRequest, 10)
- db.checkMusicGroupChan = make(chan checkMusicGroupRequest, 10)
- db.getMusicInfoChan = make(chan getMusicInfoRequest, 10)
- db.getShowListChan = make(chan getShowListRequest, 10)
- db.getShowCartListChan = make(chan getShowCartListRequest, 10)
- db.getJingleListChan = make(chan getJingleListRequest, 10)
- db.getJingleCutListChan = make(chan getJingleCutListRequest, 10)
- db.getPoolListChan = make(chan getPoolListRequest, 10)
- db.getPoolCartListChan = make(chan getPoolCartListRequest, 10)
- db.updateCutCartTitleChan = make(chan updateCutCartTitleRequest, 10)
+ d.quit = make(chan bool)
+ d.done = make(chan bool)
+ d.passwordCache = make(map[string]string)
+ d.getPasswordChan = make(chan getPasswordRequest, 10)
+ d.getGroupOfCartChan = make(chan getGroupOfCartRequest, 10)
+ d.getShowInfoChan = make(chan getShowInfoRequest, 10)
+ d.checkMusicGroupChan = make(chan checkMusicGroupRequest, 10)
+ d.getMusicInfoChan = make(chan getMusicInfoRequest, 10)
+ d.getShowListChan = make(chan getShowListRequest, 10)
+ d.getShowCartListChan = make(chan getShowCartListRequest, 10)
+ d.getJingleListChan = make(chan getJingleListRequest, 10)
+ d.getJingleCutListChan = make(chan getJingleCutListRequest, 10)
+ d.getPoolListChan = make(chan getPoolListRequest, 10)
+ d.getPoolCartListChan = make(chan getPoolCartListRequest, 10)
+ d.updateCutCartTitleChan = make(chan updateCutCartTitleRequest, 10)
- if err = db.init(); err != nil {
+ if err = d.init(); err != nil {
return
}
- go db.dispatchRequests()
+ go d.dispatchRequests()
return
}