Waffle
72306c39d9
Limit queue growth in throttle
2021-02-16 18:49:18 +03:00
Waffle
669d6c95be
Make some cleanup of throttle
2021-02-16 18:34:19 +03:00
Waffle
417b8eb1e1
Add #[non_exhaustive]
on InputFile
2021-02-16 17:16:27 +03:00
Waffle
8abf3863e5
Future proof multipart requests
2021-02-16 17:16:20 +03:00
Temirkhan Myrzamadi
557002b43a
Merge pull request #46 from teloxide/refactor-throttle
...
Refactor requests throttling
2021-02-15 23:17:29 +03:00
Temirkhan Myrzamadi
0d25d357d9
Reformat throttle.rs
2021-02-16 02:09:06 +06:00
Temirkhan Myrzamadi
8deaac04fa
Fix Clippy
2021-02-16 02:03:04 +06:00
Temirkhan Myrzamadi
65c98741db
Apply suggestions from the review
2021-02-16 01:57:59 +06:00
Temirkhan Myrzamadi
916a774c88
Update src/adaptors/throttle.rs
...
Co-authored-by: Waffle Lapkin <waffle.lapkin@gmail.com>
2021-02-15 22:44:19 +03:00
Temirkhan Myrzamadi
d58b21c42f
Refactoring
2021-02-16 00:50:46 +06:00
Temirkhan Myrzamadi
3129d709fe
Small enhancements
2021-02-15 16:46:31 +06:00
Temirkhan Myrzamadi
3485acb2b4
Merge pull request #47 from teloxide/update_changelog
...
update changelog
2021-02-15 11:43:57 +03:00
Waffle
91220befb6
fix warning
2021-02-15 00:35:53 +03:00
Temirkhan Myrzamadi
d8c16d420d
refactor(throttle): small renamings
2021-02-12 18:20:20 +06:00
Waffle
ab76ec07f2
fix docs
2021-02-07 02:41:29 +03:00
Waffle
21ecc39dc7
fix test
2021-02-07 01:50:53 +03:00
Waffle
fc88c72a26
Suppress clippy::upper_case_acronyms for Currency and CountryCode
2021-02-06 19:25:36 +03:00
Waffle
8befcffe26
Fix naming that triggers clippy::upper_case_acronyms lint
...
Rename
- ParseMode::{HTML => Html}
- ApiError::{
InvalidQueryID => InvalidQueryId,
ButtonURLInvalid => ButtonUrlInvalid,
WrongFileID => WrongFileId,
WebhookRequireHTTPS => WebhookRequireHttps,
WrongHTTPurl => WrongHttpUrl,
}
2021-02-06 19:23:16 +03:00
Waffle
ec58a59903
Fix SendMediaGroup return type
...
Message -> Vec<Message>
2021-02-05 21:32:21 +03:00
Waffle
311a5b18fe
fix docs
2021-01-26 18:39:10 +03:00
Waffle
0e43c32b82
clippy
2021-01-26 18:31:15 +03:00
Waffle
eaf72bd97d
remove unused function
2021-01-26 16:53:49 +03:00
Waffle
cf4330d892
fix 1584 line error
2021-01-26 16:52:33 +03:00
Waffle
a26935d51a
remove SendInvoice from types
...
- It's a method not a telegram type
- We already have SendInvoice ~at home~ in payloads
Existence of the file was an accident
2021-01-26 16:46:34 +03:00
Waffle
0ef0526743
Replace Into<Vec<_>>
by IntoIterator<Item = _>
2021-01-26 16:34:22 +03:00
Waffle
bd4dba3bf1
Remove MessageEntity::text_from
because it's wrong
...
(the method assumes UTF-8 indices, but the indices are UTF-16)
(fuck you, telegram)
2021-01-26 16:21:47 +03:00
Waffle
09d0d886fa
Refactor KeyboardButtonPollType
...
- Make it enum
- Rename `ButtonRequest::KeyboardButtonPollType` => `<_>::poll`
2021-01-26 16:02:05 +03:00
Waffle
393f6ee7a4
Cleanup setters in types::*
...
- Remove useless setters for types which are only returned from telegam
- Add `const` on setters (where possible)
- Make `Poll::{open_period,close_date}` public
2021-01-26 15:35:08 +03:00
Waffle
d663879423
fix example and add --features full to ci
2021-01-26 14:52:50 +03:00
Waffle
8807cd7228
fix examples (because get_me now returns Me)
2021-01-26 14:10:37 +03:00
Waffle
a80ff92aba
make get_me
return Me
2021-01-26 13:58:51 +03:00
Waffle
5b328105fa
Sticker related fixes
...
- Rename `sticker_type.rs` => `input_sticker.rs` (after the contained type)
- Make `create_new_sticker_set` multipart
- Replace CreateNewStickerSet::{png,tgs}_sticker with `<_>::sticker`
- Fix GetStickerSet return type
- Revert some previous InputSticker changes: make the variants tuple structsm
remove constructors
2021-01-26 13:43:21 +03:00
Waffle
b16006ec9c
document tls features
2021-01-26 11:56:42 +03:00
Temirkhan Myrzamadi
53f1c6d4d3
Merge pull request #42 from teloxide/use_2018_module_style
...
use 2018 module style
2021-01-25 23:33:50 +06:00
Waffle
1f4d29c547
Add note that serde_multipart is awful
2021-01-23 15:59:59 +03:00
Waffle
55c02e3311
Use edition-2018 style modules
...
Use `module_name.rs` instead of `module_name/mod.rs`.
Pros:
- It's easier to find the module file (especially for modules with lots of
submodules like `types`)
- Module file name is not 'magical'
2021-01-23 15:56:22 +03:00
Waffle
6abf571c96
Remove git dependency
2021-01-21 22:25:20 +03:00
Temirkhan Myrzamadi
8e011b7e60
Merge pull request #41 from teloxide/improve_docs
...
Improve docs
2021-01-21 18:52:16 +06:00
Waffle
3aec4e5070
fix test
2021-01-21 10:15:02 +03:00
Waffle
cc9e3a56e6
workaround rustc bug
2021-01-21 09:45:20 +03:00
Waffle
b93947c0ab
stop using serde internall module
2021-01-15 22:19:42 +03:00
Waffle
84df33dbef
improve docs
2021-01-15 22:06:23 +03:00
Waffle
2ee7bb22a1
Move client_from_env
from root into net
2021-01-13 16:14:02 +03:00
Waffle
7852379852
Make Currency and CountryCode ISO compatible and add docs
2021-01-13 16:08:05 +03:00
Waffle
555bfc93d5
Refactor mime type handling
...
- Remove `MimeWrapper` from public api
- Use `mime::Mime` in public api instead
2021-01-13 16:07:26 +03:00
Waffle
2ddbaa49ea
Add forward-to-deref Requester impls
...
This commit adds
```rust
impl<B: Requester> Requester for D<B> { ... }
```
where `D<_>` is `&_`, `&mut _`, `Box<_>`, `Arc<_>` and `Rc<_>`.
2021-01-08 22:13:12 +03:00
Waffle
49c3afbc39
fixup send_emoji method
2021-01-08 00:44:19 +03:00
Waffle
d3ecca662b
Normalize docs
2021-01-07 18:00:57 +03:00
Waffle
56d546215a
fix clippy: impl From instead of Into
2021-01-07 16:01:46 +03:00
Waffle
71d90002ce
update dependencies
2021-01-07 15:58:51 +03:00
Waffle
6004d9189c
fmt
2020-12-30 17:06:52 +03:00
Waffle Lapkin
114d1c3efb
Update src/bot/mod.rs
...
Co-authored-by: Temirkhan Myrzamadi <hirrolot@gmail.com>
2020-12-30 17:03:29 +03:00
Waffle
cf3cd63c92
fix doc tests
2020-12-28 21:03:33 +03:00
Waffle
50d3d67f93
fmt
2020-12-28 19:06:46 +03:00
Waffle
f4e3aa13eb
Add Bot::{set_,}api_url
methods
...
The methods allow to set and get the Telegram bot API url.
2020-12-28 18:45:45 +03:00
Waffle
9052d4dfbb
Remove already fixed FIXMEs
2020-12-28 18:02:04 +03:00
Waffle
93bc2e6fee
Make requester methods doc nicer
2020-12-28 14:57:39 +03:00
Waffle
7cc79eda63
Fix API typos
...
- Make `caption` args optional
- Add missing game methods
2020-12-28 14:57:37 +03:00
Temirkhan Myrzamadi
109a5d89ab
Satisfy rustfmt
2020-12-23 23:45:56 +06:00
Temirkhan Myrzamadi
957c997161
Merge branch 'docs-gardening' of https://github.com/teloxide/teloxide-core into docs-gardening
2020-12-23 23:41:27 +06:00
Temirkhan Myrzamadi
1188da84e3
Small typo fixes
2020-12-23 23:40:58 +06:00
Temirkhan Myrzamadi
edc12d0008
Update src/requests/payload.rs
...
Co-authored-by: Waffle Lapkin <waffle.lapkin@gmail.com>
2020-12-23 23:18:20 +06:00
Temirkhan Myrzamadi
f1e5f3f1b3
Update src/requests/request.rs
...
Co-authored-by: Waffle Lapkin <waffle.lapkin@gmail.com>
2020-12-23 23:16:49 +06:00
Temirkhan Myrzamadi
bb8148a3b3
Update src/requests/request.rs
...
Co-authored-by: Waffle Lapkin <waffle.lapkin@gmail.com>
2020-12-23 23:16:42 +06:00
Temirkhan Myrzamadi
18c34a7f70
Update src/requests/payload.rs
...
Co-authored-by: Waffle Lapkin <waffle.lapkin@gmail.com>
2020-12-23 23:16:19 +06:00
Temirkhan Myrzamadi
dc7092fed5
Update src/requests/has_payload.rs
...
Co-authored-by: Waffle Lapkin <waffle.lapkin@gmail.com>
2020-12-23 23:14:58 +06:00
Temirkhan Myrzamadi
914ddd40bb
Add #[allow(clippy::wrong_self_convention)]
2020-12-23 22:46:31 +06:00
Temirkhan Myrzamadi
f5d9cb1a73
Documentation gardening
2020-12-23 22:24:31 +06:00
Waffle
290258cd1f
Small fixes: fmt & import in test
2020-12-12 17:59:45 +03:00
Waffle
445c42b585
Refactor file downloading
...
- Make `net` module public
- Move `Bot::download_file{,_stream}` methods to a new `Download` trait
- Add `download_forward` macro to forward `Download` impls (priv)
- Impl `Download` for all bot adaptors & the `Bot` itself
- Change return type of `download_file_stream` — return `Stream<Result<Bytes>>``,
instead of `Future<Result<Stream<Result<Bytes>>>>``
- Add `api_url` param to standalone versions of `download_file{,_stream}`
- Make `net::{TELEGRAM_API_URL, download_file{,_stream}}` pub
- Small documentation changes
2020-12-12 15:52:47 +03:00
Waffle
3491a668b2
Fix doc links...
2020-12-06 16:34:44 +03:00
Waffle
1882ff0bc4
Fix doc test
2020-12-06 16:31:30 +03:00
Waffle
84ac0212e8
Remove legacy code
2020-12-06 16:31:28 +03:00
Waffle
eb45ac7d88
Fix doc links
2020-11-27 01:39:35 +03:00
Waffle
45cf62ce8e
Refactor Bot for a bit
...
- Move default parse mode to an adaptor
- Remove bot builder (it's not usefull anymore, since parse_mode is moved away)
- Undeprecate bot constructors
2020-11-27 01:21:50 +03:00
Waffle
7c9c871b83
Remove empty generics lists, where
s and ', ' after self
2020-11-24 20:30:45 +03:00
Waffle
d7d8bc6246
Add all tba methods to Requester trait
2020-11-24 19:32:29 +03:00
Temirkhan Myrzamadi
b4e0a355c3
Merge pull request #26 from teloxide/intrl_api_url_chage
...
Add internal ability to change API url
2020-11-21 04:01:28 +06:00
Waffle
05582de2fd
Add fixme to #[allow] attr in api_url
2020-11-17 22:43:34 +03:00
Waffle
17b44db578
Add ApiUrl
...
Add `ApiUrl` and also use `Url` instead of `&str` for urls to clean code
2020-11-17 22:38:30 +03:00
Waffle
fa0e86c547
Add internal ability to change API url
...
Recently, telegram has published [Telegram Bot API Server] - HTTP API <->
MTPROTO proxy which is used internally by telegram. Now it's possible to run
the server locally.
However currently it's not possible to use teloxide with such local server,
because API url is hardcoded into teloxide.
This commit makes _internall_ changes to allow setting the API url. It doesn't
yet allow to set the url from user code (i.e.: no changes in public API), in my
opinion such additions are blocked on some bot refactorings.
`Bot::api_url` is made `Option<Arc<str>>` to minimize costs in case of 'default
url' (probably the most common case).
Progress of this issue is tracked in https://github.com/teloxide/teloxide/issues/317
[Telegram Bot API Server]: https://github.com/tdlib/telegram-bot-api
2020-11-16 14:14:00 +03:00
Waffle
19c375f5e0
fix message_id type
2020-11-16 12:58:55 +03:00
Waffle
40bbfb05ea
fixup SendInvice::chat_id type
2020-11-16 02:48:24 +03:00
Waffle
5d576455d9
fix user_id param type
2020-11-15 11:24:38 +03:00
Waffle Lapkin
79b5c41bb5
Apply suggestions from code review
...
Co-authored-by: Temirkhan Myrzamadi <hirrolot@gmail.com>
2020-11-15 10:51:36 +03:00
Waffle
62b65cb7a6
clippy
2020-11-13 20:47:47 +03:00
Waffle
f0609c06bc
Add docs for setters mod
2020-11-13 19:15:09 +03:00
Waffle
8f85cffe94
Implement all payloads
2020-11-13 19:04:54 +03:00
Waffle
0deb42e167
fix docs for InputSticker
2020-11-05 03:25:32 +03:00
Waffle
a213459cc3
fmt
2020-11-05 03:22:23 +03:00
Waffle
9d887e51bb
Rename StickerType
...
- Rename `StickerType` => `InputSticker`
- Rename `{CreateNewStickerSet,AddStickerToSet}::sticker_type}` => `sticker`
This just makes more sense.
2020-11-04 16:00:40 +03:00
Waffle
a138d6824b
add #[must_use] attr to payloads implemented by macro
2020-11-02 21:14:32 +03:00
Waffle
106c49fa46
add #[serde_with_macros::skip_serializing_none] annotation to the impl_payload output
2020-11-02 02:21:02 +03:00
Waffle
5ddbd50b37
Implement IntoIterator-based convert for impl_payload! macro
2020-11-02 01:35:02 +03:00
Temirkhan Myrzamadi
59f01a72c0
Merge pull request #20 from teloxide/fix_message_dice
...
make MessageDice::dice public
2020-10-29 12:48:39 +06:00
Waffle
6ae9db4edd
make MessageDice::dice public
2020-10-28 19:05:28 +03:00
Temirkhan Myrzamadi
8a5081db61
Merge pull request #18 from teloxide/impl_payload_macro
...
Add internal impl_payload macro
2020-10-27 18:51:23 +06:00
Waffle
4b21e8ea68
fmt
2020-10-24 22:20:58 +03:00
Temirkhan Myrzamadi
2e88ba3002
Merge pull request #19 from teloxide/fix_telegram_response
...
Fix telegram response
2020-10-25 00:19:45 +06:00
Waffle Lapkin
a917363da0
Merge branch 'master' into impl_payload_macro
2020-10-24 21:16:05 +03:00
Waffle
fe9314f87c
serde-rename TelegramResponse::reponse
to result
2020-10-24 09:23:28 +03:00
Waffle
69d503e610
add internal impl_payload macro
2020-10-24 09:13:11 +03:00
Waffle
d2b97b2120
Use #[serde(field_identifier)]
instead of hand-made workarounds
...
This attribute doesn't seem to be documented btw...
2020-10-22 00:42:06 +03:00
Waffle
2dfe8a15c5
fmt
2020-10-21 19:53:39 +03:00
Waffle
d47036012b
fix rebase mistakes
2020-10-21 19:51:00 +03:00
Waffle
9bf8c02c9d
doc & feature fixes
...
- Remove `unstable-stream` feature
- Doc fixes
2020-10-21 05:17:35 +03:00
Waffle
e79f83d4a1
Move bot adaptors to own module and place then under features
...
This commit moves `bot::{auto_send,cache_me,limits}` modules to
`adaptors::{auto_send,cache_me,throttle}.
ALso it adds 4 crate features:
- `throttle`
- `cache_me`
- `auto_send`
- `full` (enables all features, except `nightly`)
2020-10-21 05:14:48 +03:00
Temirkhan Myrzamadi
2d948ef20b
Merge pull request #13 from teloxide/cleanup_errors
...
Cleanup errors
2020-10-21 04:34:14 +06:00
Waffle
41afdb554d
fmt
2020-10-20 17:02:31 +03:00
Waffle
193dd69265
Cleanup errors
2020-10-20 15:07:10 +03:00
Waffle
e54f45ceab
Make the trait bounds in Request{,er} stricter
2020-10-20 12:17:07 +03:00
Temirkhan Myrzamadi
a2d87fe1fa
Merge pull request #10 from teloxide/limits
...
Request throttling (limits)
2020-10-17 23:47:19 +06:00
Temirkhan Myrzamadi
41b257bbae
Merge pull request #9 from teloxide/chat_member_kind
...
Refactor ChatMember
2020-10-10 17:22:39 +06:00
Waffle
2f09e9930d
Decompose ChatMemberKind
as was requested per review
2020-10-10 14:17:52 +03:00
Waffle
8e44a0bcfc
fmt: i can't see the difference
2020-10-03 03:39:50 +03:00
Waffle
2d7e40a473
[throttle] fix doc test
2020-10-03 03:30:34 +03:00
Waffle
e757999135
[throttle] git rebase, fmt and clippy things
2020-10-02 21:22:19 +03:00
Waffle
0aecda6348
[throttle] stop worker when channel is closed
2020-10-02 20:53:00 +03:00
Waffle
d43f2514d3
[throttle] use channel close to send unlock "messages"
...
Also use `with_capacity` for queue
2020-10-02 20:53:00 +03:00
Waffle
380e189ec7
[throttle] comment and doc improvements
2020-10-02 20:53:00 +03:00
Waffle
6f03ca0954
[throttle] hash ChatId::ChannelUsername
to prevent expensive string cloning & make send{,_ref} enums private
...
The future has come!
2020-10-02 20:53:00 +03:00
Waffle
7fdf9cd9a6
[throttle] implement send_ref
2020-10-02 20:53:00 +03:00
Waffle
247868a815
[throttle] explicit queue-closed error handling & comments
2020-10-02 20:53:00 +03:00
Waffle
23ef060d08
[throttle] temporary resolve spawn_blocking
fixme
2020-10-02 20:53:00 +03:00
Waffle
b38e35b630
[throttle] format, docs, modfix and small additions
2020-10-02 20:52:56 +03:00
Waffle
6714a9c503
[throttle] clear hchats_s
instead of creating&dropping every iteration
2020-10-02 20:50:30 +03:00
Waffle
5f5e42054d
[throttle] queue optimizations#1
2020-10-02 20:50:30 +03:00
Waffle
3f9db1f31b
[throttle] queue optimizations#0
2020-10-02 20:50:30 +03:00
Waffle
f270613e7e
[throttle] refactor#0
...
- Move all data to the worker making it unshared.
- Use mpsc channel to update requests queue
- Yield if there are no requests in queue
- Remove `:0` entries from `hchats`
- Remove debug prints
- Remove use of `block_on`
2020-10-02 20:50:30 +03:00
Waffle
4e412b39e1
(very bad) initial implementation of throttling
2020-10-02 20:50:30 +03:00
Waffle
8271150218
add SendMessage request
2020-10-02 20:50:30 +03:00
Waffle Lapkin
269859eba9
Update src/bot/auto_send.rs
...
Co-authored-by: Temirkhan Myrzamadi <hirrolot@gmail.com>
2020-10-01 21:11:28 +03:00
Waffle Lapkin
a7066e5e11
Apply suggestions from code review
...
Co-authored-by: Temirkhan Myrzamadi <hirrolot@gmail.com>
2020-10-01 21:08:38 +03:00
Waffle Lapkin
429ab0b74a
Apply suggestions from code review
...
Co-authored-by: Temirkhan Myrzamadi <hirrolot@gmail.com>
2020-10-01 21:00:02 +03:00
Waffle
57afa34609
rephase
2020-09-23 23:44:53 +03:00
Waffle
f4b11095a7
fmt
2020-09-23 22:06:23 +03:00
Waffle
cd5d6fd6b9
Make AutoRequest<_>
fused
2020-09-23 21:52:09 +03:00
Waffle
91d78b65b3
Refactor ChatMember
...
- Replace a bunch of `Option<_>` fields with `hatMemberKind`
- Remove setters (users are not expected to create this struct)
- Add getters
2020-09-23 19:05:59 +03:00
Waffle
0ec81cf753
Implement auto sending requests
2020-09-23 16:53:26 +03:00
Waffle
83cc634f79
add :std::error::Error bound on Request::Err
2020-09-22 22:56:02 +03:00
Waffle
954c410c1b
implement get_me
caching
2020-09-22 22:55:19 +03:00
Waffle
2cabc5fb4e
add Requester trait and GetMe payload
2020-09-22 22:52:23 +03:00
Waffle
f3e0005335
remove AsMut/AsRef bounds because of a compiler bug
2020-09-22 22:48:42 +03:00
Waffle
07a403c279
implement default Bot's {Json,Multipart}Request
2020-09-19 20:30:36 +03:00
Waffle Lapkin
f272326c69
Merge pull request #5 from teloxide/requests_redisign_p0
...
Requests redisign part 0
2020-08-25 17:30:04 +03:00
Waffle
88004607d3
fmt
2020-08-24 17:08:55 +03:00
Waffle
c773ce7aff
implement HasPayload
in terms of As{Ref,Mut}
2020-08-24 15:50:15 +03:00
Waffle
76d47276f6
requests redesign part 0
...
This commit introduces 3 traits mentioned in requests redesign proposal:
- `Payload`
- `HasPayload`
- `Request`
Also it adds `Output<T>` alias to `<<T as HasPayload>::Payload as Payload>::Output`
2020-08-22 22:03:59 +03:00
Waffle
45a55c66de
rename Request
=> RequestOld
2020-08-22 20:59:04 +03:00
Waffle Lapkin
481b2ee564
Merge pull request #3 from teloxide/pub_fields_in_methods
...
make all methods fields public
2020-08-16 23:38:26 +03:00