TODO List
- [x] logging fixes (properly inherit levels across cache,mtproto,dispatcher and client loggers), color fix
- [x] cache some mis issue on .Min and channel ig, code below.
- [x] cache disable completely option
- [x] fix missing caches thingy often reported
- [x] add cache config, to impl properly
- [x] make sure all peers go into cache
- [x] #168
- [x] revamp button building
- [x] Telethon to gogram session
- [x] pyrogram to gogram session
- [x] full Ipv6 support (dc4 ipaddressv6 is not reachable) (tg side issue)
- [x] file dl/ul - fix, stablize
- [x] fix GetDC() returning wrong dc
- [x] update to layer 195
- [x] progress bar - fix
- [x] memory leak maybe, fixed, killing all open connections after use (fixed)
- [x] progress bar, check it again
- [x] #171
- [x] documentation website here
- [x] fix generated tl files, doc strings (i.e, remove htmls etc)
- [x] reqPqMuti mtproto internal method added for cdn dc rsa fingerprint
- [x] connect to cdn dc, add rsa keys.
- [x] cache issue channel, user objects sometimes not readded because their input peers are present
- [x] ForceFile option ignored (fixed)
- [x] update calls and group video call examples
- [x] Iter (dialogs|messages|history|participants) custom methods
- [x] fix get (dialogs|messages|history|chatmembers) methods to support the limts,etc and not only first 100/200
- [x] cache lockout issue on file read error (fixed)
- [x] add logger color customisation config
- [x] advanced logging, with custom interface support too
- [x] wa (webassembly) support maybe? (ws), done, but need sm more atches, like prevent file ops
- [ ] (?) maybe unnessary - but write metadata to downloaded vids
- [x] reconnect timeout ?? (Logs Below) (done)
- [~] high load update gap? (maybe need to qts pts) (70% done)
- [x] conversations handler hanging whole update system
- [x] priotity and grouping for handlers (revamped)
- [x] media metadata parsing without ffmpeg
- [x] replace all math/rand with crypto/rand
- [x] edit message with empty caption
- [x] fix memory leaks due to requests being stuck forever
- [x] custom dialog type for easy itering of dialogs
- [x] add method name for Flood logs to identify
- [x] enhance peer caching with debounced file r/w and username support #252
- [x] concurrent map r/w issue fix #254
- [x] add file size too in custom botfileid to make possible use fileid for filedownload
- [x] remove forced ^ handler prefix
- [x] tcp state enhancement to better wait till conencttion is established
- [x] mtproxy support (done)
- [x] faketls
- [x] websocket connection type
- [x] obfuscated transport
- [ ] perfect forward secrecy (almost done)
- [x] e2e chats
- [x] wasm support
- [x] upload and downlaod file there is something still unstable related to progress ig
- [x] revamp progress bar of files
- [x] calc curr speed instead of avg speed
- [x] reconnection of sender connections (added ping)
- [x] play live stream, support using rtml and ffmpeg
- [x] qr login support, in terminal, with no external libs hopefully
- [x] revamp authprompt nd qr auth, to be more robust and clean
- [x] cache able to pass databse or custom persistent storage
- [x] bind cache to specific userid
- [x] fix mtproxy not working for some newer types.
- [x] implement paddedIntermediate type transport mode
- [ ] mtproxy obf put new hk_lm level obfuscation for client hello
- [x] End to end encryption support.
- [x] End to end files sending
- [x] there is issues with reconnect logic, check
- [ ] context timeout exceeded on RPC calls, check.
d, err := client.GetDialogs(&tg.DialogOptions{
Limit: 500,
})
for _, v := range d {
switch dx := v.(type) {
case *tg.DialogObj:
peer, err := client.GetSendablePeer(dx.Peer)
if err != nil {
client.Logger.Error(err)
continue
}
switch peer.(type) {
case *tg.InputPeerChannel:
channel, _ := client.GetChannel(peer.(*tg.InputPeerChannel).ChannelID)
client.Logger.Info(fmt.Sprintf("Channel: %s", channel.Title))
case *tg.InputPeerChat:
chat, _ := client.GetChat(peer.(*tg.InputPeerChat).ChatID)
client.Logger.Info(fmt.Sprintf("Chat: %s", chat.Title))
}
}
}
FIXED
2024/12/16 09:03:36 [error] gogram [mtproto] {pbot} - reconnecting: recreating connection: creating transport: setup connection: dialing tcp: dial tcp 91.108.56.104:443: connect: connection timed out
2024/12/16 09:05:51 [error] gogram [mtproto] {pbot} - creating connection: creating transport: setup connection: dialing tcp: dial tcp 91.108.56.104:443: connect: connection timed out
2024/12/16 09:05:51 [error] gogram [mtproto] {pbot} - reconnecting: recreating connection: creating transport: setup connection: dialing tcp: dial tcp 91.108.56.104:443: connect: connection timed out
topic support in sendmessage (done) cheeck wait event of conversation (working)
errors on nil type in rawHandler, got when adding WaitEvent Onclick etc, investigate further, it sometimes hangs the whole client btw
so critical.
@AmarnathCJD hey, can i get log about :
" reconnect timeout ?? (Logs Below) (done) [~] high load update gap? (maybe need to qts pts) (70% done)"
Maybe I can take a look
@AmarnathCJD hey, can i get log about :
" reconnect timeout ?? (Logs Below) (done) [~] high load update gap? (maybe need to qts pts) (70% done)"
Maybe I can take a look
" reconnect timeout ?? (Logs Below) (done) - this is fixed
[~] high load update gap? (maybe need to qts pts) (70% done)" this one is that UpdatesTooLong and ChannelUpdatesTooLong bascially getdiffand get channel diff implkmentation. https://github.com/AmarnathCJD/gogram/blob/960f365345e0216bbbd2f927edbe4ca4b78ea14e/telegram/updates.go#L1665
needs a high load bot or a bigspammy channel to test ig