chirpnest/def.go

780 lines
21 KiB
Go
Raw Normal View History

2019-05-06 04:54:24 +02:00
package main
2019-05-09 11:19:55 +02:00
import (
"regexp"
"sync"
2019-05-09 12:36:45 +02:00
"time"
2019-05-17 10:09:09 +02:00
"github.com/streadway/amqp"
tb "gopkg.in/tucnak/telebot.v2"
2019-05-09 11:19:55 +02:00
)
2019-08-29 12:49:01 +02:00
const maxUnixTimestamp int64 = 2147483647
2019-10-20 14:09:25 +02:00
const chtwrsbotID64 int64 = 408101137
2019-10-25 06:39:25 +02:00
const angrybirbsbotID64 int64 = 833409972
2020-01-16 07:17:33 +01:00
const timeFmt string = "2006-01-02T15:04:05+07:00"
2019-08-23 14:09:08 +02:00
2020-01-14 03:34:46 +01:00
type Config struct {
Telegram struct {
URL string `json:"url"`
Token string `json:"token"`
} `json:"telegram"`
SQL struct {
Driver string `json:"driver"`
Type string `json:"type"`
Address string `json:"address"`
Username string `json:"username"`
Password string `json:"password"`
Database string `json:"database"`
} `json:"sql"`
Rabbit struct {
User string `json:"user"`
Password string `json:"password"`
Host string `json:"host"`
Path string `json:"path"`
} `json:"rabbit"`
Bot struct {
Admin int64 `json:"admin_id"`
Guildname string `json:"guild_name"`
Guild string `json:"guild"`
Mainchat int64 `json:"main_chat_id"`
Depositchat int64 `json:"deposit_chat_id"`
Reportchat int64 `json:"report_chat_id"`
2020-03-01 07:13:33 +01:00
AngryBirbs int64 `json:"angrybirbs_id"`
2020-02-05 09:34:44 +01:00
VaultLimit []struct {
Item string `json:"item"`
Min int64 `json:"min_qty"`
Max int64 `json:"max_qty"`
} `json:"vault_limit"`
2020-02-11 03:00:00 +01:00
Shops []struct {
Username string `json:"username"`
Link string `json:"link"`
} `json:"shops"`
2020-01-14 03:34:46 +01:00
} `json:"bot"`
}
2019-06-08 17:28:07 +02:00
type DataBackup struct {
2019-06-08 17:59:34 +02:00
Messages []ChatWarsMessage `json:"messages"`
2019-06-08 17:28:07 +02:00
}
2020-01-02 11:04:48 +01:00
type ObjType struct {
ID64 int64
IntlId string `json:"intl_id"`
Name string `json:"name"`
}
type ObjSubType struct {
ID64 int64
IntlId string `json:"intl_id"`
Name string `json:"name"`
ObjType string `json:"obj_type"`
ObjTypeID64 int64
}
2020-02-16 13:41:03 +01:00
type ObjClassif struct {
ID64 int64
IntlId string `json:"intl_id"`
Name string `json:"name"`
ObjType string `json:"obj_type"`
ObjTypeID64 int64
}
2020-02-20 03:40:48 +01:00
type ObjClass struct {
2020-02-16 13:41:03 +01:00
ID64 int64
IntlId string `json:"intl_id"`
Name string `json:"name"`
ObjClassif string `json:"obj_classif"`
ObjClassifID64 int64
}
type MQClient struct {
2020-01-16 16:18:25 +01:00
User string `json:"user"`
Password string `json:"passwd"`
Host string `json:"host"`
Path string `json:"path"`
SSL bool `json:"ssl"`
Connection *amqp.Connection `json:"-"`
Channel *amqp.Channel `json:"-"`
Queue amqp.Queue `json:"-"`
2019-05-17 10:09:09 +02:00
}
2020-02-10 03:03:56 +01:00
type ChirpConfig struct {
2020-02-10 09:44:05 +01:00
InterceptPillage bool `json:"intercept_pillage"`
AutoDeposit bool `json:"auto_deposit"`
AutoDepositItems []string `json:"auto_deposit_items"`
AutoDepositTypes []string `json:"auto_deposit_types"`
2020-04-07 04:14:20 +02:00
Wartime string `json:"wartime"`
2020-02-10 03:03:56 +01:00
}
2019-07-31 03:24:01 +02:00
type ChirpClient struct {
2020-02-10 03:03:56 +01:00
HeartBeat time.Time `json:"heart_beat"`
2020-10-17 11:12:01 +02:00
Login string `json:"login"`
Nickname string `json:"nickname"`
2020-02-10 03:03:56 +01:00
Build string `json:"build"`
Active bool `json:"active"`
TGUserID64 int64 `json:"tg_user_id"`
MQ MQClient `json:"mq"`
CWUserID64 int64 `json:"user_id"`
CWGuildID64 int64 `json:"guild_id"`
CWRole string `json:"role"`
CWState string `json:"state"`
CWClass string `json:"class"`
2020-10-17 11:12:01 +02:00
CWClass2 string `json:"class2"`
2020-02-10 03:03:56 +01:00
CWBusyUntil time.Time `json:"busy_until"`
CWLastUpdate time.Time `json:"last_update"`
2020-03-01 12:54:30 +01:00
CWIdle bool `json:"game_idle"`
2020-02-10 03:03:56 +01:00
BotIdle bool `json:"bot_idle"`
Mux sync.Mutex `json:"-"`
Config *ChirpConfig `json:"config"`
2019-07-31 03:24:01 +02:00
}
type MQKeepAlive struct {
TGUserID64 int64 `json:"tg_user_id"`
Nickname string `json:"nick"`
Queue string `json:"queue"`
Date time.Time `json:"date"`
2020-02-05 11:43:17 +01:00
Build string `json:"build"`
2019-05-27 12:03:18 +02:00
}
2019-05-16 04:16:35 +02:00
type TGCommand struct {
2019-08-24 08:01:26 +02:00
Type int64 `json:"type"`
FromChatID64 int64 `json:"from_chat_id"`
FromUserID64 int64 `json:"from_user_id"`
FromMsgID64 int64 `json:"from_msg_id"`
ToChatID64 int64 `json:"to_chat_id"`
ToUserID64 int64 `json:"to_user_id"`
Text string `json:"text"`
Document tb.Document `json:"document"`
ParseMode int64 `json:"parse_mode"`
Delay time.Duration `json:"delay"`
2020-02-05 04:28:34 +01:00
CallbackName string `json:"callback_name"`
CallbackData []byte `json:"callback_data"`
2019-05-15 10:58:25 +02:00
}
2019-05-25 09:25:11 +02:00
type ChatWarsCastle struct {
ObjID64 int64 `json:"obj_id"`
Logo string `json:"logo"`
Name string `json:"name"`
}
type ChatWarsGuild struct {
ObjID64 int64 `json:"obj_id"`
Tag string `json:"tag"`
Name string `json:"name"`
}
2019-05-25 10:56:13 +02:00
type ChatWarsUser struct {
ObjID64 int64 `json:"obj_id"`
Name string `json:"name"`
}
2020-02-16 13:41:03 +01:00
type ChatWarsClass struct {
ClassifID64 int64
Classif string `json:"classif"`
ClassID64 int64
Class string `json:"class"`
}
2019-06-02 08:48:16 +02:00
type ChatWarsItem struct {
2020-01-12 14:46:41 +01:00
ObjID64 int64
ItemTypeID int64
2020-01-26 09:31:47 +01:00
ItemType string `json:"item_type"`
Code string `json:"code"`
Names []string `json:"names"`
Weight int64 `json:"weight"`
Exchange string `json:"exchange"`
Auction bool `json:"auction"`
2020-01-27 06:10:31 +01:00
Craftable bool `json:"craftable"`
2020-01-26 09:31:47 +01:00
Craft *ChatWarsItemCraft `json:"craft"`
2020-06-28 11:24:57 +02:00
Classes []ChatWarsClass `json:"-"`
2019-12-29 08:50:56 +01:00
}
type ChatWarsItemCraft struct {
Command string `json:"cmd"`
Mana int64 `json:"mana"`
Items []ChatWarsItems `json:"items"`
2019-06-02 08:48:16 +02:00
}
2019-06-02 11:30:04 +02:00
type ChatWarsItems struct {
2020-01-14 04:34:29 +01:00
ItemID64 int64 `json:"item_id"`
Code string `json:"code"`
Name string `json:"name"`
Quantity int64 `json:"quantity"`
2020-06-28 11:27:54 +02:00
Quality string `json:"quality"`
2019-06-02 11:30:04 +02:00
}
2019-12-12 04:49:03 +01:00
type ChatWarsCallback struct {
Name string `json:"name"`
Data []byte `json:"data"`
}
2019-05-06 04:54:24 +02:00
type ChatWarsMessage struct {
2019-12-12 10:49:18 +01:00
ObjID64 int64 `json:"obj_id"`
2019-12-12 04:49:03 +01:00
TGUserID64 int64 `json:"tg_user_id"`
TGSenderUserID64 int64 `json:"tg_sender_user_id"`
Date time.Time `json:"date"`
ID64 int64 `json:"id"`
ChatID64 int64 `json:"chat_id"`
Text string `json:"text"`
IsForwarded bool `json:"is_forwarded"`
Callbacks []ChatWarsCallback `json:"callbacks"`
2019-05-06 04:54:24 +02:00
}
2019-05-06 05:59:19 +02:00
2019-09-14 10:27:38 +02:00
type ChatWarsExchangeDeal struct {
ItemID64 int64 `json:"item_id"`
Quantity int64 `json:"quantity"`
Price int64 `json:"price"`
2019-09-14 10:43:18 +02:00
Status string `json:"status"`
2019-09-14 10:27:38 +02:00
Link string `json:"link"`
}
type ChatWarsMessageExchangeAck struct {
Msg *ChatWarsMessage `json:"msg"`
ActiveDeals int64 `json:"active_deals"`
MaxDeals int64 `json:"max_deals"`
DealList []ChatWarsExchangeDeal `json:"deals"`
}
2019-08-22 11:31:16 +02:00
type ChatWarsMessageGStock struct {
2019-06-02 11:30:04 +02:00
Msg *ChatWarsMessage `json:"msg"`
OwnerID64 int64 `json:"owner_id"`
2019-12-13 12:19:52 +01:00
Stock []ChatWarsItems `json:"stock"`
2019-06-02 11:30:04 +02:00
}
2019-10-10 12:14:29 +02:00
type ChatWarsMessageWithdrawRcv struct {
Msg *ChatWarsMessage `json:"msg"`
ItemList []ChatWarsItems `json:"item_list"`
}
2019-08-30 04:16:48 +02:00
type ChatWarsMessageGDepositReq struct {
Msg *ChatWarsMessage `json:"msg"`
ItemID64 int64 `json:"item_id"`
Quantity int64 `json:"quantity"`
}
2019-08-27 17:10:57 +02:00
type ChatWarsMessageGDepositAck struct {
Msg *ChatWarsMessage `json:"msg"`
ItemID64 int64 `json:"item_id"`
Quantity int64 `json:"quantity"`
}
2019-05-19 06:19:24 +02:00
type ChatWarsMessageReportAck struct {
2019-05-18 09:44:25 +02:00
ObjID64 int64 `json:"obj_id"`
2019-05-28 06:14:46 +02:00
}
2019-08-22 11:31:16 +02:00
type ChatWarsMessageStockAck struct {
Msg *ChatWarsMessage `json:"msg"`
Used int64 `json:"used"`
Available int64 `json:"available"`
Stock []ChatWarsItems `json:"stock"`
}
2019-08-30 09:11:49 +02:00
type ChatWarsMessageStockAnyAck struct {
Msg *ChatWarsMessage `json:"msg"`
Stock []ChatWarsItems `json:"stock"`
}
2019-08-21 08:37:53 +02:00
type ChatWarsMessageOrderbookAck struct {
Msg *ChatWarsMessage `json:"msg"`
Name string `json:"name"`
Code string `json:"code"`
Qty1 int64 `json:"qty1"`
Price1 int64 `json:"price1"`
Qty2 int64 `json:"qty2"`
Price2 int64 `json:"price2"`
Qty3 int64 `json:"qty3"`
Price3 int64 `json:"price3"`
Qty int64 `json:"qty"`
Gold int64 `json:"gold"`
}
2019-05-28 06:14:46 +02:00
type ChatWarsMessageMeAck struct {
2019-07-31 10:57:45 +02:00
Msg *ChatWarsMessage `json:"msg"`
CWUserID64 int64 `json:"user_id"`
CWGuildID64 int64 `json:"guild_id"`
State string `json:"state"`
2020-01-06 07:56:18 +01:00
Class string `json:"class"`
2019-07-31 10:57:45 +02:00
Level int64 `json:"level"`
ExpNow int64 `json:"exp_now"`
ExpLvl int64 `json:"exp_lvl"`
2020-02-29 09:43:04 +01:00
ManaNow int64 `json:"mana_now"`
ManaMax int64 `json:"mana_max"`
2019-05-18 09:44:25 +02:00
}
2019-05-30 10:38:25 +02:00
type ChatWarsMessageGRolesAck struct {
2019-05-30 10:36:40 +02:00
Msg *ChatWarsMessage `json:"msg"`
BartenderID64 int64 `json:"bartender"`
CommanderID64 int64 `json:"commander"`
SquireID64 int64 `json:"squire"`
TreasurerID64 int64 `json:"treasurer"`
}
2019-05-28 09:00:37 +02:00
type ChatWarsMessageGoQuestAck struct {
2020-01-02 16:36:28 +01:00
Msg *ChatWarsMessage `json:"msg"`
QuestTypeID64 int64 `json:"quest"`
Duration time.Duration `json:"duration"`
2019-05-28 09:00:37 +02:00
}
2019-10-03 12:15:32 +02:00
type ChatWarsMessageQuestResult struct {
2019-10-03 05:35:24 +02:00
Msg *ChatWarsMessage `json:"msg"`
Gold int64 `json:"gold"`
Exp int64 `json:"exp"`
Loot []ChatWarsItems `json:"loot"`
RegenStamina bool `json:"regen_stamina"`
LostTorch bool `json:"lost_torch"`
}
2019-10-20 14:09:25 +02:00
type ChatWarsMessageQuestResultAmbush struct {
Msg *ChatWarsMessage `json:"msg"`
Loot []ChatWarsItems `json:"loot"`
2019-10-20 14:28:16 +02:00
Level int64 `json:"level"`
2019-10-20 14:09:25 +02:00
Armored bool `json:"armored"`
Enraged bool `json:"enraged"`
SpearResists bool `json:"spear resists"`
Toughness bool `json:"toughness"`
PoisonBottles bool `json:"poison_bottles"`
}
2019-05-18 16:15:24 +02:00
type ChatWarsMessageDuelFight struct {
2019-05-19 14:01:32 +02:00
ObjID64 int64 `json:"obj_id"`
WinCastle string `json:"win_castle"`
WinGuild string `json:"win_guild"`
WinUser string `json:"win_user"`
WinLife int64 `json:"win_life"`
LossCastle string `json:"loss_castle"`
LossGuild string `json:"loss_guild"`
LossUser string `json:"loss_user"`
LossLife int64 `json:"loss_life"`
Exp int64 `json:"exp"`
Weapon string `json:"weapon"`
2019-05-18 16:15:24 +02:00
}
2019-05-09 11:19:02 +02:00
type ChatWarsMessageAuctionAnnounce struct {
2019-06-06 07:52:22 +02:00
ObjID64 int64 `json:"obj_id"`
LotID int32 `json:"lot_id"`
ItemID64 int64 `json:"item_id"`
Cond string `json:"cond"`
2020-06-25 18:53:17 +02:00
Mod string `json:"mod"`
2019-06-06 07:52:22 +02:00
Quality string `json:"quality"`
2019-06-06 07:54:58 +02:00
SellerUserID64 int64 `json:"seller_id"`
2019-06-06 07:52:22 +02:00
SellerGuildID64 int64 `json:"seller_guild_id"`
SellerCastleID64 int64 `json:"seller_castle_id"`
2019-06-06 07:54:58 +02:00
BuyerUserID64 int64 `json:"buyer_id"`
2019-06-06 07:52:22 +02:00
BuyerGuildID64 int64 `json:"buyer_guild_id"`
BuyerCastleID64 int64 `json:"buyer_castle_id"`
Price int32 `json:"price"`
Status string `json:"status"`
End time.Time `json:"end"`
2019-05-09 11:19:02 +02:00
}
2019-05-15 12:02:17 +02:00
type ChatWarsMessagePillageInc struct {
ObjID64 int64 `json:"obj_id"`
Attacker string `json:"attacker"`
Guild string `json:"guild"`
Castle string `json:"castle"`
}
2019-05-25 13:12:31 +02:00
type ChatWarsMessageUnionWar struct {
}
2019-12-19 04:31:28 +01:00
type ChatWarsMessageTimeAck struct {
2020-06-27 11:54:13 +02:00
ObjID64 int64 `json:"obj_id"`
2019-12-19 04:31:28 +01:00
RealTime time.Time `json:"real_time"`
TimeOfDay string `json:"time_of_day"`
Hour int64 `json:"hour"`
Minute int64 `json:"minute"`
Day int64 `json:"day"`
Month int64 `json:"month"`
Year int64 `json:"year"`
Weather string `json:"weather"`
WeatherNext string `json:"weather_next"`
}
2020-01-22 10:07:14 +01:00
type ChatWarsMessageInspectAck struct {
Name string `json:"name"`
}
2020-01-17 03:47:03 +01:00
type ChatWarsMessageJobGWithdrawAck struct {
Msg *ChatWarsMessage `json:"msg"`
Ref string `json:"ref"`
}
2020-02-03 05:06:41 +01:00
type ChatWarsTribute struct {
2020-02-03 05:07:05 +01:00
Date time.Time `json:"time"`
2020-02-03 05:06:41 +01:00
ItemID64 int64 `json:"item_id"`
Quantity int64 `json:"quantity"`
Exp int64 `json:"exp"`
}
type ChatWarsMessageTributesStatsAck struct {
Msg *ChatWarsMessage `json:"msg"`
Tributes []ChatWarsTribute `json:"tributes"`
}
2020-02-07 03:54:01 +01:00
type ChatWarsMessageShopMainReq struct {
Msg *ChatWarsMessage `json:"msg"`
Link string `json:"link"`
}
2020-10-17 18:07:46 +02:00
type ChatWarsGuildMember struct {
Name string `json:"name"`
Level int `json:"level"`
Atk int `json:"atk"`
Def int `json:"def"`
Class1 string `json:"class1"`
Class2 string `json:"class2"`
Status string `json:"status"`
}
2020-10-17 16:13:19 +02:00
type ChatWarsMessageGListAck struct {
2020-10-17 18:07:46 +02:00
Msg *ChatWarsMessage `json:"msg"`
Members []ChatWarsGuildMember `json:"members"`
2020-10-17 16:13:19 +02:00
}
type ChatWarsMessageGDefListAck struct {
2020-10-17 18:07:46 +02:00
Msg *ChatWarsMessage `json:"msg"`
Members []ChatWarsGuildMember `json:"members"`
2020-10-17 16:13:19 +02:00
}
type ChatWarsMessageGAtkListAck struct {
2020-10-17 18:07:46 +02:00
Msg *ChatWarsMessage `json:"msg"`
Members []ChatWarsGuildMember `json:"members"`
2020-10-17 16:13:19 +02:00
}
2020-02-06 03:23:50 +01:00
type ChatWarsMessageShopMainAck struct {
2020-02-06 09:48:06 +01:00
Msg *ChatWarsMessage `json:"msg"`
Name string `json:"name"`
2020-02-06 11:25:49 +01:00
Link string `json:"link"`
2020-02-06 09:48:06 +01:00
ShopNumber int64 `json:"shop_number"`
User string `json:"user"`
Mana int64 `json:"mana"`
ManaTotal int64 `json:"mana_total"`
Class string `json:"class"`
CastleID64 int64 `json:"castle"`
Fees string `json:"fees"`
Guru string `json:"guru"`
Open bool `json:"open"`
2020-02-06 03:23:50 +01:00
}
2019-05-07 13:15:25 +02:00
type MessageParsingRule struct {
2019-05-30 06:12:01 +02:00
ID int32
2019-12-29 08:50:56 +01:00
Priority int32 `json:"prio"`
Description string `json:"descn"`
Rule string `json:"rule"`
MsgType string `json:"msg_type"`
MsgTypeID64 int64
2020-01-06 04:58:46 +01:00
ChatID64 int64 `json:"chat_id"`
SenderUserID64 int64 `json:"sender_id"`
2020-06-25 17:22:54 +02:00
BotCommand bool `json:"bot_cmd"`
2019-05-30 06:12:01 +02:00
re *regexp.Regexp
2019-05-07 13:15:25 +02:00
}
2019-05-11 05:15:42 +02:00
type BotMsg struct {
To tb.Recipient
Text string
}
2019-05-10 11:23:47 +02:00
type Job struct {
2020-01-02 13:07:46 +01:00
ID64 int64
JobTypeID64 int64
Trigger int64
Timeout time.Time
UserID64 int64
Payload []byte
2019-05-10 11:23:47 +02:00
}
2019-12-19 04:31:28 +01:00
type JobPayloadGetHammerTime struct {
}
2019-12-13 09:34:32 +01:00
type JobPayloadSetDef struct {
}
2020-01-07 11:32:20 +01:00
type JobPayloadMsgFwd struct {
2019-12-12 11:24:12 +01:00
ChatID64 int64 `json:"chat_id"`
}
2020-01-07 11:32:20 +01:00
type JobPayloadMsgDel struct {
2020-01-13 09:03:01 +01:00
ObjMsgID64 int64 `json:"obj_msg_id"`
Delay time.Duration `json:"delay"`
MsgTypeID64 int64 `json:"msg_type_id"`
2020-01-07 11:32:20 +01:00
}
2019-06-08 17:28:07 +02:00
type JobPayloadMsgRefresh struct {
ObjID64 int64 `json:"obj_id"`
}
2019-05-10 11:23:47 +02:00
type JobPayloadPillage struct {
2019-07-31 04:06:05 +02:00
ObjID64 int64 `json:"obj_id"`
Date time.Time `json:"date"`
2019-05-10 11:23:47 +02:00
}
type JobPayloadTribute struct {
}
type JobPayloadStatus struct {
}
type JobPayloadGStock struct {
2020-01-26 14:47:13 +01:00
Status int64 `json:"status"`
2020-01-26 14:40:20 +01:00
MsgID64 int64 `json:"msg_id"`
ChatID64 int64 `json:"chat_id"`
VaultJobID64 int64 `json:"vault_job_id"`
2019-05-10 11:23:47 +02:00
}
2020-01-14 04:34:29 +01:00
type JobPayloadGWithdrawItem struct {
Code string `json:"code"`
Name string `json:"name"`
Available int64 `json:"available"`
Required int64 `json:"required"`
2020-01-21 08:40:47 +01:00
Inspect bool `json:"inspect"`
2020-01-14 04:34:29 +01:00
}
2019-10-02 06:43:27 +02:00
type JobPayloadGWithdraw struct {
2020-01-27 05:08:38 +01:00
MsgID64 int64 `json:"msg_id"`
ChatID64 int64 `json:"chat_id"`
UserID64 int64 `json:"user_id"`
VaultJobID64 int64 `json:"vault_job_id"`
Items []JobPayloadGWithdrawItem `json:"items"`
Status int64 `json:"status"`
CleanupMsg []ChatWarsMessage `json:"cleanup_msg"`
Validated bool `json:"validated"`
Inspecting string `json:"inspecting"`
2019-10-02 06:43:27 +02:00
}
2019-08-16 12:29:07 +02:00
type JobPayloadGDeposit struct {
2019-08-17 08:18:25 +02:00
MsgID64 int64 `json:"msg_id"`
ChatID64 int64 `json:"chat_id"`
ResObjID64 []int64 `json:"res_obj_id"`
2020-01-02 12:43:53 +01:00
Status int64 `json:"status"`
2019-08-17 08:18:25 +02:00
}
2019-08-30 04:16:12 +02:00
type JobPayloadGDepositForward struct {
ItemID64 int64 `json:"item_id"`
Quantity int64 `json:"quantity"`
}
2019-08-17 08:18:25 +02:00
type JobPayloadSaveRes struct {
MsgID64 int64 `json:"msg_id"`
ChatID64 int64 `json:"chat_id"`
ResObjID64 int64 `json:"res_obj_id"`
BuyRes bool `json:"buy_res"`
2019-08-16 12:29:07 +02:00
}
2019-05-10 11:23:47 +02:00
type JobPayloadRescanMsg struct {
2019-05-15 12:31:03 +02:00
Query string `json:"query"`
MsgID64 int64 `json:"msg_id"`
ChatID64 int64 `json:"chat_id"`
2019-05-10 13:33:29 +02:00
}
2019-05-11 06:54:12 +02:00
type JobPayloadSetDone struct {
2019-05-16 04:49:34 +02:00
JobID64 int64 `json:"job_id"`
MsgID64 int64 `json:"msg_id"`
ChatID64 int64 `json:"chat_id"`
Text string `json:"test"`
2019-05-11 06:54:12 +02:00
}
2019-05-30 06:12:01 +02:00
type JobPayloadMsgClient struct {
2019-06-03 03:01:18 +02:00
Text string `json:"msg"`
MsgID64 int64 `json:"msg_id"`
2019-06-11 04:00:37 +02:00
ChatID64 int64 `json:"chat_id"`
}
type JobPayloadBackupExport struct {
MsgID64 int64 `json:"msg_id"`
ChatID64 int64 `json:"chat_id"`
}
type JobPayloadBackupImport struct {
URL string `json:"url"`
MsgID64 int64 `json:"msg_id"`
2019-06-03 03:01:18 +02:00
ChatID64 int64 `json:"chat_id"`
2019-05-30 06:12:01 +02:00
}
2019-10-12 07:47:40 +02:00
type JobPayloadVaultUserStatus struct {
2019-10-11 07:18:53 +02:00
UserListID64 []int64 `json:"user_list"`
ItemTypeListID64 []int64 `json:"item_type_list"`
DepositChatID64 int64 `json:"deposit_chat_id"`
2019-10-11 10:28:25 +02:00
UserID64 int64 `json:"user_id"`
2019-10-11 07:18:53 +02:00
}
2019-10-12 07:47:40 +02:00
type JobPayloadVaultItemStatus struct {
ItemListID64 []int64 `json:"item_type_list"`
DepositChatID64 int64 `json:"deposit_chat_id"`
UserID64 int64 `json:"user_id"`
}
2020-01-26 14:40:20 +01:00
type JobPayloadCraftItem struct {
2020-01-27 05:05:38 +01:00
MsgID64 int64 `json:"msg_id"`
ChatID64 int64 `json:"chat_id"`
ObjItemID64 int64 `json:"item_id"`
2020-01-27 05:39:32 +01:00
Quantity int64 `json:"quantity"`
2020-01-27 05:05:38 +01:00
Status int64 `json:"status"`
VaultJobID64 int64 `json:"vault_job_id"`
2020-01-26 14:40:20 +01:00
}
2020-01-30 05:43:38 +01:00
type JobPayloadCraftAll struct {
MsgID64 int64 `json:"msg_id"`
ChatID64 int64 `json:"chat_id"`
2020-01-30 05:44:01 +01:00
Status int64 `json:"status"`
2020-01-30 05:43:38 +01:00
VaultJobID64 int64 `json:"vault_job_id"`
}
2020-02-29 09:43:04 +01:00
type JobPayloadAlchAll struct {
MsgID64 int64 `json:"msg_id"`
ChatID64 int64 `json:"chat_id"`
Status int64 `json:"status"`
2020-02-29 11:22:39 +01:00
ManaNow int64 `json:"mana_now"`
2020-02-29 09:45:58 +01:00
ManaMax int64 `json:"mana_max"`
2020-02-29 09:43:04 +01:00
}
2020-02-03 03:54:34 +01:00
type JobPayloadCheckVaultLimit struct {
2020-05-31 10:51:00 +02:00
Status int64 `json:"status"`
VaultPreJobID64 int64 `json:"vault_pre_job_id"`
VaultPostJobID64 int64 `json:"vault_post_job_id`
2020-02-03 03:54:34 +01:00
}
2020-06-28 13:12:05 +02:00
type JobPayloadVaultVal struct {
MsgID64 int64 `json:"msg_id"`
ChatID64 int64 `json:"chat_id"`
Status int64 `json:"status"`
VaultJobID64 int64 `json:"vault_job_id`
}
2020-08-08 12:02:21 +02:00
type JobPayloadVaultValOth struct {
MsgID64 int64 `json:"msg_id"`
ChatID64 int64 `json:"chat_id"`
Status int64 `json:"status"`
VaultJobID64 int64 `json:"vault_job_id`
Val []JobPayloadVaultValTab `json:"val_tab"`
}
type JobPayloadVaultValTab struct {
ItemID64 int64 `json:"item_id"`
Quality string `json:"quality"`
2020-08-08 12:07:47 +02:00
Quantity int64 `json:"quantity"`
Volume int64 `json:"volume"`
2020-08-08 12:09:48 +02:00
Price float64 `json:"price"`
2020-08-08 12:42:00 +02:00
Weight int64 `json:"weight"`
2020-08-08 12:02:21 +02:00
}
2020-01-26 14:40:20 +01:00
type JobPayloadGetVault struct {
2020-01-26 14:48:49 +01:00
Status int64 `json:"status"`
2020-01-26 14:40:20 +01:00
JobCallbackID64 int64 `json:"job_callback_id"`
ItemTypeList []int64 `json:"item_type"`
Vault []ChatWarsItems `json:"vault"`
CleanupMsg []ChatWarsMessage `json:"cleanup_msg"`
}
2020-02-06 16:23:54 +01:00
type JobPayloadShops struct {
2020-02-07 03:54:01 +01:00
MsgID64 int64 `json:"msg_id"`
ChatID64 int64 `json:"chat_id"`
Status int64 `json:"status"`
Msgs []ChatWarsMessage `json:"msgs"`
2020-02-06 16:23:54 +01:00
}
type JobPayloadShopsSlave struct {
Status int64 `json:"status"`
JobCallbackID64 int64 `json:"job_callback_id"`
Shops []string `json:"shops"`
Slaves int64 `json:"slaves"`
}
2020-06-19 21:28:59 +02:00
type JobPayloadGetStash struct {
2020-06-19 21:29:42 +02:00
MsgID64 int64 `json:"msg_id"`
ChatID64 int64 `json:"chat_id"`
2020-06-29 11:04:13 +02:00
UserID64 int64 `json:"user_id"`
2020-06-19 21:28:59 +02:00
ClientID64 []int64 `json:"clients_id"`
ClientCount int64 `json:"client_count"`
2020-06-29 12:47:19 +02:00
Stash map[int64]int64 `json:"stock"`
2020-06-21 13:03:46 +02:00
CleanupMsg []ChatWarsMessage `json:"cleanup_msg"`
2020-06-19 21:28:59 +02:00
}
2019-05-06 05:59:19 +02:00
const (
2019-05-17 10:30:01 +02:00
userID64ChtWrsBot = 408101137
2019-06-09 09:34:08 +02:00
commandForwardMsg = 1
commandReplyMsg = 2
commandSendMsg = 3
commandDeleteMsg = 4
commandRefreshMsg = 5
commandSendDocument = 6
2020-02-05 04:28:34 +01:00
commandCallback = 7
2019-05-15 10:58:25 +02:00
2019-06-10 11:05:59 +02:00
cmdParseModePlain = 1
cmdParseModeMarkDown = 2
cmdParseModeHTML = 3
2019-05-14 04:28:26 +02:00
castleDeer = 1
castleDragon = 2
castleHighnest = 3
castleMoon = 4
castlePotato = 5
castleShark = 6
castleWolf = 7
2019-08-17 08:18:25 +02:00
objJobStatusCallBack = -1
2019-05-18 12:33:53 +02:00
objJobStatusNew = 0
objJobStatusPillageGo = 1
objJonStatusPending = 10
objJobStatusDone = 20
2019-05-10 11:23:47 +02:00
2019-05-19 05:20:01 +02:00
objJobPriority = 1
objJobPriorityRescanMsg = 2
objJobPriorityRescanAllMsg = 3
2019-06-11 16:50:01 +02:00
objJobPriorityBackup = 4
2019-05-11 06:54:12 +02:00
2019-06-14 05:24:43 +02:00
MQGetMsgWorkers = 12
MQCWMsgQueueSize = 100
SQLCWMsgWorkers = 6
SQLIdentifyMsgWorkers = 6
SQLMsgIdentifyQueueSize = 100
SQLMsgRescanJobSize = 25
JobWorkers = 12
JobQueueSize = 100
TGCmdWorkers = 3
TGCmdQueueSize = 100
MQTGCmdWorkers = 3
MQTGCmdQueueSize = 100
SQLJobSliceSize = 25
KeepAliveHeartBeatSeconds = 5
2019-05-06 05:59:19 +02:00
)
2019-05-08 17:18:17 +02:00
2019-05-09 04:27:21 +02:00
var (
chatWarsMonth = map[string]int{
"Wintar": 1,
"Hornung": 2,
"Lenzin": 3,
"Ōstar": 4,
"Winni": 5,
"Brāh": 6,
"Hewi": 7,
"Aran": 8,
"Witu": 9,
"Wīndume": 10,
"Herbist": 11,
"Hailag": 12}
2019-05-09 04:28:06 +02:00
chatWarsDaysSpecial = map[int]map[int]int{
2020-06-27 12:31:07 +02:00
1060: {
2: 29,
4: 29,
2020-06-27 12:18:08 +02:00
},
2020-06-27 12:31:07 +02:00
1064: {2: 29},
1068: {2: 29},
2020-06-27 12:15:43 +02:00
}
2019-05-09 04:28:06 +02:00
2019-05-09 04:27:21 +02:00
chatWarsDays = map[int]int{
1: 31,
2: 28,
3: 31,
4: 30,
5: 31,
6: 30,
7: 31,
8: 31,
9: 30,
10: 31,
11: 30,
12: 31}
)