grammers icon indicating copy to clipboard operation
grammers copied to clipboard

(tele)gramme.rs - use Telegram's API from Rust

Results 79 grammers issues
Sort by recently updated
recently updated
newest added

``` thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', /home//.cargo/git/checkouts/grammers-a13650801c60c1ef/1c79a48/lib/grammers-client/src/types/message.rs:177:14 ``` https://github.com/Lonami/grammers/blob/802f3829db624ef1ef6c689eb9af5dffe5e97b9d/lib/grammers-client/src/types/message.rs#L177

## Error ``` request error: rpc error 400: CHANNEL_INVALID caused by channels.readHistory ``` Code with issue, mainly [`Message#mark_as_read`](https://github.com/Lonami/grammers/blob/b9fedf90cc4c1bef5d71c55c5812fbb97382442c/lib/grammers-client/src/types/message.rs#L433): ```rust while let Some(update) = tokio::select! { _ = tokio::signal::ctrl_c() => Ok(None),...

Join and leave methods: Similar to the already implemented `kick_participant` which leaves a chat if you attempt to kick yourself, the now implemented `leave_chat` and `join_chat` follow the same structure....

This includes traits, structures, enumerations, and modules. Everything should be reviewed after the basics are working, at the very least the public ones.

help wanted

Use of raw API should be the exception, not the norm. Our client should offer an idiomatic interface for the most commonly used methods. Starting by porting [Telethon's client methods](https://docs.telethon.dev/en/latest/quick-references/client-reference.html)...

help wanted
good first issue

- SIMD in encryption (still not 100% like decryption, but faster than before) - Directly generate uncompressed GZip for larger chunks - Add connections parameter to upload_stream, instead of using...

Currently, every raw type is owned. This makes it very convenient to use (both for reading, and for creating instances of it, e.g. to send requests). However, it's also pretty...

> `bot_sign_in` sometimes fails with `IO(Kind(UnexpectedEof))` > I'm also getting a few `IO(Os { code: 104, kind: ConnectionReset, message: "Connection reset by peer" }) and IO(Os { code: 110, kind:...

help wanted

Going from the examples, `entity_set.get(&message.chat())` works fine for `PeerChannel` but when a it's a `User` the entity returns as `None` every time. Obviously this means ``` let peer = entity_set...