tg_history_dumper icon indicating copy to clipboard operation
tg_history_dumper copied to clipboard

Public channels and chats user hasn't joined can't be exported

Open Layerex opened this issue 2 years ago • 1 comments

Would be nice if chats not present in user chat list were resolved by username or id

Layerex avatar Nov 16 '22 13:11 Layerex

Resolving username:

func tgResolveUsername(tg *tgclient.TGClient, username string) (chat Chat, err error) {
	res := tg.SendSyncRetry(mtproto.TL_contacts_resolveUsername{
		Username: username,
	}, time.Second, 0, 30*time.Second)
	resolvedPeerRes, ok := res.(mtproto.TL_contacts_resolvedPeer)
	if !ok {
		err = merry.Wrap(mtproto.WrongRespError(res))
		return;
	}
	switch chatRes := resolvedPeerRes.Chats[0].(type) {
	case mtproto.TL_user:
		// ...
	case mtproto.TL_chat:
		// ...
	case mtproto.TL_channel:
		// ...
	default:
		err = merry.Wrap(mtproto.WrongRespError(resolvedPeerRes.Chats[0]))
	}
	return
}

Layerex avatar Nov 16 '22 14:11 Layerex