move gotd fork into repo. (#111)
- 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
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
package members
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
|
||||
)
|
||||
|
||||
// AdminRights represents admin right settings.
|
||||
type AdminRights struct {
|
||||
// Indicates the role (rank) of the admin in the group: just an arbitrary string.
|
||||
//
|
||||
// If empty, will not be used.
|
||||
Rank string
|
||||
// If set, allows the admin to modify the description of the channel/supergroup.
|
||||
ChangeInfo bool
|
||||
// If set, allows the admin to post messages in the channel.
|
||||
PostMessages bool
|
||||
// If set, allows the admin to also edit messages from other admins in the channel.
|
||||
EditMessages bool
|
||||
// If set, allows the admin to also delete messages from other admins in the channel.
|
||||
DeleteMessages bool
|
||||
// If set, allows the admin to ban users from the channel/supergroup.
|
||||
BanUsers bool
|
||||
// If set, allows the admin to invite users in the channel/supergroup.
|
||||
InviteUsers bool
|
||||
// If set, allows the admin to pin messages in the channel/supergroup.
|
||||
PinMessages bool
|
||||
// If set, allows the admin to add other admins with the same (or more limited)
|
||||
// permissions in the channel/supergroup.
|
||||
AddAdmins bool
|
||||
// Whether this admin is anonymous.
|
||||
Anonymous bool
|
||||
// If set, allows the admin to change group call/livestream settings.
|
||||
ManageCall bool
|
||||
// Set this flag if none of the other flags are set, but you still want the user to be an
|
||||
// admin.
|
||||
Other bool
|
||||
}
|
||||
|
||||
// IntoChatAdminRights converts AdminRights into tg.ChatAdminRights.
|
||||
func (b AdminRights) IntoChatAdminRights() (r tg.ChatAdminRights) {
|
||||
r.ChangeInfo = b.ChangeInfo
|
||||
r.PostMessages = b.PostMessages
|
||||
r.EditMessages = b.EditMessages
|
||||
r.DeleteMessages = b.DeleteMessages
|
||||
r.BanUsers = b.BanUsers
|
||||
r.InviteUsers = b.InviteUsers
|
||||
r.PinMessages = b.PinMessages
|
||||
r.AddAdmins = b.AddAdmins
|
||||
r.Anonymous = b.Anonymous
|
||||
r.ManageCall = b.ManageCall
|
||||
r.Other = b.Other
|
||||
r.SetFlags()
|
||||
return r
|
||||
}
|
||||
|
||||
// MemberRights represents member right settings.
|
||||
type MemberRights struct {
|
||||
// If set, does not allow a user to view messages in a supergroup/channel/chat.
|
||||
//
|
||||
// In fact, user will be kicked.
|
||||
DenyViewMessages bool
|
||||
// If set, does not allow a user to send messages in a supergroup/chat.
|
||||
DenySendMessages bool
|
||||
// If set, does not allow a user to send any media in a supergroup/chat.
|
||||
DenySendMedia bool
|
||||
// If set, does not allow a user to send stickers in a supergroup/chat.
|
||||
DenySendStickers bool
|
||||
// If set, does not allow a user to send gifs in a supergroup/chat.
|
||||
DenySendGifs bool
|
||||
// If set, does not allow a user to send games in a supergroup/chat.
|
||||
DenySendGames bool
|
||||
// If set, does not allow a user to use inline bots in a supergroup/chat.
|
||||
DenySendInline bool
|
||||
// If set, does not allow a user to embed links in the messages of a supergroup/chat.
|
||||
DenyEmbedLinks bool
|
||||
// If set, does not allow a user to send polls in a supergroup/chat.
|
||||
DenySendPolls bool
|
||||
// If set, does not allow any user to change the description of a supergroup/chat.
|
||||
DenyChangeInfo bool
|
||||
// If set, does not allow any user to invite users in a supergroup/chat.
|
||||
DenyInviteUsers bool
|
||||
// If set, does not allow any user to pin messages in a supergroup/chat.
|
||||
DenyPinMessages bool
|
||||
// Validity of said permissions (it is considered forever any value less than 30 seconds or more than 366 days).
|
||||
//
|
||||
// If value is zero, value will not be used.
|
||||
UntilDate time.Time
|
||||
}
|
||||
|
||||
// ApplyFor sets duration of validity of set rights.
|
||||
func (b *MemberRights) ApplyFor(d time.Duration) {
|
||||
b.UntilDate = time.Now().Add(d)
|
||||
}
|
||||
|
||||
// IntoChatBannedRights converts MemberRights into tg.ChatBannedRights.
|
||||
func (b MemberRights) IntoChatBannedRights() (r tg.ChatBannedRights) {
|
||||
r = tg.ChatBannedRights{
|
||||
ViewMessages: b.DenyViewMessages,
|
||||
SendMessages: b.DenySendMessages,
|
||||
SendMedia: b.DenySendMedia,
|
||||
SendStickers: b.DenySendStickers,
|
||||
SendGifs: b.DenySendGifs,
|
||||
SendGames: b.DenySendGames,
|
||||
SendInline: b.DenySendInline,
|
||||
EmbedLinks: b.DenyEmbedLinks,
|
||||
SendPolls: b.DenySendPolls,
|
||||
ChangeInfo: b.DenyChangeInfo,
|
||||
InviteUsers: b.DenyInviteUsers,
|
||||
PinMessages: b.DenyPinMessages,
|
||||
}
|
||||
if !b.UntilDate.IsZero() {
|
||||
r.UntilDate = int(b.UntilDate.Unix())
|
||||
}
|
||||
r.SetFlags()
|
||||
return r
|
||||
}
|
||||
Reference in New Issue
Block a user