Compare commits
3 Commits
main
...
0c811eb404
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0c811eb404 | ||
|
|
e74a398e1e | ||
|
|
4d1892f54b |
21
main.go
21
main.go
@@ -31,6 +31,9 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("%v", err)
|
log.Fatalf("%v", err)
|
||||||
}
|
}
|
||||||
|
defer func() {
|
||||||
|
os.RemoveAll(workd)
|
||||||
|
}()
|
||||||
|
|
||||||
{
|
{
|
||||||
if err := cp(path.Join(data, jellyDB), path.Join(workd, jellyDB)); err != nil {
|
if err := cp(path.Join(data, jellyDB), path.Join(workd, jellyDB)); err != nil {
|
||||||
@@ -65,6 +68,8 @@ func main() {
|
|||||||
if n, err := SelectOne[int](jellyfinDB, `SELECT COUNT(*) FROM Users WHERE Username = $1`, toU); err != nil {
|
if n, err := SelectOne[int](jellyfinDB, `SELECT COUNT(*) FROM Users WHERE Username = $1`, toU); err != nil {
|
||||||
log.Fatalf("%v", err)
|
log.Fatalf("%v", err)
|
||||||
} else if n != 1 {
|
} else if n != 1 {
|
||||||
|
log.Println("creating user", toU, "from", fromU)
|
||||||
|
|
||||||
nextID, err := SelectOne[int](libraryDB, `SELECT COALESCE(MAX(userId), 0)+1 FROM UserDatas`)
|
nextID, err := SelectOne[int](libraryDB, `SELECT COALESCE(MAX(userId), 0)+1 FROM UserDatas`)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("failed to get max userid ever: %v", err)
|
log.Fatalf("failed to get max userid ever: %v", err)
|
||||||
@@ -79,6 +84,8 @@ func main() {
|
|||||||
} else if n != 1 {
|
} else if n != 1 {
|
||||||
log.Fatalf("still no username=%q after insert", toU)
|
log.Fatalf("still no username=%q after insert", toU)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
log.Println("user", toU, "already exists")
|
||||||
}
|
}
|
||||||
|
|
||||||
toUUID, err := SelectOne[string](jellyfinDB, `SELECT Id FROM Users WHERE Username = $1`, toU)
|
toUUID, err := SelectOne[string](jellyfinDB, `SELECT Id FROM Users WHERE Username = $1`, toU)
|
||||||
@@ -206,7 +213,7 @@ func CloneForColumn[T any](db *sql.DB, table, column string, from, to T, fixed m
|
|||||||
|
|
||||||
values := []any{}
|
values := []any{}
|
||||||
for _ = range uuidGenColumns {
|
for _ = range uuidGenColumns {
|
||||||
values = append(values, fmt.Sprintf("'%s'", strings.ToUpper(uuid.New().String())))
|
values = append(values, fmt.Sprintf("'%s'", guid()))
|
||||||
}
|
}
|
||||||
for _, arg := range args {
|
for _, arg := range args {
|
||||||
values = append(values, *(arg.(*any)))
|
values = append(values, *(arg.(*any)))
|
||||||
@@ -243,7 +250,7 @@ func CloneForColumn[T any](db *sql.DB, table, column string, from, to T, fixed m
|
|||||||
func() string {
|
func() string {
|
||||||
uuids := make([]string, len(uuidGenColumns))
|
uuids := make([]string, len(uuidGenColumns))
|
||||||
for i := range uuids {
|
for i := range uuids {
|
||||||
uuids[i] = fmt.Sprintf("'%s'", strings.ToUpper(uuid.New().String()))
|
uuids[i] = fmt.Sprintf("'%s'", guid())
|
||||||
}
|
}
|
||||||
s := strings.Join(uuids, ", ")
|
s := strings.Join(uuids, ", ")
|
||||||
if len(uuids) > 0 {
|
if len(uuids) > 0 {
|
||||||
@@ -399,6 +406,12 @@ func Select[T any](db *sql.DB, q string, args ...any) ([]T, error) {
|
|||||||
return results, rows.Err()
|
return results, rows.Err()
|
||||||
}
|
}
|
||||||
|
|
||||||
guid() string {
|
func guid() string {
|
||||||
|
s := []byte(uuid.New().String())
|
||||||
|
for i := range s {
|
||||||
|
if ('A' <= s[i] && s[i] <= 'Z') || ('a' <= s[i] && s[i] <= 'z') {
|
||||||
|
s[i] = '0' + byte(int(s[i])%10)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return strings.ToUpper(string(s))
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user