diff --git a/def.go b/def.go index 4892b71..78333d9 100644 --- a/def.go +++ b/def.go @@ -110,6 +110,9 @@ type ChatWarsMessageMiniWarCastle struct { Points int64 `json:"points"` } +type ChatWarsMessageUnionWar struct { +} + type MessageParsingRule struct { ID int32 Priority int32 diff --git a/msg.go b/msg.go index 0abd91f..e63dda7 100644 --- a/msg.go +++ b/msg.go @@ -27,6 +27,37 @@ func parseSubTypeMessageReportAck(m *ChatWarsMessage, r *regexp.Regexp) (*ChatWa return &cwm, nil } +func parseSubTypeMessageUnionWar(m *ChatWarsMessage, r *regexp.Regexp) (*ChatWarsMessageUnionWar, error) { + /* + "^(🏠Trade union news:\\n){0,1}` + + `(((?P[A-Z][a-z]+ [A-Z][a-z]+) was (?P(easily defended|defended successfully|breached.|easily breached.|closely breached.))(Attackers have pillage union for (?[0-9]+) stock):\\n` + + `(πŸŽ–Attack leaders: (?P[πŸ‰πŸ¦…πŸΊπŸ¦ˆπŸ¦ŒπŸ₯”πŸŒ‘])(?P[^,]+)(,(?P[πŸ‰πŸ¦…πŸΊπŸ¦ˆπŸ¦ŒπŸ₯”πŸŒ‘])(?P[^,]+)){0,1}(,(?P[πŸ‰πŸ¦…πŸΊπŸ¦ˆπŸ¦ŒπŸ₯”πŸŒ‘])(?P[^,]+)){0,1}(,(?P[πŸ‰πŸ¦…πŸΊπŸ¦ˆπŸ¦ŒπŸ₯”πŸŒ‘])(?P[^,]+)){0,1}){0,1}(\\n){0,1}` + + `(πŸŽ–Defense leaders: (?P[πŸ‰πŸ¦…πŸΊπŸ¦ˆπŸ¦ŒπŸ₯”πŸŒ‘])(?P[^,]+)(,(?P[πŸ‰πŸ¦…πŸΊπŸ¦ˆπŸ¦ŒπŸ₯”πŸŒ‘])(?P[^,]+)){0,1}(,(?P[πŸ‰πŸ¦…πŸΊπŸ¦ˆπŸ¦ŒπŸ₯”πŸŒ‘])(?P[^,]+)){0,1}(,(?P[πŸ‰πŸ¦…πŸΊπŸ¦ˆπŸ¦ŒπŸ₯”πŸŒ‘])(?P[^,]+)){0,1}){0,1}(\\n){0,1})(\\n)*)*` + + `(πŸŽͺState of exclusive rights:\\n){0,1}` + + `(((?P[A-Z][a-z]+ [A-Z][a-z]+) (?P(was protected|belongs to)( (?P[A-Z][a-z]+ [A-Z][a-z]+):)\\n` + + `(πŸŽ–Attack leaders: (?P[πŸ‰πŸ¦…πŸΊπŸ¦ˆπŸ¦ŒπŸ₯”πŸŒ‘])(?P[^,]+)(,(?P[πŸ‰πŸ¦…πŸΊπŸ¦ˆπŸ¦ŒπŸ₯”πŸŒ‘])(?P[^,]+)){0,1}(,(?P[πŸ‰πŸ¦…πŸΊπŸ¦ˆπŸ¦ŒπŸ₯”πŸŒ‘])(?P[^,]+)){0,1}(,(?P[πŸ‰πŸ¦…πŸΊπŸ¦ˆπŸ¦ŒπŸ₯”πŸŒ‘])(?P[^,]+)){0,1}){0,1}(\\n){0,1}` + + `(πŸŽ–Defense leaders: (?P[πŸ‰πŸ¦…πŸΊπŸ¦ˆπŸ¦ŒπŸ₯”πŸŒ‘])(?P[^,]+)(,(?P[πŸ‰πŸ¦…πŸΊπŸ¦ˆπŸ¦ŒπŸ₯”πŸŒ‘])(?P[^,]+)){0,1}(,(?P[πŸ‰πŸ¦…πŸΊπŸ¦ˆπŸ¦ŒπŸ₯”πŸŒ‘])(?P[^,]+)){0,1}(,(?P[πŸ‰πŸ¦…πŸΊπŸ¦ˆπŸ¦ŒπŸ₯”πŸŒ‘])(?P[^,]+)){0,1}){0,1}(\\n){0,1})(\\n)*)*` + + `$)" + */ + cwm := ChatWarsMessageUnionWar{} + /* + log.Printf("parseSubTypeMessageReport : War report identified\n") + log.Printf("parseSubTypeMessageReport : Castle : %s\n", r.ReplaceAllString(m.Text, "${Castle}")) + log.Printf("parseSubTypeMessageReport : Guild : %s\n", r.ReplaceAllString(m.Text, "${Guild}")) + log.Printf("parseSubTypeMessageReport : User : %s\n", r.ReplaceAllString(m.Text, "${User}")) + log.Printf("parseSubTypeMessageReport : Attack : %s\n", r.ReplaceAllString(m.Text, "${Attack}")) + log.Printf("parseSubTypeMessageReport : AttackMod : %s\n", r.ReplaceAllString(m.Text, "${AttackMod}")) + log.Printf("parseSubTypeMessageReport : Defense : %s\n", r.ReplaceAllString(m.Text, "${Defense}")) + log.Printf("parseSubTypeMessageReport : Level : %s\n", r.ReplaceAllString(m.Text, "${Level}")) + log.Printf("parseSubTypeMessageReport : Exp : %s\n", r.ReplaceAllString(m.Text, "${Exp}")) + log.Printf("parseSubTypeMessageReport : Gold : %s\n", r.ReplaceAllString(m.Text, "${Gold}")) + log.Printf("parseSubTypeMessageReport : Stock : %s\n", r.ReplaceAllString(m.Text, "${Stock}")) + log.Printf("parseSubTypeMessageReport : Stamina : %s\n", r.ReplaceAllString(m.Text, "${Stamina}")) + log.Printf("parseSubTypeMessageReport : Crit : %s\n", r.ReplaceAllString(m.Text, "${Crit}")) + */ + return &cwm, nil +} + func parseSubTypeMessageDuelFight(m *ChatWarsMessage, r *regexp.Regexp) (*ChatWarsMessageDuelFight, error) { cwm := ChatWarsMessageDuelFight{} if r.ReplaceAllString(m.Text, "${Duelist1}") == r.ReplaceAllString(m.Text, "${WinDuelist}") { diff --git a/workers.go b/workers.go index fd37b10..a05103f 100644 --- a/workers.go +++ b/workers.go @@ -218,6 +218,8 @@ func SQLIdentifyMsgWorker(id int, objIds <-chan int64) { err = setObjSubTypeId(objId, objSubTypeMessageMiscReq) logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : setObjSubTypeId(MiscReq)") case objSubTypeMessageUnionWar: + cwm, err := parseSubTypeMessageUnionWar(m, r) + logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : Parsing objSubTypeMessageUnionWar.") err = setObjSubTypeId(objId, objSubTypeMessageUnionWar) logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : setObjSubTypeId(UnionWar)") case objSubTypeMessageAuctionAnnounce: