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,64 @@
|
||||
package constant
|
||||
|
||||
const (
|
||||
// MaxTDLibChatID is maximum chat TDLib ID.
|
||||
MaxTDLibChatID = 999999999999
|
||||
// MaxTDLibChannelID is maximum channel TDLib ID.
|
||||
MaxTDLibChannelID = 1000000000000 - int64(1<<31)
|
||||
// ZeroTDLibChannelID is minimum channel TDLib ID.
|
||||
ZeroTDLibChannelID = -1000000000000
|
||||
// ZeroTDLibSecretChatID is minimum secret chat TDLib ID.
|
||||
ZeroTDLibSecretChatID = -2000000000000
|
||||
// MaxTDLibUserID is maximum user TDLib ID.
|
||||
MaxTDLibUserID = (1 << 40) - 1
|
||||
)
|
||||
|
||||
// TDLibPeerID is TDLib's peer ID.
|
||||
type TDLibPeerID int64
|
||||
|
||||
// User sets TDLibPeerID value as user.
|
||||
func (id *TDLibPeerID) User(p int64) {
|
||||
*id = TDLibPeerID(p)
|
||||
}
|
||||
|
||||
// Chat sets TDLibPeerID value as chat.
|
||||
func (id *TDLibPeerID) Chat(p int64) {
|
||||
*id = TDLibPeerID(-p)
|
||||
}
|
||||
|
||||
// Channel sets TDLibPeerID value as channel.
|
||||
func (id *TDLibPeerID) Channel(p int64) {
|
||||
*id = TDLibPeerID(ZeroTDLibChannelID + (p * -1))
|
||||
}
|
||||
|
||||
// ToPlain converts TDLib ID to plain ID.
|
||||
func (id TDLibPeerID) ToPlain() (r int64) {
|
||||
switch {
|
||||
case id.IsUser():
|
||||
r = int64(id)
|
||||
case id.IsChat():
|
||||
r = int64(-id)
|
||||
case id.IsChannel():
|
||||
r = int64(id) - ZeroTDLibChannelID
|
||||
r = -r
|
||||
}
|
||||
return r
|
||||
}
|
||||
|
||||
// IsUser whether that given ID is user ID.
|
||||
func (id TDLibPeerID) IsUser() bool {
|
||||
return id > 0 && id <= MaxTDLibUserID
|
||||
}
|
||||
|
||||
// IsChat whether that given ID is chat ID.
|
||||
func (id TDLibPeerID) IsChat() bool {
|
||||
return id < 0 && -MaxTDLibChatID <= id
|
||||
}
|
||||
|
||||
// IsChannel whether that given ID is channel ID.
|
||||
func (id TDLibPeerID) IsChannel() bool {
|
||||
return id < 0 &&
|
||||
id != ZeroTDLibChannelID &&
|
||||
!id.IsChat() &&
|
||||
ZeroTDLibChannelID-TDLibPeerID(MaxTDLibChannelID) <= id
|
||||
}
|
||||
Reference in New Issue
Block a user