Store username/discriminator/bot status in puppet table

This commit is contained in:
Tulir Asokan
2023-04-26 21:18:45 +03:00
parent f6f6ed29ec
commit 0e5faa5510
5 changed files with 61 additions and 30 deletions

View File

@@ -11,7 +11,7 @@ import (
const (
puppetSelect = "SELECT id, name, name_set, avatar, avatar_url, avatar_set," +
" contact_info_set, custom_mxid, access_token, next_batch" +
" contact_info_set, username, discriminator, is_bot, custom_mxid, access_token, next_batch" +
" FROM puppet "
)
@@ -66,14 +66,19 @@ type Puppet struct {
db *Database
log log.Logger
ID string
Name string
NameSet bool
Avatar string
AvatarURL id.ContentURI
AvatarSet bool
ID string
Name string
NameSet bool
Avatar string
AvatarURL id.ContentURI
AvatarSet bool
ContactInfoSet bool
Username string
Discriminator string
IsBot bool
CustomMXID id.UserID
AccessToken string
NextBatch string
@@ -84,7 +89,7 @@ func (p *Puppet) Scan(row dbutil.Scannable) *Puppet {
var customMXID, accessToken, nextBatch sql.NullString
err := row.Scan(&p.ID, &p.Name, &p.NameSet, &p.Avatar, &avatarURL, &p.AvatarSet, &p.ContactInfoSet,
&customMXID, &accessToken, &nextBatch)
&p.Username, &p.Discriminator, &p.IsBot, &customMXID, &accessToken, &nextBatch)
if err != nil {
if err != sql.ErrNoRows {
@@ -105,11 +110,11 @@ func (p *Puppet) Scan(row dbutil.Scannable) *Puppet {
func (p *Puppet) Insert() {
query := `
INSERT INTO puppet (id, name, name_set, avatar, avatar_url, avatar_set, contact_info_set, custom_mxid, access_token, next_batch)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)
INSERT INTO puppet (id, name, name_set, avatar, avatar_url, avatar_set, contact_info_set, username, discriminator, is_bot, custom_mxid, access_token, next_batch)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13)
`
_, err := p.db.Exec(query, p.ID, p.Name, p.NameSet, p.Avatar, p.AvatarURL.String(), p.AvatarSet, p.ContactInfoSet,
strPtr(string(p.CustomMXID)), strPtr(p.AccessToken), strPtr(p.NextBatch))
p.Username, p.Discriminator, p.IsBot, strPtr(p.CustomMXID), strPtr(p.AccessToken), strPtr(p.NextBatch))
if err != nil {
p.log.Warnfln("Failed to insert %s: %v", p.ID, err)
@@ -119,12 +124,12 @@ func (p *Puppet) Insert() {
func (p *Puppet) Update() {
query := `
UPDATE puppet SET name=$1, name_set=$2, avatar=$3, avatar_url=$4, avatar_set=$5,
contact_info_set=$6, custom_mxid=$7, access_token=$8, next_batch=$9
WHERE id=$10
UPDATE puppet SET name=$1, name_set=$2, avatar=$3, avatar_url=$4, avatar_set=$5, contact_info_set=$6,
username=$7, discriminator=$8, is_bot=$9, custom_mxid=$10, access_token=$11, next_batch=$12
WHERE id=$13
`
_, err := p.db.Exec(query, p.Name, p.NameSet, p.Avatar, p.AvatarURL.String(), p.AvatarSet,
p.ContactInfoSet, strPtr(string(p.CustomMXID)), strPtr(p.AccessToken), strPtr(p.NextBatch),
_, err := p.db.Exec(query, p.Name, p.NameSet, p.Avatar, p.AvatarURL.String(), p.AvatarSet, p.ContactInfoSet,
p.Username, p.Discriminator, p.IsBot, strPtr(p.CustomMXID), strPtr(p.AccessToken), strPtr(p.NextBatch),
p.ID)
if err != nil {