init
This commit is contained in:
		
							
								
								
									
										77
									
								
								cmd/getdb/getdb.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								cmd/getdb/getdb.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,77 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"log"
 | 
			
		||||
	"os"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	_ "github.com/glebarez/go-sqlite"
 | 
			
		||||
	"github.com/jmoiron/sqlx"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var db *sqlx.DB
 | 
			
		||||
 | 
			
		||||
func InitDb() error {
 | 
			
		||||
	newdb, err := sqlx.Connect("sqlite", "./bot.db?_time_format=sqlite")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	db = newdb
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	if err := InitDb(); err != nil {
 | 
			
		||||
		log.Fatalln(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	type User struct {
 | 
			
		||||
		Id            int64     `json:"uid" db:"id"`
 | 
			
		||||
		Name          string    `json:"full_name" db:"name"`
 | 
			
		||||
		Username      string    `json:"username" db:"username"`
 | 
			
		||||
		MessageCount  int       `json:"messagesCount" db:"message_count"`
 | 
			
		||||
		Karma         int       `json:"karma" db:"karma_history"`
 | 
			
		||||
		KarmaSent     int       `json:"karmaChanged" db:"karma_sent_history"`
 | 
			
		||||
		KarmaReceived int       `json:"karmaGot" db:"karma_received_history"`
 | 
			
		||||
		Created       time.Time `db:"created"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var users []User
 | 
			
		||||
 | 
			
		||||
	data, _ := os.ReadFile("godot.users.json")
 | 
			
		||||
	err := json.Unmarshal(data, &users)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, user := range users {
 | 
			
		||||
		var dbuser User
 | 
			
		||||
		err := db.Get(&dbuser, `SELECT * FROM users WHERE id = $1`, user.Id)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			db.Exec(
 | 
			
		||||
				`INSERT INTO users (id, name, username, message_count, karma_history, karma_sent_history, karma_received_history) VALUES ($1, $2, $3, $4, $5, $6, $7)`,
 | 
			
		||||
				user.Id,
 | 
			
		||||
				user.Name,
 | 
			
		||||
				user.Username,
 | 
			
		||||
				user.MessageCount,
 | 
			
		||||
				user.Karma,
 | 
			
		||||
				user.KarmaSent,
 | 
			
		||||
				user.KarmaReceived,
 | 
			
		||||
			)
 | 
			
		||||
			db.Exec(
 | 
			
		||||
				`INSERT INTO karma (from_user, to_user, change, message) VALUES (-1, $1, $2, "historical")`,
 | 
			
		||||
				user.Id,
 | 
			
		||||
				user.Karma,
 | 
			
		||||
			)
 | 
			
		||||
		} else {
 | 
			
		||||
			if user.MessageCount > dbuser.MessageCount || user.Karma > dbuser.Karma {
 | 
			
		||||
				_, err := db.Exec(`UPDATE users SET karma_history=$2, message_count=$3, karma_sent_history=$4, karma_received_history=$5 WHERE id=$1;`, user.Id, user.Karma, user.MessageCount, user.KarmaSent, user.KarmaReceived)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					log.Println(user.Id, err)
 | 
			
		||||
				}
 | 
			
		||||
				db.Exec(`UPDATE karma SET change=$2 WHERE from_user=-1 AND to_user=$1;`, user.Id, user.Karma)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user