7a04f298d2
- update to latest telegram layer - remove some references to fields in tg.Entities that don't exist in the schema - originally added here: https://github.com/beeper/td/commit/820929062a2ba0104397bc01235ab58a9cff780e - referenced here - https://github.com/mautrix/telegramgo/commit/124f0967ed195b5a380c9bd02e170ada9710dde3 - https://github.com/mautrix/telegramgo/commit/4205047aab2e0639217148b5d125bfaab668bd8e
2052 lines
67 KiB
Go
2052 lines
67 KiB
Go
// Code generated by gotdgen, DO NOT EDIT.
|
|
|
|
package tdapi
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"fmt"
|
|
"sort"
|
|
"strings"
|
|
|
|
"go.uber.org/multierr"
|
|
|
|
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
|
|
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
|
|
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
|
|
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
|
|
)
|
|
|
|
// No-op definition for keeping imports.
|
|
var (
|
|
_ = bin.Buffer{}
|
|
_ = context.Background()
|
|
_ = fmt.Stringer(nil)
|
|
_ = strings.Builder{}
|
|
_ = errors.Is
|
|
_ = multierr.AppendInto
|
|
_ = sort.Ints
|
|
_ = tdp.Format
|
|
_ = tgerr.Error{}
|
|
_ = tdjson.Encoder{}
|
|
)
|
|
|
|
// ChatStatisticsSupergroup represents TL type `chatStatisticsSupergroup#c67549ef`.
|
|
type ChatStatisticsSupergroup struct {
|
|
// A period to which the statistics applies
|
|
Period DateRange
|
|
// Number of members in the chat
|
|
MemberCount StatisticalValue
|
|
// Number of messages sent to the chat
|
|
MessageCount StatisticalValue
|
|
// Number of users who viewed messages in the chat
|
|
ViewerCount StatisticalValue
|
|
// Number of users who sent messages to the chat
|
|
SenderCount StatisticalValue
|
|
// A graph containing number of members in the chat
|
|
MemberCountGraph StatisticalGraphClass
|
|
// A graph containing number of members joined and left the chat
|
|
JoinGraph StatisticalGraphClass
|
|
// A graph containing number of new member joins per source
|
|
JoinBySourceGraph StatisticalGraphClass
|
|
// A graph containing distribution of active users per language
|
|
LanguageGraph StatisticalGraphClass
|
|
// A graph containing distribution of sent messages by content type
|
|
MessageContentGraph StatisticalGraphClass
|
|
// A graph containing number of different actions in the chat
|
|
ActionGraph StatisticalGraphClass
|
|
// A graph containing distribution of message views per hour
|
|
DayGraph StatisticalGraphClass
|
|
// A graph containing distribution of message views per day of week
|
|
WeekGraph StatisticalGraphClass
|
|
// List of users sent most messages in the last week
|
|
TopSenders []ChatStatisticsMessageSenderInfo
|
|
// List of most active administrators in the last week
|
|
TopAdministrators []ChatStatisticsAdministratorActionsInfo
|
|
// List of most active inviters of new members in the last week
|
|
TopInviters []ChatStatisticsInviterInfo
|
|
}
|
|
|
|
// ChatStatisticsSupergroupTypeID is TL type id of ChatStatisticsSupergroup.
|
|
const ChatStatisticsSupergroupTypeID = 0xc67549ef
|
|
|
|
// construct implements constructor of ChatStatisticsClass.
|
|
func (c ChatStatisticsSupergroup) construct() ChatStatisticsClass { return &c }
|
|
|
|
// Ensuring interfaces in compile-time for ChatStatisticsSupergroup.
|
|
var (
|
|
_ bin.Encoder = &ChatStatisticsSupergroup{}
|
|
_ bin.Decoder = &ChatStatisticsSupergroup{}
|
|
_ bin.BareEncoder = &ChatStatisticsSupergroup{}
|
|
_ bin.BareDecoder = &ChatStatisticsSupergroup{}
|
|
|
|
_ ChatStatisticsClass = &ChatStatisticsSupergroup{}
|
|
)
|
|
|
|
func (c *ChatStatisticsSupergroup) Zero() bool {
|
|
if c == nil {
|
|
return true
|
|
}
|
|
if !(c.Period.Zero()) {
|
|
return false
|
|
}
|
|
if !(c.MemberCount.Zero()) {
|
|
return false
|
|
}
|
|
if !(c.MessageCount.Zero()) {
|
|
return false
|
|
}
|
|
if !(c.ViewerCount.Zero()) {
|
|
return false
|
|
}
|
|
if !(c.SenderCount.Zero()) {
|
|
return false
|
|
}
|
|
if !(c.MemberCountGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.JoinGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.JoinBySourceGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.LanguageGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.MessageContentGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.ActionGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.DayGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.WeekGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.TopSenders == nil) {
|
|
return false
|
|
}
|
|
if !(c.TopAdministrators == nil) {
|
|
return false
|
|
}
|
|
if !(c.TopInviters == nil) {
|
|
return false
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
// String implements fmt.Stringer.
|
|
func (c *ChatStatisticsSupergroup) String() string {
|
|
if c == nil {
|
|
return "ChatStatisticsSupergroup(nil)"
|
|
}
|
|
type Alias ChatStatisticsSupergroup
|
|
return fmt.Sprintf("ChatStatisticsSupergroup%+v", Alias(*c))
|
|
}
|
|
|
|
// TypeID returns type id in TL schema.
|
|
//
|
|
// See https://core.telegram.org/mtproto/TL-tl#remarks.
|
|
func (*ChatStatisticsSupergroup) TypeID() uint32 {
|
|
return ChatStatisticsSupergroupTypeID
|
|
}
|
|
|
|
// TypeName returns name of type in TL schema.
|
|
func (*ChatStatisticsSupergroup) TypeName() string {
|
|
return "chatStatisticsSupergroup"
|
|
}
|
|
|
|
// TypeInfo returns info about TL type.
|
|
func (c *ChatStatisticsSupergroup) TypeInfo() tdp.Type {
|
|
typ := tdp.Type{
|
|
Name: "chatStatisticsSupergroup",
|
|
ID: ChatStatisticsSupergroupTypeID,
|
|
}
|
|
if c == nil {
|
|
typ.Null = true
|
|
return typ
|
|
}
|
|
typ.Fields = []tdp.Field{
|
|
{
|
|
Name: "Period",
|
|
SchemaName: "period",
|
|
},
|
|
{
|
|
Name: "MemberCount",
|
|
SchemaName: "member_count",
|
|
},
|
|
{
|
|
Name: "MessageCount",
|
|
SchemaName: "message_count",
|
|
},
|
|
{
|
|
Name: "ViewerCount",
|
|
SchemaName: "viewer_count",
|
|
},
|
|
{
|
|
Name: "SenderCount",
|
|
SchemaName: "sender_count",
|
|
},
|
|
{
|
|
Name: "MemberCountGraph",
|
|
SchemaName: "member_count_graph",
|
|
},
|
|
{
|
|
Name: "JoinGraph",
|
|
SchemaName: "join_graph",
|
|
},
|
|
{
|
|
Name: "JoinBySourceGraph",
|
|
SchemaName: "join_by_source_graph",
|
|
},
|
|
{
|
|
Name: "LanguageGraph",
|
|
SchemaName: "language_graph",
|
|
},
|
|
{
|
|
Name: "MessageContentGraph",
|
|
SchemaName: "message_content_graph",
|
|
},
|
|
{
|
|
Name: "ActionGraph",
|
|
SchemaName: "action_graph",
|
|
},
|
|
{
|
|
Name: "DayGraph",
|
|
SchemaName: "day_graph",
|
|
},
|
|
{
|
|
Name: "WeekGraph",
|
|
SchemaName: "week_graph",
|
|
},
|
|
{
|
|
Name: "TopSenders",
|
|
SchemaName: "top_senders",
|
|
},
|
|
{
|
|
Name: "TopAdministrators",
|
|
SchemaName: "top_administrators",
|
|
},
|
|
{
|
|
Name: "TopInviters",
|
|
SchemaName: "top_inviters",
|
|
},
|
|
}
|
|
return typ
|
|
}
|
|
|
|
// Encode implements bin.Encoder.
|
|
func (c *ChatStatisticsSupergroup) Encode(b *bin.Buffer) error {
|
|
if c == nil {
|
|
return fmt.Errorf("can't encode chatStatisticsSupergroup#c67549ef as nil")
|
|
}
|
|
b.PutID(ChatStatisticsSupergroupTypeID)
|
|
return c.EncodeBare(b)
|
|
}
|
|
|
|
// EncodeBare implements bin.BareEncoder.
|
|
func (c *ChatStatisticsSupergroup) EncodeBare(b *bin.Buffer) error {
|
|
if c == nil {
|
|
return fmt.Errorf("can't encode chatStatisticsSupergroup#c67549ef as nil")
|
|
}
|
|
if err := c.Period.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field period: %w", err)
|
|
}
|
|
if err := c.MemberCount.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field member_count: %w", err)
|
|
}
|
|
if err := c.MessageCount.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field message_count: %w", err)
|
|
}
|
|
if err := c.ViewerCount.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field viewer_count: %w", err)
|
|
}
|
|
if err := c.SenderCount.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field sender_count: %w", err)
|
|
}
|
|
if c.MemberCountGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field member_count_graph is nil")
|
|
}
|
|
if err := c.MemberCountGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field member_count_graph: %w", err)
|
|
}
|
|
if c.JoinGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field join_graph is nil")
|
|
}
|
|
if err := c.JoinGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field join_graph: %w", err)
|
|
}
|
|
if c.JoinBySourceGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field join_by_source_graph is nil")
|
|
}
|
|
if err := c.JoinBySourceGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field join_by_source_graph: %w", err)
|
|
}
|
|
if c.LanguageGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field language_graph is nil")
|
|
}
|
|
if err := c.LanguageGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field language_graph: %w", err)
|
|
}
|
|
if c.MessageContentGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field message_content_graph is nil")
|
|
}
|
|
if err := c.MessageContentGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field message_content_graph: %w", err)
|
|
}
|
|
if c.ActionGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field action_graph is nil")
|
|
}
|
|
if err := c.ActionGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field action_graph: %w", err)
|
|
}
|
|
if c.DayGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field day_graph is nil")
|
|
}
|
|
if err := c.DayGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field day_graph: %w", err)
|
|
}
|
|
if c.WeekGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field week_graph is nil")
|
|
}
|
|
if err := c.WeekGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field week_graph: %w", err)
|
|
}
|
|
b.PutInt(len(c.TopSenders))
|
|
for idx, v := range c.TopSenders {
|
|
if err := v.EncodeBare(b); err != nil {
|
|
return fmt.Errorf("unable to encode bare chatStatisticsSupergroup#c67549ef: field top_senders element with index %d: %w", idx, err)
|
|
}
|
|
}
|
|
b.PutInt(len(c.TopAdministrators))
|
|
for idx, v := range c.TopAdministrators {
|
|
if err := v.EncodeBare(b); err != nil {
|
|
return fmt.Errorf("unable to encode bare chatStatisticsSupergroup#c67549ef: field top_administrators element with index %d: %w", idx, err)
|
|
}
|
|
}
|
|
b.PutInt(len(c.TopInviters))
|
|
for idx, v := range c.TopInviters {
|
|
if err := v.EncodeBare(b); err != nil {
|
|
return fmt.Errorf("unable to encode bare chatStatisticsSupergroup#c67549ef: field top_inviters element with index %d: %w", idx, err)
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Decode implements bin.Decoder.
|
|
func (c *ChatStatisticsSupergroup) Decode(b *bin.Buffer) error {
|
|
if c == nil {
|
|
return fmt.Errorf("can't decode chatStatisticsSupergroup#c67549ef to nil")
|
|
}
|
|
if err := b.ConsumeID(ChatStatisticsSupergroupTypeID); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: %w", err)
|
|
}
|
|
return c.DecodeBare(b)
|
|
}
|
|
|
|
// DecodeBare implements bin.BareDecoder.
|
|
func (c *ChatStatisticsSupergroup) DecodeBare(b *bin.Buffer) error {
|
|
if c == nil {
|
|
return fmt.Errorf("can't decode chatStatisticsSupergroup#c67549ef to nil")
|
|
}
|
|
{
|
|
if err := c.Period.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field period: %w", err)
|
|
}
|
|
}
|
|
{
|
|
if err := c.MemberCount.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field member_count: %w", err)
|
|
}
|
|
}
|
|
{
|
|
if err := c.MessageCount.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field message_count: %w", err)
|
|
}
|
|
}
|
|
{
|
|
if err := c.ViewerCount.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field viewer_count: %w", err)
|
|
}
|
|
}
|
|
{
|
|
if err := c.SenderCount.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field sender_count: %w", err)
|
|
}
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field member_count_graph: %w", err)
|
|
}
|
|
c.MemberCountGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field join_graph: %w", err)
|
|
}
|
|
c.JoinGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field join_by_source_graph: %w", err)
|
|
}
|
|
c.JoinBySourceGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field language_graph: %w", err)
|
|
}
|
|
c.LanguageGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field message_content_graph: %w", err)
|
|
}
|
|
c.MessageContentGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field action_graph: %w", err)
|
|
}
|
|
c.ActionGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field day_graph: %w", err)
|
|
}
|
|
c.DayGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field week_graph: %w", err)
|
|
}
|
|
c.WeekGraph = value
|
|
}
|
|
{
|
|
headerLen, err := b.Int()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_senders: %w", err)
|
|
}
|
|
|
|
if headerLen > 0 {
|
|
c.TopSenders = make([]ChatStatisticsMessageSenderInfo, 0, headerLen%bin.PreallocateLimit)
|
|
}
|
|
for idx := 0; idx < headerLen; idx++ {
|
|
var value ChatStatisticsMessageSenderInfo
|
|
if err := value.DecodeBare(b); err != nil {
|
|
return fmt.Errorf("unable to decode bare chatStatisticsSupergroup#c67549ef: field top_senders: %w", err)
|
|
}
|
|
c.TopSenders = append(c.TopSenders, value)
|
|
}
|
|
}
|
|
{
|
|
headerLen, err := b.Int()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_administrators: %w", err)
|
|
}
|
|
|
|
if headerLen > 0 {
|
|
c.TopAdministrators = make([]ChatStatisticsAdministratorActionsInfo, 0, headerLen%bin.PreallocateLimit)
|
|
}
|
|
for idx := 0; idx < headerLen; idx++ {
|
|
var value ChatStatisticsAdministratorActionsInfo
|
|
if err := value.DecodeBare(b); err != nil {
|
|
return fmt.Errorf("unable to decode bare chatStatisticsSupergroup#c67549ef: field top_administrators: %w", err)
|
|
}
|
|
c.TopAdministrators = append(c.TopAdministrators, value)
|
|
}
|
|
}
|
|
{
|
|
headerLen, err := b.Int()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_inviters: %w", err)
|
|
}
|
|
|
|
if headerLen > 0 {
|
|
c.TopInviters = make([]ChatStatisticsInviterInfo, 0, headerLen%bin.PreallocateLimit)
|
|
}
|
|
for idx := 0; idx < headerLen; idx++ {
|
|
var value ChatStatisticsInviterInfo
|
|
if err := value.DecodeBare(b); err != nil {
|
|
return fmt.Errorf("unable to decode bare chatStatisticsSupergroup#c67549ef: field top_inviters: %w", err)
|
|
}
|
|
c.TopInviters = append(c.TopInviters, value)
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// EncodeTDLibJSON implements tdjson.TDLibEncoder.
|
|
func (c *ChatStatisticsSupergroup) EncodeTDLibJSON(b tdjson.Encoder) error {
|
|
if c == nil {
|
|
return fmt.Errorf("can't encode chatStatisticsSupergroup#c67549ef as nil")
|
|
}
|
|
b.ObjStart()
|
|
b.PutID("chatStatisticsSupergroup")
|
|
b.Comma()
|
|
b.FieldStart("period")
|
|
if err := c.Period.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field period: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("member_count")
|
|
if err := c.MemberCount.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field member_count: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("message_count")
|
|
if err := c.MessageCount.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field message_count: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("viewer_count")
|
|
if err := c.ViewerCount.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field viewer_count: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("sender_count")
|
|
if err := c.SenderCount.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field sender_count: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("member_count_graph")
|
|
if c.MemberCountGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field member_count_graph is nil")
|
|
}
|
|
if err := c.MemberCountGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field member_count_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("join_graph")
|
|
if c.JoinGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field join_graph is nil")
|
|
}
|
|
if err := c.JoinGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field join_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("join_by_source_graph")
|
|
if c.JoinBySourceGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field join_by_source_graph is nil")
|
|
}
|
|
if err := c.JoinBySourceGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field join_by_source_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("language_graph")
|
|
if c.LanguageGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field language_graph is nil")
|
|
}
|
|
if err := c.LanguageGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field language_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("message_content_graph")
|
|
if c.MessageContentGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field message_content_graph is nil")
|
|
}
|
|
if err := c.MessageContentGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field message_content_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("action_graph")
|
|
if c.ActionGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field action_graph is nil")
|
|
}
|
|
if err := c.ActionGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field action_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("day_graph")
|
|
if c.DayGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field day_graph is nil")
|
|
}
|
|
if err := c.DayGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field day_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("week_graph")
|
|
if c.WeekGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field week_graph is nil")
|
|
}
|
|
if err := c.WeekGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field week_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("top_senders")
|
|
b.ArrStart()
|
|
for idx, v := range c.TopSenders {
|
|
if err := v.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field top_senders element with index %d: %w", idx, err)
|
|
}
|
|
b.Comma()
|
|
}
|
|
b.StripComma()
|
|
b.ArrEnd()
|
|
b.Comma()
|
|
b.FieldStart("top_administrators")
|
|
b.ArrStart()
|
|
for idx, v := range c.TopAdministrators {
|
|
if err := v.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field top_administrators element with index %d: %w", idx, err)
|
|
}
|
|
b.Comma()
|
|
}
|
|
b.StripComma()
|
|
b.ArrEnd()
|
|
b.Comma()
|
|
b.FieldStart("top_inviters")
|
|
b.ArrStart()
|
|
for idx, v := range c.TopInviters {
|
|
if err := v.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field top_inviters element with index %d: %w", idx, err)
|
|
}
|
|
b.Comma()
|
|
}
|
|
b.StripComma()
|
|
b.ArrEnd()
|
|
b.Comma()
|
|
b.StripComma()
|
|
b.ObjEnd()
|
|
return nil
|
|
}
|
|
|
|
// DecodeTDLibJSON implements tdjson.TDLibDecoder.
|
|
func (c *ChatStatisticsSupergroup) DecodeTDLibJSON(b tdjson.Decoder) error {
|
|
if c == nil {
|
|
return fmt.Errorf("can't decode chatStatisticsSupergroup#c67549ef to nil")
|
|
}
|
|
|
|
return b.Obj(func(b tdjson.Decoder, key []byte) error {
|
|
switch string(key) {
|
|
case tdjson.TypeField:
|
|
if err := b.ConsumeID("chatStatisticsSupergroup"); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: %w", err)
|
|
}
|
|
case "period":
|
|
if err := c.Period.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field period: %w", err)
|
|
}
|
|
case "member_count":
|
|
if err := c.MemberCount.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field member_count: %w", err)
|
|
}
|
|
case "message_count":
|
|
if err := c.MessageCount.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field message_count: %w", err)
|
|
}
|
|
case "viewer_count":
|
|
if err := c.ViewerCount.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field viewer_count: %w", err)
|
|
}
|
|
case "sender_count":
|
|
if err := c.SenderCount.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field sender_count: %w", err)
|
|
}
|
|
case "member_count_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field member_count_graph: %w", err)
|
|
}
|
|
c.MemberCountGraph = value
|
|
case "join_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field join_graph: %w", err)
|
|
}
|
|
c.JoinGraph = value
|
|
case "join_by_source_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field join_by_source_graph: %w", err)
|
|
}
|
|
c.JoinBySourceGraph = value
|
|
case "language_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field language_graph: %w", err)
|
|
}
|
|
c.LanguageGraph = value
|
|
case "message_content_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field message_content_graph: %w", err)
|
|
}
|
|
c.MessageContentGraph = value
|
|
case "action_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field action_graph: %w", err)
|
|
}
|
|
c.ActionGraph = value
|
|
case "day_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field day_graph: %w", err)
|
|
}
|
|
c.DayGraph = value
|
|
case "week_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field week_graph: %w", err)
|
|
}
|
|
c.WeekGraph = value
|
|
case "top_senders":
|
|
if err := b.Arr(func(b tdjson.Decoder) error {
|
|
var value ChatStatisticsMessageSenderInfo
|
|
if err := value.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_senders: %w", err)
|
|
}
|
|
c.TopSenders = append(c.TopSenders, value)
|
|
return nil
|
|
}); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_senders: %w", err)
|
|
}
|
|
case "top_administrators":
|
|
if err := b.Arr(func(b tdjson.Decoder) error {
|
|
var value ChatStatisticsAdministratorActionsInfo
|
|
if err := value.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_administrators: %w", err)
|
|
}
|
|
c.TopAdministrators = append(c.TopAdministrators, value)
|
|
return nil
|
|
}); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_administrators: %w", err)
|
|
}
|
|
case "top_inviters":
|
|
if err := b.Arr(func(b tdjson.Decoder) error {
|
|
var value ChatStatisticsInviterInfo
|
|
if err := value.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_inviters: %w", err)
|
|
}
|
|
c.TopInviters = append(c.TopInviters, value)
|
|
return nil
|
|
}); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_inviters: %w", err)
|
|
}
|
|
default:
|
|
return b.Skip()
|
|
}
|
|
return nil
|
|
})
|
|
}
|
|
|
|
// GetPeriod returns value of Period field.
|
|
func (c *ChatStatisticsSupergroup) GetPeriod() (value DateRange) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.Period
|
|
}
|
|
|
|
// GetMemberCount returns value of MemberCount field.
|
|
func (c *ChatStatisticsSupergroup) GetMemberCount() (value StatisticalValue) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.MemberCount
|
|
}
|
|
|
|
// GetMessageCount returns value of MessageCount field.
|
|
func (c *ChatStatisticsSupergroup) GetMessageCount() (value StatisticalValue) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.MessageCount
|
|
}
|
|
|
|
// GetViewerCount returns value of ViewerCount field.
|
|
func (c *ChatStatisticsSupergroup) GetViewerCount() (value StatisticalValue) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.ViewerCount
|
|
}
|
|
|
|
// GetSenderCount returns value of SenderCount field.
|
|
func (c *ChatStatisticsSupergroup) GetSenderCount() (value StatisticalValue) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.SenderCount
|
|
}
|
|
|
|
// GetMemberCountGraph returns value of MemberCountGraph field.
|
|
func (c *ChatStatisticsSupergroup) GetMemberCountGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.MemberCountGraph
|
|
}
|
|
|
|
// GetJoinGraph returns value of JoinGraph field.
|
|
func (c *ChatStatisticsSupergroup) GetJoinGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.JoinGraph
|
|
}
|
|
|
|
// GetJoinBySourceGraph returns value of JoinBySourceGraph field.
|
|
func (c *ChatStatisticsSupergroup) GetJoinBySourceGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.JoinBySourceGraph
|
|
}
|
|
|
|
// GetLanguageGraph returns value of LanguageGraph field.
|
|
func (c *ChatStatisticsSupergroup) GetLanguageGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.LanguageGraph
|
|
}
|
|
|
|
// GetMessageContentGraph returns value of MessageContentGraph field.
|
|
func (c *ChatStatisticsSupergroup) GetMessageContentGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.MessageContentGraph
|
|
}
|
|
|
|
// GetActionGraph returns value of ActionGraph field.
|
|
func (c *ChatStatisticsSupergroup) GetActionGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.ActionGraph
|
|
}
|
|
|
|
// GetDayGraph returns value of DayGraph field.
|
|
func (c *ChatStatisticsSupergroup) GetDayGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.DayGraph
|
|
}
|
|
|
|
// GetWeekGraph returns value of WeekGraph field.
|
|
func (c *ChatStatisticsSupergroup) GetWeekGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.WeekGraph
|
|
}
|
|
|
|
// GetTopSenders returns value of TopSenders field.
|
|
func (c *ChatStatisticsSupergroup) GetTopSenders() (value []ChatStatisticsMessageSenderInfo) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.TopSenders
|
|
}
|
|
|
|
// GetTopAdministrators returns value of TopAdministrators field.
|
|
func (c *ChatStatisticsSupergroup) GetTopAdministrators() (value []ChatStatisticsAdministratorActionsInfo) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.TopAdministrators
|
|
}
|
|
|
|
// GetTopInviters returns value of TopInviters field.
|
|
func (c *ChatStatisticsSupergroup) GetTopInviters() (value []ChatStatisticsInviterInfo) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.TopInviters
|
|
}
|
|
|
|
// ChatStatisticsChannel represents TL type `chatStatisticsChannel#b8e95b4`.
|
|
type ChatStatisticsChannel struct {
|
|
// A period to which the statistics applies
|
|
Period DateRange
|
|
// Number of members in the chat
|
|
MemberCount StatisticalValue
|
|
// Mean number of times the recently sent messages were viewed
|
|
MeanMessageViewCount StatisticalValue
|
|
// Mean number of times the recently sent messages were shared
|
|
MeanMessageShareCount StatisticalValue
|
|
// Mean number of times reactions were added to the recently sent messages
|
|
MeanMessageReactionCount StatisticalValue
|
|
// Mean number of times the recently posted stories were viewed
|
|
MeanStoryViewCount StatisticalValue
|
|
// Mean number of times the recently posted stories were shared
|
|
MeanStoryShareCount StatisticalValue
|
|
// Mean number of times reactions were added to the recently posted stories
|
|
MeanStoryReactionCount StatisticalValue
|
|
// A percentage of users with enabled notifications for the chat; 0-100
|
|
EnabledNotificationsPercentage float64
|
|
// A graph containing number of members in the chat
|
|
MemberCountGraph StatisticalGraphClass
|
|
// A graph containing number of members joined and left the chat
|
|
JoinGraph StatisticalGraphClass
|
|
// A graph containing number of members muted and unmuted the chat
|
|
MuteGraph StatisticalGraphClass
|
|
// A graph containing number of message views in a given hour in the last two weeks
|
|
ViewCountByHourGraph StatisticalGraphClass
|
|
// A graph containing number of message views per source
|
|
ViewCountBySourceGraph StatisticalGraphClass
|
|
// A graph containing number of new member joins per source
|
|
JoinBySourceGraph StatisticalGraphClass
|
|
// A graph containing number of users viewed chat messages per language
|
|
LanguageGraph StatisticalGraphClass
|
|
// A graph containing number of chat message views and shares
|
|
MessageInteractionGraph StatisticalGraphClass
|
|
// A graph containing number of reactions on messages
|
|
MessageReactionGraph StatisticalGraphClass
|
|
// A graph containing number of story views and shares
|
|
StoryInteractionGraph StatisticalGraphClass
|
|
// A graph containing number of reactions on stories
|
|
StoryReactionGraph StatisticalGraphClass
|
|
// A graph containing number of views of associated with the chat instant views
|
|
InstantViewInteractionGraph StatisticalGraphClass
|
|
// Detailed statistics about number of views and shares of recently sent messages and
|
|
// posted stories
|
|
RecentInteractions []ChatStatisticsInteractionInfo
|
|
}
|
|
|
|
// ChatStatisticsChannelTypeID is TL type id of ChatStatisticsChannel.
|
|
const ChatStatisticsChannelTypeID = 0xb8e95b4
|
|
|
|
// construct implements constructor of ChatStatisticsClass.
|
|
func (c ChatStatisticsChannel) construct() ChatStatisticsClass { return &c }
|
|
|
|
// Ensuring interfaces in compile-time for ChatStatisticsChannel.
|
|
var (
|
|
_ bin.Encoder = &ChatStatisticsChannel{}
|
|
_ bin.Decoder = &ChatStatisticsChannel{}
|
|
_ bin.BareEncoder = &ChatStatisticsChannel{}
|
|
_ bin.BareDecoder = &ChatStatisticsChannel{}
|
|
|
|
_ ChatStatisticsClass = &ChatStatisticsChannel{}
|
|
)
|
|
|
|
func (c *ChatStatisticsChannel) Zero() bool {
|
|
if c == nil {
|
|
return true
|
|
}
|
|
if !(c.Period.Zero()) {
|
|
return false
|
|
}
|
|
if !(c.MemberCount.Zero()) {
|
|
return false
|
|
}
|
|
if !(c.MeanMessageViewCount.Zero()) {
|
|
return false
|
|
}
|
|
if !(c.MeanMessageShareCount.Zero()) {
|
|
return false
|
|
}
|
|
if !(c.MeanMessageReactionCount.Zero()) {
|
|
return false
|
|
}
|
|
if !(c.MeanStoryViewCount.Zero()) {
|
|
return false
|
|
}
|
|
if !(c.MeanStoryShareCount.Zero()) {
|
|
return false
|
|
}
|
|
if !(c.MeanStoryReactionCount.Zero()) {
|
|
return false
|
|
}
|
|
if !(c.EnabledNotificationsPercentage == 0) {
|
|
return false
|
|
}
|
|
if !(c.MemberCountGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.JoinGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.MuteGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.ViewCountByHourGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.ViewCountBySourceGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.JoinBySourceGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.LanguageGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.MessageInteractionGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.MessageReactionGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.StoryInteractionGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.StoryReactionGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.InstantViewInteractionGraph == nil) {
|
|
return false
|
|
}
|
|
if !(c.RecentInteractions == nil) {
|
|
return false
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
// String implements fmt.Stringer.
|
|
func (c *ChatStatisticsChannel) String() string {
|
|
if c == nil {
|
|
return "ChatStatisticsChannel(nil)"
|
|
}
|
|
type Alias ChatStatisticsChannel
|
|
return fmt.Sprintf("ChatStatisticsChannel%+v", Alias(*c))
|
|
}
|
|
|
|
// TypeID returns type id in TL schema.
|
|
//
|
|
// See https://core.telegram.org/mtproto/TL-tl#remarks.
|
|
func (*ChatStatisticsChannel) TypeID() uint32 {
|
|
return ChatStatisticsChannelTypeID
|
|
}
|
|
|
|
// TypeName returns name of type in TL schema.
|
|
func (*ChatStatisticsChannel) TypeName() string {
|
|
return "chatStatisticsChannel"
|
|
}
|
|
|
|
// TypeInfo returns info about TL type.
|
|
func (c *ChatStatisticsChannel) TypeInfo() tdp.Type {
|
|
typ := tdp.Type{
|
|
Name: "chatStatisticsChannel",
|
|
ID: ChatStatisticsChannelTypeID,
|
|
}
|
|
if c == nil {
|
|
typ.Null = true
|
|
return typ
|
|
}
|
|
typ.Fields = []tdp.Field{
|
|
{
|
|
Name: "Period",
|
|
SchemaName: "period",
|
|
},
|
|
{
|
|
Name: "MemberCount",
|
|
SchemaName: "member_count",
|
|
},
|
|
{
|
|
Name: "MeanMessageViewCount",
|
|
SchemaName: "mean_message_view_count",
|
|
},
|
|
{
|
|
Name: "MeanMessageShareCount",
|
|
SchemaName: "mean_message_share_count",
|
|
},
|
|
{
|
|
Name: "MeanMessageReactionCount",
|
|
SchemaName: "mean_message_reaction_count",
|
|
},
|
|
{
|
|
Name: "MeanStoryViewCount",
|
|
SchemaName: "mean_story_view_count",
|
|
},
|
|
{
|
|
Name: "MeanStoryShareCount",
|
|
SchemaName: "mean_story_share_count",
|
|
},
|
|
{
|
|
Name: "MeanStoryReactionCount",
|
|
SchemaName: "mean_story_reaction_count",
|
|
},
|
|
{
|
|
Name: "EnabledNotificationsPercentage",
|
|
SchemaName: "enabled_notifications_percentage",
|
|
},
|
|
{
|
|
Name: "MemberCountGraph",
|
|
SchemaName: "member_count_graph",
|
|
},
|
|
{
|
|
Name: "JoinGraph",
|
|
SchemaName: "join_graph",
|
|
},
|
|
{
|
|
Name: "MuteGraph",
|
|
SchemaName: "mute_graph",
|
|
},
|
|
{
|
|
Name: "ViewCountByHourGraph",
|
|
SchemaName: "view_count_by_hour_graph",
|
|
},
|
|
{
|
|
Name: "ViewCountBySourceGraph",
|
|
SchemaName: "view_count_by_source_graph",
|
|
},
|
|
{
|
|
Name: "JoinBySourceGraph",
|
|
SchemaName: "join_by_source_graph",
|
|
},
|
|
{
|
|
Name: "LanguageGraph",
|
|
SchemaName: "language_graph",
|
|
},
|
|
{
|
|
Name: "MessageInteractionGraph",
|
|
SchemaName: "message_interaction_graph",
|
|
},
|
|
{
|
|
Name: "MessageReactionGraph",
|
|
SchemaName: "message_reaction_graph",
|
|
},
|
|
{
|
|
Name: "StoryInteractionGraph",
|
|
SchemaName: "story_interaction_graph",
|
|
},
|
|
{
|
|
Name: "StoryReactionGraph",
|
|
SchemaName: "story_reaction_graph",
|
|
},
|
|
{
|
|
Name: "InstantViewInteractionGraph",
|
|
SchemaName: "instant_view_interaction_graph",
|
|
},
|
|
{
|
|
Name: "RecentInteractions",
|
|
SchemaName: "recent_interactions",
|
|
},
|
|
}
|
|
return typ
|
|
}
|
|
|
|
// Encode implements bin.Encoder.
|
|
func (c *ChatStatisticsChannel) Encode(b *bin.Buffer) error {
|
|
if c == nil {
|
|
return fmt.Errorf("can't encode chatStatisticsChannel#b8e95b4 as nil")
|
|
}
|
|
b.PutID(ChatStatisticsChannelTypeID)
|
|
return c.EncodeBare(b)
|
|
}
|
|
|
|
// EncodeBare implements bin.BareEncoder.
|
|
func (c *ChatStatisticsChannel) EncodeBare(b *bin.Buffer) error {
|
|
if c == nil {
|
|
return fmt.Errorf("can't encode chatStatisticsChannel#b8e95b4 as nil")
|
|
}
|
|
if err := c.Period.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field period: %w", err)
|
|
}
|
|
if err := c.MemberCount.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field member_count: %w", err)
|
|
}
|
|
if err := c.MeanMessageViewCount.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_message_view_count: %w", err)
|
|
}
|
|
if err := c.MeanMessageShareCount.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_message_share_count: %w", err)
|
|
}
|
|
if err := c.MeanMessageReactionCount.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_message_reaction_count: %w", err)
|
|
}
|
|
if err := c.MeanStoryViewCount.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_story_view_count: %w", err)
|
|
}
|
|
if err := c.MeanStoryShareCount.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_story_share_count: %w", err)
|
|
}
|
|
if err := c.MeanStoryReactionCount.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_story_reaction_count: %w", err)
|
|
}
|
|
b.PutDouble(c.EnabledNotificationsPercentage)
|
|
if c.MemberCountGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field member_count_graph is nil")
|
|
}
|
|
if err := c.MemberCountGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field member_count_graph: %w", err)
|
|
}
|
|
if c.JoinGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field join_graph is nil")
|
|
}
|
|
if err := c.JoinGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field join_graph: %w", err)
|
|
}
|
|
if c.MuteGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mute_graph is nil")
|
|
}
|
|
if err := c.MuteGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mute_graph: %w", err)
|
|
}
|
|
if c.ViewCountByHourGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field view_count_by_hour_graph is nil")
|
|
}
|
|
if err := c.ViewCountByHourGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field view_count_by_hour_graph: %w", err)
|
|
}
|
|
if c.ViewCountBySourceGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field view_count_by_source_graph is nil")
|
|
}
|
|
if err := c.ViewCountBySourceGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field view_count_by_source_graph: %w", err)
|
|
}
|
|
if c.JoinBySourceGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field join_by_source_graph is nil")
|
|
}
|
|
if err := c.JoinBySourceGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field join_by_source_graph: %w", err)
|
|
}
|
|
if c.LanguageGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field language_graph is nil")
|
|
}
|
|
if err := c.LanguageGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field language_graph: %w", err)
|
|
}
|
|
if c.MessageInteractionGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field message_interaction_graph is nil")
|
|
}
|
|
if err := c.MessageInteractionGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field message_interaction_graph: %w", err)
|
|
}
|
|
if c.MessageReactionGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field message_reaction_graph is nil")
|
|
}
|
|
if err := c.MessageReactionGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field message_reaction_graph: %w", err)
|
|
}
|
|
if c.StoryInteractionGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field story_interaction_graph is nil")
|
|
}
|
|
if err := c.StoryInteractionGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field story_interaction_graph: %w", err)
|
|
}
|
|
if c.StoryReactionGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field story_reaction_graph is nil")
|
|
}
|
|
if err := c.StoryReactionGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field story_reaction_graph: %w", err)
|
|
}
|
|
if c.InstantViewInteractionGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field instant_view_interaction_graph is nil")
|
|
}
|
|
if err := c.InstantViewInteractionGraph.Encode(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field instant_view_interaction_graph: %w", err)
|
|
}
|
|
b.PutInt(len(c.RecentInteractions))
|
|
for idx, v := range c.RecentInteractions {
|
|
if err := v.EncodeBare(b); err != nil {
|
|
return fmt.Errorf("unable to encode bare chatStatisticsChannel#b8e95b4: field recent_interactions element with index %d: %w", idx, err)
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Decode implements bin.Decoder.
|
|
func (c *ChatStatisticsChannel) Decode(b *bin.Buffer) error {
|
|
if c == nil {
|
|
return fmt.Errorf("can't decode chatStatisticsChannel#b8e95b4 to nil")
|
|
}
|
|
if err := b.ConsumeID(ChatStatisticsChannelTypeID); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: %w", err)
|
|
}
|
|
return c.DecodeBare(b)
|
|
}
|
|
|
|
// DecodeBare implements bin.BareDecoder.
|
|
func (c *ChatStatisticsChannel) DecodeBare(b *bin.Buffer) error {
|
|
if c == nil {
|
|
return fmt.Errorf("can't decode chatStatisticsChannel#b8e95b4 to nil")
|
|
}
|
|
{
|
|
if err := c.Period.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field period: %w", err)
|
|
}
|
|
}
|
|
{
|
|
if err := c.MemberCount.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field member_count: %w", err)
|
|
}
|
|
}
|
|
{
|
|
if err := c.MeanMessageViewCount.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_message_view_count: %w", err)
|
|
}
|
|
}
|
|
{
|
|
if err := c.MeanMessageShareCount.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_message_share_count: %w", err)
|
|
}
|
|
}
|
|
{
|
|
if err := c.MeanMessageReactionCount.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_message_reaction_count: %w", err)
|
|
}
|
|
}
|
|
{
|
|
if err := c.MeanStoryViewCount.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_story_view_count: %w", err)
|
|
}
|
|
}
|
|
{
|
|
if err := c.MeanStoryShareCount.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_story_share_count: %w", err)
|
|
}
|
|
}
|
|
{
|
|
if err := c.MeanStoryReactionCount.Decode(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_story_reaction_count: %w", err)
|
|
}
|
|
}
|
|
{
|
|
value, err := b.Double()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field enabled_notifications_percentage: %w", err)
|
|
}
|
|
c.EnabledNotificationsPercentage = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field member_count_graph: %w", err)
|
|
}
|
|
c.MemberCountGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field join_graph: %w", err)
|
|
}
|
|
c.JoinGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mute_graph: %w", err)
|
|
}
|
|
c.MuteGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field view_count_by_hour_graph: %w", err)
|
|
}
|
|
c.ViewCountByHourGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field view_count_by_source_graph: %w", err)
|
|
}
|
|
c.ViewCountBySourceGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field join_by_source_graph: %w", err)
|
|
}
|
|
c.JoinBySourceGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field language_graph: %w", err)
|
|
}
|
|
c.LanguageGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field message_interaction_graph: %w", err)
|
|
}
|
|
c.MessageInteractionGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field message_reaction_graph: %w", err)
|
|
}
|
|
c.MessageReactionGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field story_interaction_graph: %w", err)
|
|
}
|
|
c.StoryInteractionGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field story_reaction_graph: %w", err)
|
|
}
|
|
c.StoryReactionGraph = value
|
|
}
|
|
{
|
|
value, err := DecodeStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field instant_view_interaction_graph: %w", err)
|
|
}
|
|
c.InstantViewInteractionGraph = value
|
|
}
|
|
{
|
|
headerLen, err := b.Int()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field recent_interactions: %w", err)
|
|
}
|
|
|
|
if headerLen > 0 {
|
|
c.RecentInteractions = make([]ChatStatisticsInteractionInfo, 0, headerLen%bin.PreallocateLimit)
|
|
}
|
|
for idx := 0; idx < headerLen; idx++ {
|
|
var value ChatStatisticsInteractionInfo
|
|
if err := value.DecodeBare(b); err != nil {
|
|
return fmt.Errorf("unable to decode bare chatStatisticsChannel#b8e95b4: field recent_interactions: %w", err)
|
|
}
|
|
c.RecentInteractions = append(c.RecentInteractions, value)
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// EncodeTDLibJSON implements tdjson.TDLibEncoder.
|
|
func (c *ChatStatisticsChannel) EncodeTDLibJSON(b tdjson.Encoder) error {
|
|
if c == nil {
|
|
return fmt.Errorf("can't encode chatStatisticsChannel#b8e95b4 as nil")
|
|
}
|
|
b.ObjStart()
|
|
b.PutID("chatStatisticsChannel")
|
|
b.Comma()
|
|
b.FieldStart("period")
|
|
if err := c.Period.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field period: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("member_count")
|
|
if err := c.MemberCount.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field member_count: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("mean_message_view_count")
|
|
if err := c.MeanMessageViewCount.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_message_view_count: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("mean_message_share_count")
|
|
if err := c.MeanMessageShareCount.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_message_share_count: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("mean_message_reaction_count")
|
|
if err := c.MeanMessageReactionCount.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_message_reaction_count: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("mean_story_view_count")
|
|
if err := c.MeanStoryViewCount.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_story_view_count: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("mean_story_share_count")
|
|
if err := c.MeanStoryShareCount.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_story_share_count: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("mean_story_reaction_count")
|
|
if err := c.MeanStoryReactionCount.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_story_reaction_count: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("enabled_notifications_percentage")
|
|
b.PutDouble(c.EnabledNotificationsPercentage)
|
|
b.Comma()
|
|
b.FieldStart("member_count_graph")
|
|
if c.MemberCountGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field member_count_graph is nil")
|
|
}
|
|
if err := c.MemberCountGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field member_count_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("join_graph")
|
|
if c.JoinGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field join_graph is nil")
|
|
}
|
|
if err := c.JoinGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field join_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("mute_graph")
|
|
if c.MuteGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mute_graph is nil")
|
|
}
|
|
if err := c.MuteGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mute_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("view_count_by_hour_graph")
|
|
if c.ViewCountByHourGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field view_count_by_hour_graph is nil")
|
|
}
|
|
if err := c.ViewCountByHourGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field view_count_by_hour_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("view_count_by_source_graph")
|
|
if c.ViewCountBySourceGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field view_count_by_source_graph is nil")
|
|
}
|
|
if err := c.ViewCountBySourceGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field view_count_by_source_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("join_by_source_graph")
|
|
if c.JoinBySourceGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field join_by_source_graph is nil")
|
|
}
|
|
if err := c.JoinBySourceGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field join_by_source_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("language_graph")
|
|
if c.LanguageGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field language_graph is nil")
|
|
}
|
|
if err := c.LanguageGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field language_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("message_interaction_graph")
|
|
if c.MessageInteractionGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field message_interaction_graph is nil")
|
|
}
|
|
if err := c.MessageInteractionGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field message_interaction_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("message_reaction_graph")
|
|
if c.MessageReactionGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field message_reaction_graph is nil")
|
|
}
|
|
if err := c.MessageReactionGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field message_reaction_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("story_interaction_graph")
|
|
if c.StoryInteractionGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field story_interaction_graph is nil")
|
|
}
|
|
if err := c.StoryInteractionGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field story_interaction_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("story_reaction_graph")
|
|
if c.StoryReactionGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field story_reaction_graph is nil")
|
|
}
|
|
if err := c.StoryReactionGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field story_reaction_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("instant_view_interaction_graph")
|
|
if c.InstantViewInteractionGraph == nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field instant_view_interaction_graph is nil")
|
|
}
|
|
if err := c.InstantViewInteractionGraph.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field instant_view_interaction_graph: %w", err)
|
|
}
|
|
b.Comma()
|
|
b.FieldStart("recent_interactions")
|
|
b.ArrStart()
|
|
for idx, v := range c.RecentInteractions {
|
|
if err := v.EncodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field recent_interactions element with index %d: %w", idx, err)
|
|
}
|
|
b.Comma()
|
|
}
|
|
b.StripComma()
|
|
b.ArrEnd()
|
|
b.Comma()
|
|
b.StripComma()
|
|
b.ObjEnd()
|
|
return nil
|
|
}
|
|
|
|
// DecodeTDLibJSON implements tdjson.TDLibDecoder.
|
|
func (c *ChatStatisticsChannel) DecodeTDLibJSON(b tdjson.Decoder) error {
|
|
if c == nil {
|
|
return fmt.Errorf("can't decode chatStatisticsChannel#b8e95b4 to nil")
|
|
}
|
|
|
|
return b.Obj(func(b tdjson.Decoder, key []byte) error {
|
|
switch string(key) {
|
|
case tdjson.TypeField:
|
|
if err := b.ConsumeID("chatStatisticsChannel"); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: %w", err)
|
|
}
|
|
case "period":
|
|
if err := c.Period.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field period: %w", err)
|
|
}
|
|
case "member_count":
|
|
if err := c.MemberCount.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field member_count: %w", err)
|
|
}
|
|
case "mean_message_view_count":
|
|
if err := c.MeanMessageViewCount.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_message_view_count: %w", err)
|
|
}
|
|
case "mean_message_share_count":
|
|
if err := c.MeanMessageShareCount.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_message_share_count: %w", err)
|
|
}
|
|
case "mean_message_reaction_count":
|
|
if err := c.MeanMessageReactionCount.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_message_reaction_count: %w", err)
|
|
}
|
|
case "mean_story_view_count":
|
|
if err := c.MeanStoryViewCount.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_story_view_count: %w", err)
|
|
}
|
|
case "mean_story_share_count":
|
|
if err := c.MeanStoryShareCount.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_story_share_count: %w", err)
|
|
}
|
|
case "mean_story_reaction_count":
|
|
if err := c.MeanStoryReactionCount.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_story_reaction_count: %w", err)
|
|
}
|
|
case "enabled_notifications_percentage":
|
|
value, err := b.Double()
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field enabled_notifications_percentage: %w", err)
|
|
}
|
|
c.EnabledNotificationsPercentage = value
|
|
case "member_count_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field member_count_graph: %w", err)
|
|
}
|
|
c.MemberCountGraph = value
|
|
case "join_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field join_graph: %w", err)
|
|
}
|
|
c.JoinGraph = value
|
|
case "mute_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mute_graph: %w", err)
|
|
}
|
|
c.MuteGraph = value
|
|
case "view_count_by_hour_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field view_count_by_hour_graph: %w", err)
|
|
}
|
|
c.ViewCountByHourGraph = value
|
|
case "view_count_by_source_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field view_count_by_source_graph: %w", err)
|
|
}
|
|
c.ViewCountBySourceGraph = value
|
|
case "join_by_source_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field join_by_source_graph: %w", err)
|
|
}
|
|
c.JoinBySourceGraph = value
|
|
case "language_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field language_graph: %w", err)
|
|
}
|
|
c.LanguageGraph = value
|
|
case "message_interaction_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field message_interaction_graph: %w", err)
|
|
}
|
|
c.MessageInteractionGraph = value
|
|
case "message_reaction_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field message_reaction_graph: %w", err)
|
|
}
|
|
c.MessageReactionGraph = value
|
|
case "story_interaction_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field story_interaction_graph: %w", err)
|
|
}
|
|
c.StoryInteractionGraph = value
|
|
case "story_reaction_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field story_reaction_graph: %w", err)
|
|
}
|
|
c.StoryReactionGraph = value
|
|
case "instant_view_interaction_graph":
|
|
value, err := DecodeTDLibJSONStatisticalGraph(b)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field instant_view_interaction_graph: %w", err)
|
|
}
|
|
c.InstantViewInteractionGraph = value
|
|
case "recent_interactions":
|
|
if err := b.Arr(func(b tdjson.Decoder) error {
|
|
var value ChatStatisticsInteractionInfo
|
|
if err := value.DecodeTDLibJSON(b); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field recent_interactions: %w", err)
|
|
}
|
|
c.RecentInteractions = append(c.RecentInteractions, value)
|
|
return nil
|
|
}); err != nil {
|
|
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field recent_interactions: %w", err)
|
|
}
|
|
default:
|
|
return b.Skip()
|
|
}
|
|
return nil
|
|
})
|
|
}
|
|
|
|
// GetPeriod returns value of Period field.
|
|
func (c *ChatStatisticsChannel) GetPeriod() (value DateRange) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.Period
|
|
}
|
|
|
|
// GetMemberCount returns value of MemberCount field.
|
|
func (c *ChatStatisticsChannel) GetMemberCount() (value StatisticalValue) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.MemberCount
|
|
}
|
|
|
|
// GetMeanMessageViewCount returns value of MeanMessageViewCount field.
|
|
func (c *ChatStatisticsChannel) GetMeanMessageViewCount() (value StatisticalValue) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.MeanMessageViewCount
|
|
}
|
|
|
|
// GetMeanMessageShareCount returns value of MeanMessageShareCount field.
|
|
func (c *ChatStatisticsChannel) GetMeanMessageShareCount() (value StatisticalValue) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.MeanMessageShareCount
|
|
}
|
|
|
|
// GetMeanMessageReactionCount returns value of MeanMessageReactionCount field.
|
|
func (c *ChatStatisticsChannel) GetMeanMessageReactionCount() (value StatisticalValue) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.MeanMessageReactionCount
|
|
}
|
|
|
|
// GetMeanStoryViewCount returns value of MeanStoryViewCount field.
|
|
func (c *ChatStatisticsChannel) GetMeanStoryViewCount() (value StatisticalValue) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.MeanStoryViewCount
|
|
}
|
|
|
|
// GetMeanStoryShareCount returns value of MeanStoryShareCount field.
|
|
func (c *ChatStatisticsChannel) GetMeanStoryShareCount() (value StatisticalValue) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.MeanStoryShareCount
|
|
}
|
|
|
|
// GetMeanStoryReactionCount returns value of MeanStoryReactionCount field.
|
|
func (c *ChatStatisticsChannel) GetMeanStoryReactionCount() (value StatisticalValue) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.MeanStoryReactionCount
|
|
}
|
|
|
|
// GetEnabledNotificationsPercentage returns value of EnabledNotificationsPercentage field.
|
|
func (c *ChatStatisticsChannel) GetEnabledNotificationsPercentage() (value float64) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.EnabledNotificationsPercentage
|
|
}
|
|
|
|
// GetMemberCountGraph returns value of MemberCountGraph field.
|
|
func (c *ChatStatisticsChannel) GetMemberCountGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.MemberCountGraph
|
|
}
|
|
|
|
// GetJoinGraph returns value of JoinGraph field.
|
|
func (c *ChatStatisticsChannel) GetJoinGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.JoinGraph
|
|
}
|
|
|
|
// GetMuteGraph returns value of MuteGraph field.
|
|
func (c *ChatStatisticsChannel) GetMuteGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.MuteGraph
|
|
}
|
|
|
|
// GetViewCountByHourGraph returns value of ViewCountByHourGraph field.
|
|
func (c *ChatStatisticsChannel) GetViewCountByHourGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.ViewCountByHourGraph
|
|
}
|
|
|
|
// GetViewCountBySourceGraph returns value of ViewCountBySourceGraph field.
|
|
func (c *ChatStatisticsChannel) GetViewCountBySourceGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.ViewCountBySourceGraph
|
|
}
|
|
|
|
// GetJoinBySourceGraph returns value of JoinBySourceGraph field.
|
|
func (c *ChatStatisticsChannel) GetJoinBySourceGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.JoinBySourceGraph
|
|
}
|
|
|
|
// GetLanguageGraph returns value of LanguageGraph field.
|
|
func (c *ChatStatisticsChannel) GetLanguageGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.LanguageGraph
|
|
}
|
|
|
|
// GetMessageInteractionGraph returns value of MessageInteractionGraph field.
|
|
func (c *ChatStatisticsChannel) GetMessageInteractionGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.MessageInteractionGraph
|
|
}
|
|
|
|
// GetMessageReactionGraph returns value of MessageReactionGraph field.
|
|
func (c *ChatStatisticsChannel) GetMessageReactionGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.MessageReactionGraph
|
|
}
|
|
|
|
// GetStoryInteractionGraph returns value of StoryInteractionGraph field.
|
|
func (c *ChatStatisticsChannel) GetStoryInteractionGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.StoryInteractionGraph
|
|
}
|
|
|
|
// GetStoryReactionGraph returns value of StoryReactionGraph field.
|
|
func (c *ChatStatisticsChannel) GetStoryReactionGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.StoryReactionGraph
|
|
}
|
|
|
|
// GetInstantViewInteractionGraph returns value of InstantViewInteractionGraph field.
|
|
func (c *ChatStatisticsChannel) GetInstantViewInteractionGraph() (value StatisticalGraphClass) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.InstantViewInteractionGraph
|
|
}
|
|
|
|
// GetRecentInteractions returns value of RecentInteractions field.
|
|
func (c *ChatStatisticsChannel) GetRecentInteractions() (value []ChatStatisticsInteractionInfo) {
|
|
if c == nil {
|
|
return
|
|
}
|
|
return c.RecentInteractions
|
|
}
|
|
|
|
// ChatStatisticsClassName is schema name of ChatStatisticsClass.
|
|
const ChatStatisticsClassName = "ChatStatistics"
|
|
|
|
// ChatStatisticsClass represents ChatStatistics generic type.
|
|
//
|
|
// Example:
|
|
//
|
|
// g, err := tdapi.DecodeChatStatistics(buf)
|
|
// if err != nil {
|
|
// panic(err)
|
|
// }
|
|
// switch v := g.(type) {
|
|
// case *tdapi.ChatStatisticsSupergroup: // chatStatisticsSupergroup#c67549ef
|
|
// case *tdapi.ChatStatisticsChannel: // chatStatisticsChannel#b8e95b4
|
|
// default: panic(v)
|
|
// }
|
|
type ChatStatisticsClass interface {
|
|
bin.Encoder
|
|
bin.Decoder
|
|
bin.BareEncoder
|
|
bin.BareDecoder
|
|
construct() ChatStatisticsClass
|
|
|
|
// TypeID returns type id in TL schema.
|
|
//
|
|
// See https://core.telegram.org/mtproto/TL-tl#remarks.
|
|
TypeID() uint32
|
|
// TypeName returns name of type in TL schema.
|
|
TypeName() string
|
|
// String implements fmt.Stringer.
|
|
String() string
|
|
// Zero returns true if current object has a zero value.
|
|
Zero() bool
|
|
|
|
EncodeTDLibJSON(b tdjson.Encoder) error
|
|
DecodeTDLibJSON(b tdjson.Decoder) error
|
|
|
|
// A period to which the statistics applies
|
|
GetPeriod() (value DateRange)
|
|
// Number of members in the chat
|
|
GetMemberCount() (value StatisticalValue)
|
|
// A graph containing number of members in the chat
|
|
GetMemberCountGraph() (value StatisticalGraphClass)
|
|
// A graph containing number of members joined and left the chat
|
|
GetJoinGraph() (value StatisticalGraphClass)
|
|
// A graph containing number of new member joins per source
|
|
GetJoinBySourceGraph() (value StatisticalGraphClass)
|
|
// A graph containing distribution of active users per language
|
|
GetLanguageGraph() (value StatisticalGraphClass)
|
|
}
|
|
|
|
// DecodeChatStatistics implements binary de-serialization for ChatStatisticsClass.
|
|
func DecodeChatStatistics(buf *bin.Buffer) (ChatStatisticsClass, error) {
|
|
id, err := buf.PeekID()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
switch id {
|
|
case ChatStatisticsSupergroupTypeID:
|
|
// Decoding chatStatisticsSupergroup#c67549ef.
|
|
v := ChatStatisticsSupergroup{}
|
|
if err := v.Decode(buf); err != nil {
|
|
return nil, fmt.Errorf("unable to decode ChatStatisticsClass: %w", err)
|
|
}
|
|
return &v, nil
|
|
case ChatStatisticsChannelTypeID:
|
|
// Decoding chatStatisticsChannel#b8e95b4.
|
|
v := ChatStatisticsChannel{}
|
|
if err := v.Decode(buf); err != nil {
|
|
return nil, fmt.Errorf("unable to decode ChatStatisticsClass: %w", err)
|
|
}
|
|
return &v, nil
|
|
default:
|
|
return nil, fmt.Errorf("unable to decode ChatStatisticsClass: %w", bin.NewUnexpectedID(id))
|
|
}
|
|
}
|
|
|
|
// DecodeTDLibJSONChatStatistics implements binary de-serialization for ChatStatisticsClass.
|
|
func DecodeTDLibJSONChatStatistics(buf tdjson.Decoder) (ChatStatisticsClass, error) {
|
|
id, err := buf.FindTypeID()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
switch id {
|
|
case "chatStatisticsSupergroup":
|
|
// Decoding chatStatisticsSupergroup#c67549ef.
|
|
v := ChatStatisticsSupergroup{}
|
|
if err := v.DecodeTDLibJSON(buf); err != nil {
|
|
return nil, fmt.Errorf("unable to decode ChatStatisticsClass: %w", err)
|
|
}
|
|
return &v, nil
|
|
case "chatStatisticsChannel":
|
|
// Decoding chatStatisticsChannel#b8e95b4.
|
|
v := ChatStatisticsChannel{}
|
|
if err := v.DecodeTDLibJSON(buf); err != nil {
|
|
return nil, fmt.Errorf("unable to decode ChatStatisticsClass: %w", err)
|
|
}
|
|
return &v, nil
|
|
default:
|
|
return nil, fmt.Errorf("unable to decode ChatStatisticsClass: %w", tdjson.NewUnexpectedID(id))
|
|
}
|
|
}
|
|
|
|
// ChatStatistics boxes the ChatStatisticsClass providing a helper.
|
|
type ChatStatisticsBox struct {
|
|
ChatStatistics ChatStatisticsClass
|
|
}
|
|
|
|
// Decode implements bin.Decoder for ChatStatisticsBox.
|
|
func (b *ChatStatisticsBox) Decode(buf *bin.Buffer) error {
|
|
if b == nil {
|
|
return fmt.Errorf("unable to decode ChatStatisticsBox to nil")
|
|
}
|
|
v, err := DecodeChatStatistics(buf)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode boxed value: %w", err)
|
|
}
|
|
b.ChatStatistics = v
|
|
return nil
|
|
}
|
|
|
|
// Encode implements bin.Encode for ChatStatisticsBox.
|
|
func (b *ChatStatisticsBox) Encode(buf *bin.Buffer) error {
|
|
if b == nil || b.ChatStatistics == nil {
|
|
return fmt.Errorf("unable to encode ChatStatisticsClass as nil")
|
|
}
|
|
return b.ChatStatistics.Encode(buf)
|
|
}
|
|
|
|
// DecodeTDLibJSON implements bin.Decoder for ChatStatisticsBox.
|
|
func (b *ChatStatisticsBox) DecodeTDLibJSON(buf tdjson.Decoder) error {
|
|
if b == nil {
|
|
return fmt.Errorf("unable to decode ChatStatisticsBox to nil")
|
|
}
|
|
v, err := DecodeTDLibJSONChatStatistics(buf)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to decode boxed value: %w", err)
|
|
}
|
|
b.ChatStatistics = v
|
|
return nil
|
|
}
|
|
|
|
// EncodeTDLibJSON implements bin.Encode for ChatStatisticsBox.
|
|
func (b *ChatStatisticsBox) EncodeTDLibJSON(buf tdjson.Encoder) error {
|
|
if b == nil || b.ChatStatistics == nil {
|
|
return fmt.Errorf("unable to encode ChatStatisticsClass as nil")
|
|
}
|
|
return b.ChatStatistics.EncodeTDLibJSON(buf)
|
|
}
|