Pins to supergroups, managed by admins
This commit is contained in:
@@ -4,11 +4,8 @@
|
||||
package getters
|
||||
|
||||
import (
|
||||
// stdlib
|
||||
"log"
|
||||
"time"
|
||||
// local
|
||||
"lab.pztrn.name/fat0troll/i2_bot/lib/dbmapping"
|
||||
"time"
|
||||
)
|
||||
|
||||
// CreateBroadcastMessage creates broadcast message item in database
|
||||
@@ -21,12 +18,12 @@ func (g *Getters) CreateBroadcastMessage(playerRaw *dbmapping.Player, messageBod
|
||||
messageRaw.CreatedAt = time.Now().UTC()
|
||||
_, err := c.Db.NamedExec("INSERT INTO broadcasts VALUES(NULL, :text, :broadcast_type, :status, :author_id, :created_at)", &messageRaw)
|
||||
if err != nil {
|
||||
log.Printf(err.Error())
|
||||
c.Log.Error(err.Error())
|
||||
return messageRaw, false
|
||||
}
|
||||
err2 := c.Db.Get(&messageRaw, c.Db.Rebind("SELECT * FROM broadcasts WHERE author_id=? AND text=?"), messageRaw.AuthorID, messageRaw.Text)
|
||||
if err2 != nil {
|
||||
log.Println(err2)
|
||||
c.Log.Error(err2)
|
||||
return messageRaw, false
|
||||
}
|
||||
|
||||
@@ -38,7 +35,7 @@ func (g *Getters) GetBroadcastMessageByID(messageID int) (dbmapping.Broadcast, b
|
||||
messageRaw := dbmapping.Broadcast{}
|
||||
err := c.Db.Get(&messageRaw, c.Db.Rebind("SELECT * FROM broadcasts WHERE id=?"), messageID)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return messageRaw, false
|
||||
}
|
||||
|
||||
@@ -50,18 +47,18 @@ func (g *Getters) UpdateBroadcastMessageStatus(messageID int, messageStatus stri
|
||||
messageRaw := dbmapping.Broadcast{}
|
||||
err := c.Db.Get(&messageRaw, c.Db.Rebind("SELECT * FROM broadcasts WHERE id=?"), messageID)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err.Error())
|
||||
return messageRaw, false
|
||||
}
|
||||
messageRaw.Status = messageStatus
|
||||
_, err = c.Db.NamedExec("UPDATE broadcasts SET status=:status WHERE id=:id", &messageRaw)
|
||||
if err != nil {
|
||||
log.Printf(err.Error())
|
||||
c.Log.Error(err.Error())
|
||||
return messageRaw, false
|
||||
}
|
||||
err = c.Db.Get(&messageRaw, c.Db.Rebind("SELECT * FROM broadcasts WHERE author_id=? AND text=?"), messageRaw.AuthorID, messageRaw.Text)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err.Error())
|
||||
return messageRaw, false
|
||||
}
|
||||
|
||||
|
@@ -4,13 +4,9 @@
|
||||
package getters
|
||||
|
||||
import (
|
||||
// stdlib
|
||||
"log"
|
||||
"time"
|
||||
// 3rd-party
|
||||
"github.com/go-telegram-bot-api/telegram-bot-api"
|
||||
// local
|
||||
"lab.pztrn.name/fat0troll/i2_bot/lib/dbmapping"
|
||||
"time"
|
||||
)
|
||||
|
||||
// GetChatByID returns dbmapping.Chat instance with given ID.
|
||||
@@ -18,7 +14,7 @@ func (g *Getters) GetChatByID(chatID int64) (dbmapping.Chat, bool) {
|
||||
chatRaw := dbmapping.Chat{}
|
||||
err := c.Db.Get(&chatRaw, c.Db.Rebind("SELECT * FROM chats WHERE id=?"), chatID)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return chatRaw, false
|
||||
}
|
||||
|
||||
@@ -29,11 +25,11 @@ func (g *Getters) GetChatByID(chatID int64) (dbmapping.Chat, bool) {
|
||||
// In case, when there is no chat with such ID, new chat will be created.
|
||||
func (g *Getters) GetOrCreateChat(telegramUpdate *tgbotapi.Update) (dbmapping.Chat, bool) {
|
||||
chatRaw := dbmapping.Chat{}
|
||||
log.Println("TGID: ", telegramUpdate.Message.Chat.ID)
|
||||
c.Log.Debug("TGID: ", telegramUpdate.Message.Chat.ID)
|
||||
err := c.Db.Get(&chatRaw, c.Db.Rebind("SELECT * FROM chats WHERE telegram_id=?"), telegramUpdate.Message.Chat.ID)
|
||||
if err != nil {
|
||||
log.Printf("Chat stream not found in database.")
|
||||
log.Printf(err.Error())
|
||||
c.Log.Error("Chat stream not found in database.")
|
||||
c.Log.Error(err.Error())
|
||||
|
||||
nameOfChat := ""
|
||||
if telegramUpdate.Message.Chat.FirstName != "" {
|
||||
@@ -56,16 +52,16 @@ func (g *Getters) GetOrCreateChat(telegramUpdate *tgbotapi.Update) (dbmapping.Ch
|
||||
chatRaw.CreatedAt = time.Now().UTC()
|
||||
_, err = c.Db.NamedExec("INSERT INTO chats VALUES(NULL, :name, :chat_type, :telegram_id, :created_at)", &chatRaw)
|
||||
if err != nil {
|
||||
log.Printf(err.Error())
|
||||
c.Log.Error(err.Error())
|
||||
return chatRaw, false
|
||||
}
|
||||
err2 := c.Db.Get(&chatRaw, c.Db.Rebind("SELECT * FROM chats WHERE telegram_id=? AND chat_type=?"), chatRaw.TelegramID, chatRaw.ChatType)
|
||||
if err2 != nil {
|
||||
log.Println(err2)
|
||||
c.Log.Error(err2)
|
||||
return chatRaw, false
|
||||
}
|
||||
} else {
|
||||
log.Printf("Chat stream found in database.")
|
||||
c.Log.Info("Chat stream found in database.")
|
||||
}
|
||||
|
||||
return chatRaw, true
|
||||
@@ -77,7 +73,7 @@ func (g *Getters) GetAllPrivateChats() ([]dbmapping.Chat, bool) {
|
||||
|
||||
err := c.Db.Select(&privateChats, "SELECT * FROM chats WHERE chat_type='private'")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return privateChats, false
|
||||
}
|
||||
|
||||
@@ -90,7 +86,7 @@ func (g *Getters) GetAllGroupChats() ([]dbmapping.Chat, bool) {
|
||||
|
||||
err := c.Db.Select(&groupChats, "SELECT * FROM chats WHERE chat_type IN ('group', 'supergroup')")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return groupChats, false
|
||||
}
|
||||
|
||||
@@ -104,7 +100,7 @@ func (g *Getters) GetAllGroupChatsWithSquads() ([]dbmapping.SquadChat, bool) {
|
||||
|
||||
err := c.Db.Select(&groupChats, "SELECT * FROM chats WHERE chat_type IN ('group', 'supergroup')")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return chatsSquads, false
|
||||
}
|
||||
|
||||
@@ -113,7 +109,7 @@ func (g *Getters) GetAllGroupChatsWithSquads() ([]dbmapping.SquadChat, bool) {
|
||||
squad := dbmapping.Squad{}
|
||||
err = c.Db.Select(&squad, c.Db.Rebind("SELECT * FROM squads WHERE chat_id="), groupChats[i].ID)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Debug(err)
|
||||
chatSquad.IsSquad = false
|
||||
} else {
|
||||
chatSquad.IsSquad = true
|
||||
@@ -129,11 +125,11 @@ func (g *Getters) GetAllGroupChatsWithSquads() ([]dbmapping.SquadChat, bool) {
|
||||
}
|
||||
|
||||
// UpdateChatTitle updates chat title in database
|
||||
func (g *Getters) UpdateChatTitle(chatRaw dbmapping.Chat, newTitle string) (dbmapping.Chat, bool) {
|
||||
func (g *Getters) UpdateChatTitle(chatRaw *dbmapping.Chat, newTitle string) (*dbmapping.Chat, bool) {
|
||||
chatRaw.Name = newTitle
|
||||
_, err := c.Db.NamedExec("UPDATE chats SET name=:name WHERE id=:id", &chatRaw)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return chatRaw, false
|
||||
}
|
||||
|
||||
|
@@ -4,9 +4,6 @@
|
||||
package getters
|
||||
|
||||
import (
|
||||
// stdlib
|
||||
"log"
|
||||
// local
|
||||
"lab.pztrn.name/fat0troll/i2_bot/lib/appcontext"
|
||||
"lab.pztrn.name/fat0troll/i2_bot/lib/getters/gettersinterface"
|
||||
)
|
||||
@@ -27,5 +24,5 @@ func New(ac *appcontext.Context) {
|
||||
|
||||
// Init is a initialization function for package
|
||||
func (g *Getters) Init() {
|
||||
log.Printf("Initializing getters...")
|
||||
c.Log.Info("Initializing getters...")
|
||||
}
|
||||
|
@@ -4,9 +4,7 @@
|
||||
package gettersinterface
|
||||
|
||||
import (
|
||||
// 3rd-party
|
||||
"github.com/go-telegram-bot-api/telegram-bot-api"
|
||||
// local
|
||||
"lab.pztrn.name/fat0troll/i2_bot/lib/dbmapping"
|
||||
)
|
||||
|
||||
@@ -21,7 +19,7 @@ type GettersInterface interface {
|
||||
GetAllPrivateChats() ([]dbmapping.Chat, bool)
|
||||
GetAllGroupChats() ([]dbmapping.Chat, bool)
|
||||
GetAllGroupChatsWithSquads() ([]dbmapping.SquadChat, bool)
|
||||
UpdateChatTitle(chatRaw dbmapping.Chat, newTitle string) (dbmapping.Chat, bool)
|
||||
UpdateChatTitle(chatRaw *dbmapping.Chat, newTitle string) (*dbmapping.Chat, bool)
|
||||
GetOrCreatePlayer(telegramID int) (dbmapping.Player, bool)
|
||||
GetPlayerByID(playerID int) (dbmapping.Player, bool)
|
||||
PlayerBetterThan(playerRaw *dbmapping.Player, powerLevel string) bool
|
||||
|
@@ -4,11 +4,8 @@
|
||||
package getters
|
||||
|
||||
import (
|
||||
// stdlib
|
||||
"log"
|
||||
"time"
|
||||
// local
|
||||
"lab.pztrn.name/fat0troll/i2_bot/lib/dbmapping"
|
||||
"time"
|
||||
)
|
||||
|
||||
// GetPlayerByID returns dbmapping.Player instance with given ID.
|
||||
@@ -16,7 +13,7 @@ func (g *Getters) GetPlayerByID(playerID int) (dbmapping.Player, bool) {
|
||||
playerRaw := dbmapping.Player{}
|
||||
err := c.Db.Get(&playerRaw, c.Db.Rebind("SELECT * FROM players WHERE id=?"), playerID)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err.Error())
|
||||
return playerRaw, false
|
||||
}
|
||||
|
||||
@@ -29,8 +26,8 @@ func (g *Getters) GetOrCreatePlayer(telegramID int) (dbmapping.Player, bool) {
|
||||
playerRaw := dbmapping.Player{}
|
||||
err := c.Db.Get(&playerRaw, c.Db.Rebind("SELECT * FROM players WHERE telegram_id=?"), telegramID)
|
||||
if err != nil {
|
||||
log.Printf("Message user not found in database.")
|
||||
log.Printf(err.Error())
|
||||
c.Log.Error("Message user not found in database.")
|
||||
c.Log.Error(err.Error())
|
||||
|
||||
// Create "nobody" user
|
||||
playerRaw.TelegramID = telegramID
|
||||
@@ -40,11 +37,11 @@ func (g *Getters) GetOrCreatePlayer(telegramID int) (dbmapping.Player, bool) {
|
||||
playerRaw.UpdatedAt = time.Now().UTC()
|
||||
_, err = c.Db.NamedExec("INSERT INTO players VALUES(NULL, :telegram_id, :league_id, :status, :created_at, :updated_at)", &playerRaw)
|
||||
if err != nil {
|
||||
log.Printf(err.Error())
|
||||
c.Log.Error(err.Error())
|
||||
return playerRaw, false
|
||||
}
|
||||
} else {
|
||||
log.Printf("Message user found in database.")
|
||||
c.Log.Debug("Message user found in database.")
|
||||
}
|
||||
|
||||
return playerRaw, true
|
||||
|
@@ -4,11 +4,8 @@
|
||||
package getters
|
||||
|
||||
import (
|
||||
// stdlib
|
||||
"log"
|
||||
"strconv"
|
||||
// local
|
||||
"lab.pztrn.name/fat0troll/i2_bot/lib/dbmapping"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// Internal functions
|
||||
@@ -18,25 +15,25 @@ func (g *Getters) formFullPokememes(pokememes []dbmapping.Pokememe) ([]dbmapping
|
||||
elements := []dbmapping.Element{}
|
||||
err := c.Db.Select(&elements, "SELECT * FROM elements")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return pokememesArray, false
|
||||
}
|
||||
locations := []dbmapping.Location{}
|
||||
err = c.Db.Select(&locations, "SELECT * FROM locations")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return pokememesArray, false
|
||||
}
|
||||
pokememesElements := []dbmapping.PokememeElement{}
|
||||
err = c.Db.Select(&pokememesElements, "SELECT * FROM pokememes_elements")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return pokememesArray, false
|
||||
}
|
||||
pokememesLocations := []dbmapping.PokememeLocation{}
|
||||
err = c.Db.Select(&pokememesLocations, "SELECT * FROM pokememes_locations")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return pokememesArray, false
|
||||
}
|
||||
|
||||
@@ -83,7 +80,7 @@ func (g *Getters) GetPokememes() ([]dbmapping.PokememeFull, bool) {
|
||||
pokememes := []dbmapping.Pokememe{}
|
||||
err := c.Db.Select(&pokememes, "SELECT * FROM pokememes ORDER BY grade asc, name asc")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return pokememesArray, false
|
||||
}
|
||||
|
||||
@@ -111,7 +108,7 @@ func (g *Getters) GetBestPokememes(playerID int) ([]dbmapping.PokememeFull, bool
|
||||
pokememes := []dbmapping.Pokememe{}
|
||||
err := c.Db.Select(&pokememes, c.Db.Rebind("SELECT p.* FROM pokememes p, pokememes_elements pe, elements e WHERE e.league_id = ? AND p.grade = ? AND pe.element_id = e.id AND pe.pokememe_id = p.id ORDER BY p.attack DESC"), playerRaw.LeagueID, profileRaw.LevelID+1)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return pokememesArray, false
|
||||
}
|
||||
|
||||
@@ -125,31 +122,31 @@ func (g *Getters) GetPokememeByID(pokememeID string) (dbmapping.PokememeFull, bo
|
||||
pokememe := dbmapping.Pokememe{}
|
||||
err := c.Db.Get(&pokememe, c.Db.Rebind("SELECT * FROM pokememes WHERE id=?"), pokememeID)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return fullPokememe, false
|
||||
}
|
||||
elements := []dbmapping.Element{}
|
||||
err = c.Db.Select(&elements, "SELECT * FROM elements")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return fullPokememe, false
|
||||
}
|
||||
locations := []dbmapping.Location{}
|
||||
err = c.Db.Select(&locations, "SELECT * FROM locations")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return fullPokememe, false
|
||||
}
|
||||
pokememesElements := []dbmapping.PokememeElement{}
|
||||
err = c.Db.Select(&pokememesElements, "SELECT * FROM pokememes_elements WHERE pokememe_id='"+strconv.Itoa(pokememe.ID)+"'")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return fullPokememe, false
|
||||
}
|
||||
pokememesLocations := []dbmapping.PokememeLocation{}
|
||||
err = c.Db.Select(&pokememesLocations, "SELECT * FROM pokememes_locations WHERE pokememe_id='"+strconv.Itoa(pokememe.ID)+"'")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return fullPokememe, false
|
||||
}
|
||||
|
||||
|
@@ -3,11 +3,6 @@
|
||||
|
||||
package getters
|
||||
|
||||
import (
|
||||
// stdlib
|
||||
"log"
|
||||
)
|
||||
|
||||
// PossibilityRequiredPokeballs returns possibility of catching pokememe
|
||||
// It's based on location, grade of pokememe and current level of player
|
||||
func (g *Getters) PossibilityRequiredPokeballs(location int, grade int, lvl int) (float64, int) {
|
||||
@@ -69,7 +64,7 @@ func (g *Getters) PossibilityRequiredPokeballs(location int, grade int, lvl int)
|
||||
|
||||
err := c.Db.Get(&pokememesCount, c.Db.Rebind("SELECT count(*) FROM pokememes p, pokememes_locations pl WHERE p.grade = ? AND pl.location_id = ? AND pl.pokememe_id = p.id;"), grade, location)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
}
|
||||
|
||||
if basePossibility != 0 && pokememesCount != 0 {
|
||||
|
@@ -4,9 +4,6 @@
|
||||
package getters
|
||||
|
||||
import (
|
||||
// stdlib
|
||||
"log"
|
||||
// local
|
||||
"lab.pztrn.name/fat0troll/i2_bot/lib/dbmapping"
|
||||
)
|
||||
|
||||
@@ -15,7 +12,7 @@ func (g *Getters) GetProfile(playerID int) (dbmapping.Profile, bool) {
|
||||
profileRaw := dbmapping.Profile{}
|
||||
err := c.Db.Get(&profileRaw, c.Db.Rebind("SELECT * FROM profiles WHERE player_id=? ORDER BY created_at DESC LIMIT 1"), playerID)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.Log.Error(err)
|
||||
return profileRaw, false
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user