Giter VIP home page Giter VIP logo

carapax's Issues

Handle updates in Rocket web framework

I am not using handle_updates function, and I receive update using webhook like this (it is rocker framework) :

#[post("/bot/telegram/test-dev", format = "application/json", data = "<update>")]
pub fn telegram_webhook(update: Json<tgbot::types::Update>, db_conn: RustyDbConn) -> String {
    "".into()
}

So the question is, how can I send one reply or more? And not only reply, sometimes bot need send notifications.. I am trying code:

let method = SendMessage::new(chat_id, "Test msg:");
tokio::run(api.clone().execute(method).then(|x| {
    Ok::<(), ()>(())
}));

and it works. But code after tokio::run is unreachable.
Looks like long polling is turining on? I am not sure..

So, the question is how can I send messages not using tgbot's handlers? Forward thank you!

Parse Update errors

Can not get message data:

Failed to parse update "Can not get message data at line 2 column 543": "{\"update_id\":310811413,\n\"message\":{\"message_id\":474330,\"from\":{\"id\":115307059,\"is_bot\":false,\"first_name\":\"Elnee\",\"last_name\":\"\\u96e8\",\"username\":\"Elnee\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1563608059,\"reply_to_message\":{\"message_id\":474329,\"from\":{\"id\":129719794,\"is_bot\":false,\"first_name\":\"totallynot@tty\",\"username\":\"bugworm\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1563607998},\"text\":\"\\ud83d\\ude02\"}}"
Failed to parse update "Can not get message data at line 2 column 689": "{\"update_id\":310811415,\n\"message\":{\"message_id\":474332,\"from\":{\"id\":107820725,\"is_bot\":false,\"first_name\":\"Kerrigan\",\"username\":\"sarakerrigan\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1563613846,\"reply_to_message\":{\"message_id\":474329,\"from\":{\"id\":129719794,\"is_bot\":false,\"first_name\":\"totallynot@tty\",\"username\":\"bugworm\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1563607998},\"text\":\"\\u043f\\u043e\\u0447\\u0435\\u043c\\u0443 \\u0442\\u0430\\u043c \\u043d\\u0435 \\u043f\\u043e\\u0448\\u0451\\u043b \\u043d\\u0430\\u0445\\u0443\\u0439 \\u0432 \\u043a\\u043e\\u043d\\u0446\\u0435?\"}}"
Failed to parse update "Can not get message data at line 2 column 677": "{\"update_id\":310811434,\n\"message\":{\"message_id\":474350,\"from\":{\"id\":434566766,\"is_bot\":false,\"first_name\":\"Cyberdine Engineering\",\"username\":\"cyberdine_engineering\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1563616177,\"reply_to_message\":{\"message_id\":474329,\"from\":{\"id\":129719794,\"is_bot\":false,\"first_name\":\"totallynot@tty\",\"username\":\"bugworm\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1563607998},\"text\":\"\\u0410 \\u0440\\u0430\\u043d\\u044c\\u0448\\u0435 \\u043f\\u0445\\u043f \\u0442\\u0440\\u043e\\u043b\\u043b\\u0438\\u0440\\u043e\\u0432\\u0430\\u043b\\u0438\"}}"
Failed to parse update "Can not get message data at line 2 column 608": "{\"update_id\":310815761,\n\"message\":{\"message_id\":478386,\"from\":{\"id\":113194373,\"is_bot\":false,\"first_name\":\"Kirill\",\"username\":\"dark_alastor\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1564062648,\"reply_to_message\":{\"message_id\":478381,\"from\":{\"id\":177319563,\"is_bot\":false,\"first_name\":\"Rustem\",\"last_name\":\"B.\",\"username\":\"rustem_b\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1564062573},\"text\":\"\\u0433\\u043e\\u043d\\u0438 \\u0444\\u043e\\u0442\\u043e\\u0447\\u043a\\u0443 \\ud83d\\ude0b\"}}"
Failed to parse update "Can not get message data at line 2 column 600": "{\"update_id\":310849447,\n\"message\":{\"message_id\":506130,\"from\":{\"id\":258145124,\"is_bot\":false,\"first_name\":\"Evgeniy\",\"last_name\":\"Zheltonozhskiy\\ud83c\\uddee\\ud83c\\uddf1\",\"username\":\"EvgeniyZh\",\"language_code\":\"en\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568370397,\"reply_to_message\":{\"message_id\":506129,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568370360},\"text\":\"\\u0411\\u043b\\u044f\"}}"
Failed to parse update "Can not get message data at line 2 column 551": "{\"update_id\":310849448,\n\"message\":{\"message_id\":506131,\"from\":{\"id\":138098452,\"is_bot\":false,\"first_name\":\"Artem\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568370410,\"reply_to_message\":{\"message_id\":506129,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568370360},\"text\":\"\\u041e\\u043f\\u044f\\u0442\\u044c \\u0445\\u0430\\u043a\\u043d\\u0443\\u043b?\"}}"
Failed to parse update "Can not get message data at line 2 column 579": "{\"update_id\":310851096,\n\"message\":{\"message_id\":507044,\"from\":{\"id\":448757,\"is_bot\":false,\"first_name\":\"nndii\",\"last_name\":\"(ya ne Andrey)\",\"username\":\"nndii\",\"language_code\":\"en\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568460172,\"reply_to_message\":{\"message_id\":507043,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568460152},\"text\":\"\\u0425\\u043e\\u0440\\u043e\\u0448\"}}"
Failed to parse update "Can not get message data at line 2 column 757": "{\"update_id\":310851108,\n\"message\":{\"message_id\":507049,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568463651,\"reply_to_message\":{\"message_id\":507043,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568460152},\"photo\":[{\"file_id\":\"AgADAgADCqsxGwd86UsS7TCVFkEKveWuhQ8ABAEAAwIAA20AA8v1BAABFgQ\",\"file_size\":18751,\"width\":220,\"height\":320},{\"file_id\":\"AgADAgADCqsxGwd86UsS7TCVFkEKveWuhQ8ABAEAAwIAA3gAA8z1BAABFgQ\",\"file_size\":49331,\"width\":418,\"height\":607}],\"caption\":\"80lvl\"}}"
Failed to parse update "Can not get message data at line 2 column 553": "{\"update_id\":310851113,\n\"message\":{\"message_id\":507054,\"from\":{\"id\":108157884,\"is_bot\":false,\"first_name\":\"Mike\",\"last_name\":\"Lubinets\",\"username\":\"mersinvald\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568463857,\"reply_to_message\":{\"message_id\":507043,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568460152},\"text\":\"\\u0421\\u0423\\u041a\\u0410\"}}"
Failed to parse update "Can not get message data at line 2 column 544": "{\"update_id\":310851890,\n\"message\":{\"message_id\":507817,\"from\":{\"id\":7929120,\"is_bot\":false,\"first_name\":\"Sergey\",\"username\":\"kEzViSiOn\",\"language_code\":\"en\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568552003,\"reply_to_message\":{\"message_id\":507816,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568551767},\"text\":\"\\u0412\\u0410\\u041a\"}}"
Failed to parse update "Can not get message data at line 2 column 574": "{\"update_id\":310851891,\n\"edited_message\":{\"message_id\":507817,\"from\":{\"id\":7929120,\"is_bot\":false,\"first_name\":\"Sergey\",\"username\":\"kEzViSiOn\",\"language_code\":\"en\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568552003,\"edit_date\":1568552008,\"reply_to_message\":{\"message_id\":507816,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568551767},\"text\":\"\\u0412\\u0430\\u0443\"}}"
Failed to parse update "Can not get message data at line 2 column 656": "{\"update_id\":310852184,\n\"message\":{\"message_id\":508082,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568567912,\"reply_to_message\":{\"message_id\":508081,\"from\":{\"id\":258145124,\"is_bot\":false,\"first_name\":\"Evgeniy\",\"last_name\":\"Zheltonozhskiy\\ud83c\\uddee\\ud83c\\uddf1\",\"username\":\"EvgeniyZh\",\"language_code\":\"en\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568567785},\"text\":\"\\u043a\\u0430\\u043a\\u043e\\u0439 \\u0443\\u0440\\u043e\\u0432\\u0435\\u043d\\u044c?\"}}"
Failed to parse update "Can not get message data at line 2 column 572": "{\"update_id\":310855477,\n\"message\":{\"message_id\":510951,\"from\":{\"id\":441826110,\"is_bot\":false,\"first_name\":\"Anton Cheshucherepushko\",\"username\":\"insert_reference_here\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568809729,\"reply_to_message\":{\"message_id\":510949,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568809696},\"text\":\"\\u0417\\u0430\\u0434\\u0440\\u043e\\u0442\"}}"
Failed to parse update "Can not get message data at line 2 column 526": "{\"update_id\":310855836,\n\"message\":{\"message_id\":511258,\"from\":{\"id\":138098452,\"is_bot\":false,\"first_name\":\"Artem\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568828294,\"reply_to_message\":{\"message_id\":511256,\"from\":{\"id\":138098452,\"is_bot\":false,\"first_name\":\"Artem\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568828260},\"text\":\"@re4lmayer\",\"entities\":[{\"offset\":0,\"length\":10,\"type\":\"mention\"}]}}"
Failed to parse update "Can not get message data at line 2 column 513": "{\"update_id\":310855899,\n\"message\":{\"message_id\":511302,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568832102,\"reply_to_message\":{\"message_id\":511256,\"from\":{\"id\":138098452,\"is_bot\":false,\"first_name\":\"Artem\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1568828260},\"text\":\"\\u0445\\u0430\\u043a\\u0438\\u0440\"}}"
Failed to parse update "Can not get message data at line 2 column 728": "{\"update_id\":310864125,\n\"message\":{\"message_id\":518598,\"from\":{\"id\":441826110,\"is_bot\":false,\"first_name\":\"Anton\",\"last_name\":\"Oleg\",\"username\":\"insert_reference_here\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1569744089,\"reply_to_message\":{\"message_id\":518484,\"from\":{\"id\":108157884,\"is_bot\":false,\"first_name\":\"Mike\",\"last_name\":\"Lubinets\",\"username\":\"mersinvald\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1569680397},\"text\":\"\\u041f\\u043e\\u0447\\u0435\\u043c\\u0443 \\u043f\\u0440\\u043e\\u0448\\u043b\\u044b\\u0439 \\u043f\\u0438\\u043d \\u043d\\u0435 \\u043f\\u0440\\u0438\\u043a\\u0440\\u0435\\u043f\\u0438\\u043b?\"}}"
Failed to parse update "Can not get message data at line 2 column 710": "{\"update_id\":310864593,\n\"message\":{\"message_id\":519004,\"from\":{\"id\":441826110,\"is_bot\":false,\"first_name\":\"Anton\",\"last_name\":\"Oleg\",\"username\":\"insert_reference_here\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1569836152,\"reply_to_message\":{\"message_id\":518955,\"from\":{\"id\":108157884,\"is_bot\":false,\"first_name\":\"Mike\",\"last_name\":\"Lubinets\",\"username\":\"mersinvald\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1569821053},\"text\":\"\\u0413\\u0434\\u0435 \\u043f\\u0440\\u0435\\u0434\\u044b\\u0434\\u0443\\u0449\\u0438\\u0439 \\u0437\\u0430\\u043a\\u0440\\u0435\\u043f, \\u0431\\u043b\\u044f\\u0442\\u044c?\"}}"
Failed to parse update "Can not get message data at line 2 column 630": "{\"update_id\":310866332,\n\"message\":{\"message_id\":520272,\"from\":{\"id\":441826110,\"is_bot\":false,\"first_name\":\"Anton\",\"last_name\":\"Oleg\",\"username\":\"insert_reference_here\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1570056331,\"reply_to_message\":{\"message_id\":520051,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1570046533},\"text\":\"\\u041a\\u0430\\u043a\\u043e\\u0439 \\u0436\\u0435 \\u0442\\u044b \\u0437\\u0430\\u0434\\u0440\\u043e\\u0442\"}}"
Failed to parse update "Can not get message data at line 2 column 599": "{\"update_id\":310866715,\n\"message\":{\"message_id\":520577,\"from\":{\"id\":441826110,\"is_bot\":false,\"first_name\":\"Anton\",\"last_name\":\"Oleg\",\"username\":\"insert_reference_here\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1570137722,\"reply_to_message\":{\"message_id\":520576,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1570137713},\"text\":\"\\u0414\\u0410 \\u0422\\u042b \\u0417\\u0410\\u0415\\u0411\\u0410\\u041b\"}}"
Failed to parse update "Can not get message data at line 2 column 538": "{\"update_id\":310867286,\n\"message\":{\"message_id\":520987,\"from\":{\"id\":7929120,\"is_bot\":false,\"first_name\":\"Sergey\",\"username\":\"kEzViSiOn\",\"language_code\":\"en\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1570234206,\"reply_to_message\":{\"message_id\":520986,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1570234199},\"text\":\"\\ud83c\\udf89\"}}"
Failed to parse update "Can not get message data at line 2 column 573": "{\"update_id\":310867287,\n\"message\":{\"message_id\":520988,\"from\":{\"id\":441826110,\"is_bot\":false,\"first_name\":\"Anton\",\"last_name\":\"Oleg\",\"username\":\"insert_reference_here\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1570234428,\"reply_to_message\":{\"message_id\":520986,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1570234199},\"text\":\"\\u0417\\u0430\\u0434\\u0440\\u043e\\u0442\"}}"
Failed to parse update "Can not get message data at line 2 column 538": "{\"update_id\":310867700,\n\"message\":{\"message_id\":521367,\"from\":{\"id\":7929120,\"is_bot\":false,\"first_name\":\"Sergey\",\"username\":\"kEzViSiOn\",\"language_code\":\"en\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1570285813,\"reply_to_message\":{\"message_id\":521366,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1570285806},\"text\":\"\\ud83c\\udf89\"}}"
Failed to parse update "Can not get message data at line 2 column 551": "{\"update_id\":310868013,\n\"message\":{\"message_id\":521578,\"from\":{\"id\":441826110,\"is_bot\":false,\"first_name\":\"Anton\",\"last_name\":\"Oleg\",\"username\":\"insert_reference_here\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1570289892,\"reply_to_message\":{\"message_id\":521577,\"from\":{\"id\":138098452,\"is_bot\":false,\"first_name\":\"Artem\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1570289715},\"text\":\"\\u0417\\u0430\\u0434\\u0440\\u043e\\u0442\"}}"
Failed to parse update "Can not get message data at line 2 column 526": "{\"update_id\":310868018,\n\"message\":{\"message_id\":521579,\"from\":{\"id\":138098452,\"is_bot\":false,\"first_name\":\"Artem\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1570290020,\"reply_to_message\":{\"message_id\":521577,\"from\":{\"id\":138098452,\"is_bot\":false,\"first_name\":\"Artem\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP+ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1570289715},\"text\":\"@re4lmayer\",\"entities\":[{\"offset\":0,\"length\":10,\"type\":\"mention\"}]}}"
Failed to parse update "Can not get message data at line 2 column 571": "{\"update_id\":310883700,\n\"message\":{\"message_id\":534637,\"from\":{\"id\":171496731,\"is_bot\":false,\"first_name\":\"John\",\"last_name\":\"Cantrell\",\"username\":\"cantrell\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1572347232,\"reply_to_message\":{\"message_id\":534635,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1572346887},\"text\":\"\\u0427\\u0438\\u0442\\u043e\\u0440\"}}"
Failed to parse update "Can not get message data at line 2 column 598": "{\"update_id\":310893103,\n\"message\":{\"message_id\":542981,\"from\":{\"id\":171496731,\"is_bot\":false,\"first_name\":\"John\",\"last_name\":\"Cantrell\",\"username\":\"cantrell\",\"language_code\":\"en\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1573659577,\"reply_to_message\":{\"message_id\":542980,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1573659255},\"text\":\"\\u0417\\u0430\\u0434\\u0440\\u043e\\u0442\"}}"
Failed to parse update "Can not get message data at line 2 column 641": "{\"update_id\":310904512,\n\"message\":{\"message_id\":553010,\"from\":{\"id\":72892827,\"is_bot\":false,\"first_name\":\"\\u0421\\u043b\\u0430\\u0432\\u0430\",\"username\":\"t91x0\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575240244,\"reply_to_message\":{\"message_id\":553008,\"from\":{\"id\":441826110,\"is_bot\":false,\"first_name\":\"\\u0410\\u043d\\u0442\\u043e\",\"last_name\":\"\\u0428\\u043a\\u0430\",\"username\":\"insert_reference_here\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575240092},\"text\":\"\\u041c\\u0430\\u043d\\u044c\\u044f\\u043a\"}}"
Failed to parse update "Can not get message data at line 2 column 602": "{\"update_id\":310904528,\n\"message\":{\"message_id\":553029,\"from\":{\"id\":7929120,\"is_bot\":false,\"first_name\":\"Oguretz\",\"username\":\"kEzViSiOn\",\"language_code\":\"en\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575244837,\"reply_to_message\":{\"message_id\":553026,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575244807},\"text\":\"\\u041c\\u0438\\u043d\\u0443\\u0441 \\u0436\\u0438\\u0437\\u043d\\u044c\"}}"
Failed to parse update "Can not get message data at line 2 column 576": "{\"update_id\":310905266,\n\"message\":{\"message_id\":553564,\"from\":{\"id\":94373339,\"is_bot\":false,\"first_name\":\"Penter\",\"username\":\"penterpro\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575385886,\"reply_to_message\":{\"message_id\":553563,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575385107},\"text\":\"\\u041d\\u0443 \\u0438 \\u0437\\u0430\\u0434\\u0440\\u043e\\u0442\"}}"
Failed to parse update "Can not get message data at line 2 column 644": "{\"update_id\":310905402,\n\"message\":{\"message_id\":553677,\"from\":{\"id\":441826110,\"is_bot\":false,\"first_name\":\"\\u0410\\u043d\\u0442\\u043e\",\"last_name\":\"\\u0428\\u043a\\u0430\",\"username\":\"insert_reference_here\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575396268,\"reply_to_message\":{\"message_id\":553563,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575385107},\"text\":\"\\u041d\\u0443 \\u0438 \\u0437\\u0430\\u0434\\u0440\\u043e\\u0442 [2]\"}}"
Failed to parse update "Can not get message data at line 2 column 769": "{\"update_id\":310905716,\n\"message\":{\"message_id\":553962,\"from\":{\"id\":441826110,\"is_bot\":false,\"first_name\":\"\\u0410\\u043d\\u0442\\u043e\",\"last_name\":\"\\u0428\\u043a\\u0430\",\"username\":\"insert_reference_here\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575467700,\"reply_to_message\":{\"message_id\":553959,\"from\":{\"id\":108157884,\"is_bot\":false,\"first_name\":\"Mike\",\"last_name\":\"Lubinets\",\"username\":\"mersinvald\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575456341},\"text\":\"\\u041f\\u0440\\u0435\\u0434\\u044b\\u0434\\u0443\\u0449\\u0438\\u0439 \\u043f\\u0438\\u043d: https://t.me/rustjerk/553115\",\"entities\":[{\"offset\":16,\"length\":28,\"type\":\"url\"}]}}"
Failed to parse update "Can not get message data at line 2 column 686": "{\"update_id\":310905742,\n\"message\":{\"message_id\":554005,\"from\":{\"id\":441826110,\"is_bot\":false,\"first_name\":\"\\u0410\\u043d\\u0442\\u043e\",\"last_name\":\"\\u0428\\u043a\\u0430\",\"username\":\"insert_reference_here\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575468163,\"reply_to_message\":{\"message_id\":553919,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575422664},\"text\":\"@re4lmayer \\u0437\\u0430\\u0434\\u0440\\u043e\\u0442\",\"entities\":[{\"offset\":0,\"length\":10,\"type\":\"mention\"}]}}"
Failed to parse update "Can not get message data at line 2 column 608": "{\"update_id\":310906389,\n\"message\":{\"message_id\":554597,\"from\":{\"id\":441826110,\"is_bot\":false,\"first_name\":\"\\u041f\\u0430\",\"last_name\":\"\\u0412\\u0435\\u043b\",\"username\":\"insert_reference_here\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575545370,\"reply_to_message\":{\"message_id\":554577,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575541741},\"text\":\"\\u0417\\u0430\\u0434\\u0440\\u043e\\u0442\"}}"
Failed to parse update "Can not get message data at line 2 column 523": "{\"update_id\":310907111,\n\"message\":{\"message_id\":555164,\"from\":{\"id\":523792555,\"is_bot\":false,\"first_name\":\"shooter from Izmaylovo\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575667941,\"reply_to_message\":{\"message_id\":555162,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575667636},\"text\":\"Jesky 4el\"}}"
Failed to parse update "Can not get message data at line 2 column 606": "{\"update_id\":310907365,\n\"message\":{\"message_id\":555414,\"from\":{\"id\":441826110,\"is_bot\":false,\"first_name\":\"\\u041e\",\"last_name\":\"\\u041b\\u0435\\u0433\",\"username\":\"insert_reference_here\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575742366,\"reply_to_message\":{\"message_id\":555364,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575724655},\"text\":\"\\u0417\\u0430\\u0434\\u0440\\u043e\\u0442 [3]\"}}"
Failed to parse update "Can not get message data at line 2 column 526": "{\"update_id\":310907425,\n\"message\":{\"message_id\":555479,\"from\":{\"id\":471878788,\"is_bot\":false,\"first_name\":\"Tux\",\"username\":\"tuxubuntu\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575759683,\"reply_to_message\":{\"message_id\":555478,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575759293},\"text\":\"s/ree/it\"}}"
Failed to parse update "Can not get message data at line 2 column 606": "{\"update_id\":310907440,\n\"message\":{\"message_id\":555497,\"from\":{\"id\":441826110,\"is_bot\":false,\"first_name\":\"\\u041e\",\"last_name\":\"\\u041b\\u0435\\u0433\",\"username\":\"insert_reference_here\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575789828,\"reply_to_message\":{\"message_id\":555478,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001329862200,\"title\":\"Rust LGBTTQQIAAP\\u0421++ strikeforce\",\"username\":\"rustjerk\",\"type\":\"supergroup\"},\"date\":1575759293},\"text\":\"\\u0417\\u0430\\u0434\\u0440\\u043e\\u0442 [4]\"}}"
Failed to parse update "Can not get message data at line 2 column 689": "{\"update_id\":310908485,\n\"message\":{\"message_id\":425,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001130195811,\"title\":\"Rust Jerk Reburn\",\"username\":\"rustjerkreborn\",\"type\":\"supergroup\"},\"date\":1575826476,\"reply_to_message\":{\"message_id\":421,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001130195811,\"title\":\"Rust Jerk Reburn\",\"username\":\"rustjerkreborn\",\"type\":\"supergroup\"},\"date\":1575826421},\"text\":\"\\u043f\\u043e\\u0445\\u043e\\u0434\\u0443 \\u043d\\u0435 \\u043f\\u0440\\u0438\\u0434\\u0451\\u0442\\u0441\\u044f \\u0440\\u0435\\u043a\\u043e\\u0440\\u0434\\u044b \\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c, \\u043a\\u0435\\u043a\"}}"

Invalid type: map, expected a string:

Failed to parse update "invalid type: map, expected a string at line 2 column 1375": "{\"update_id\":310908480,\n\"edited_message\":{\"message_id\":417,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001130195811,\"title\":\"Rust Jerk Reburn\",\"username\":\"rustjerkreborn\",\"type\":\"supergroup\"},\"date\":1575826121,\"edit_date\":1575826321,\"game\":{\"title\":\"Tents and Trees\",\"text\":\"Top Players\\n1. \\u0432\\u0435\\u0441\\u0451\\u043b\\u044b\\u0439 \\u043a\\u0440\\u0435\\u043c\\u043e\\u0432\\u044b\\u0439 \\ud83c\\udf70 \\u0442\\u043e\\u0440\\u0442 \\u2013 200\",\"text_entities\":[{\"offset\":0,\"length\":11,\"type\":\"bold\"},{\"offset\":42,\"length\":3,\"type\":\"bold\"}],\"description\":\"Place a tent next to each tree in this original puzzle game! Numbers around the grid tell you how many tents must be placed on each row and column. Be careful, tents can\'t touch each other!\",\"photo\":[{\"file_id\":\"AgADBAADgLExG10a2FHiDkgf57rzsiNXwxoABAEAAwIAA20AA25tBgABFgQ\",\"file_size\":11649,\"width\":320,\"height\":180},{\"file_id\":\"AgADBAADgLExG10a2FHiDkgf57rzsiNXwxoABAEAAwIAA3gAA29tBgABFgQ\",\"file_size\":30880,\"width\":640,\"height\":360}],\"animation\":{\"file_name\":\"video.mp4\",\"mime_type\":\"video/mp4\",\"duration\":5,\"width\":320,\"height\":180,\"thumb\":{\"file_id\":\"AAQEAAOOBAACXRrYUav4tSkUNwhvHOewGgAEAQAHbQADqj4AAhYE\",\"file_size\":18652,\"width\":320,\"height\":180},\"file_id\":\"CgADBAADjgQAAl0a2FGr-LUpFDcIbxYE\",\"file_size\":380828}},\"reply_markup\":{\"inline_keyboard\":[[{\"text\":\"Play Tents and Trees!\",\"callback_game\":{}}]]}}}"
Failed to parse update "invalid type: map, expected a string at line 2 column 1438": "{\"update_id\":310908481,\n\"edited_message\":{\"message_id\":417,\"from\":{\"id\":597852601,\"is_bot\":false,\"first_name\":\"Re-L\",\"username\":\"re4lmayer\"},\"chat\":{\"id\":-1001130195811,\"title\":\"Rust Jerk Reburn\",\"username\":\"rustjerkreborn\",\"type\":\"supergroup\"},\"date\":1575826121,\"edit_date\":1575826421,\"game\":{\"title\":\"Tents and Trees\",\"text\":\"Top Players\\n1. Re-L \\u2013 1323000\\n2. \\u0432\\u0435\\u0441\\u0451\\u043b\\u044b\\u0439 \\u043a\\u0440\\u0435\\u043c\\u043e\\u0432\\u044b\\u0439 \\ud83c\\udf70 \\u0442\\u043e\\u0440\\u0442 \\u2013 200\",\"text_entities\":[{\"offset\":0,\"length\":11,\"type\":\"bold\"},{\"offset\":22,\"length\":7,\"type\":\"bold\"},{\"offset\":60,\"length\":3,\"type\":\"bold\"}],\"description\":\"Place a tent next to each tree in this original puzzle game! Numbers around the grid tell you how many tents must be placed on each row and column. Be careful, tents can\'t touch each other!\",\"photo\":[{\"file_id\":\"AgADBAADgLExG10a2FHiDkgf57rzsiNXwxoABAEAAwIAA20AA25tBgABFgQ\",\"file_size\":11649,\"width\":320,\"height\":180},{\"file_id\":\"AgADBAADgLExG10a2FHiDkgf57rzsiNXwxoABAEAAwIAA3gAA29tBgABFgQ\",\"file_size\":30880,\"width\":640,\"height\":360}],\"animation\":{\"file_name\":\"video.mp4\",\"mime_type\":\"video/mp4\",\"duration\":5,\"width\":320,\"height\":180,\"thumb\":{\"file_id\":\"AAQEAAOOBAACXRrYUav4tSkUNwhvHOewGgAEAQAHbQADqj4AAhYE\",\"file_size\":18652,\"width\":320,\"height\":180},\"file_id\":\"CgADBAADjgQAAl0a2FGr-LUpFDcIbxYE\",\"file_size\":380828}},\"reply_markup\":{\"inline_keyboard\":[[{\"text\":\"Play Tents and Trees!\",\"callback_game\":{}}]]}}}"

how to send simple msg?

I tried to send message in main local thread not in handler function but it's occurred error panic.

thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err`
...
thread::spawn(move || {
... // logic stuff
   api_.spawn(api_.execute(SendMessage::new(chat_id, "OK")).then(|r| {
       if let Err(e) = r {
           error!("An error as occured: {:?}", e);
      }
      //Ok(HandlerResult::Continue)
       Ok::<(), ()>(())
     }));
... // logic stuff
});

it's not even go show some error in closure function. How i will solve this? ๐Ÿ˜

Make framework independent of async runtime provider.

Right now carapax and tg-bot works only with tokio runtime:

thread 'async-std/executor' panicked at 'not currently running on the Tokio runtime.', /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.13/src/runtime/handle.rs:63:9
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.44/src/backtrace/libunwind.rs:86
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.44/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:78
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:59
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1069
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1427
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:62
   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:49
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:198
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:218
  10: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:511
  11: rust_begin_unwind
             at src/libstd/panicking.rs:419
  12: core::panicking::panic_fmt
             at src/libcore/panicking.rs:111
  13: core::option::expect_failed
             at src/libcore/option.rs:1203
  14: core::option::Option<T>::expect
             at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libcore/option.rs:347
  15: tokio::runtime::handle::Handle::current
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.13/src/runtime/handle.rs:63
  16: tokio::runtime::blocking::pool::spawn_blocking
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.13/src/runtime/blocking/pool.rs:65
  17: tokio::task::blocking::spawn_blocking
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.13/src/task/blocking.rs:69
  18: <hyper::client::connect::dns::GaiResolver as tower_service::Service<hyper::client::connect::dns::Name>>::call
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/hyper-0.13.4/src/client/connect/dns.rs:120
  19: <S as hyper::client::connect::dns::sealed::Resolve>::resolve
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/hyper-0.13.4/src/client/connect/dns.rs:332
  20: hyper::client::connect::dns::resolve::{{closure}}
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/hyper-0.13.4/src/client/connect/dns.rs:342
  21: <std::future::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libstd/future.rs:44
  22: std::future::poll_with_tls_context
             at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libstd/future.rs:99
  23: hyper::client::connect::http::HttpConnector<R>::call_async::{{closure}}
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/hyper-0.13.4/src/client/connect/http.rs:307
  24: <std::future::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libstd/future.rs:44
  25: std::future::poll_with_tls_context
             at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libstd/future.rs:99
  26: <hyper::client::connect::http::HttpConnector<R> as tower_service::Service<http::uri::Uri>>::call::{{closure}}
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/hyper-0.13.4/src/client/connect/http.rs:248
  27: <std::future::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libstd/future.rs:44
  28: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libcore/future/future.rs:118
  29: <hyper::client::connect::http::HttpConnecting<R> as core::future::future::Future>::poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/hyper-0.13.4/src/client/connect/http.rs:388
  30: <futures_util::future::either::Either<A,B> as core::future::future::Future>::poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.4/src/future/either.rs:62
  31: std::future::poll_with_tls_context
             at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libstd/future.rs:99
  32: <hyper_rustls::connector::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::{{closure}}
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/hyper-rustls-0.20.0/src/connector.rs:126
  33: <std::future::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libstd/future.rs:44
  34: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libcore/future/future.rs:118
  35: std::future::poll_with_tls_context
             at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libstd/future.rs:99
  36: reqwest::connect::Connector::connect_with_maybe_proxy::{{closure}}
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/reqwest-0.10.4/src/connect.rs:371
  37: <std::future::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libstd/future.rs:44
  38: std::future::poll_with_tls_context
             at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libstd/future.rs:99
  39: reqwest::connect::with_timeout::{{closure}}
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/reqwest-0.10.4/src/connect.rs:500
  40: <std::future::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libstd/future.rs:44
  41: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libcore/future/future.rs:118
  42: <hyper::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/hyper-0.13.4/src/service/oneshot.rs:58
  43: <F as futures_core::future::TryFuture>::try_poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-0.3.4/src/future.rs:83
  44: <futures_util::future::try_future::map_err::MapErr<Fut,F> as core::future::future::Future>::poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.4/src/future/try_future/map_err.rs:43
  45: <F as futures_core::future::TryFuture>::try_poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-0.3.4/src/future.rs:83
  46: futures_util::future::try_future::try_chain::TryChain<Fut1,Fut2,Data>::poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.4/src/future/try_future/try_chain.rs:53
  47: <futures_util::future::try_future::and_then::AndThen<Fut1,Fut2,F> as core::future::future::Future>::poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.4/src/future/try_future/and_then.rs:46
  48: <futures_util::future::either::Either<A,B> as core::future::future::Future>::poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.4/src/future/either.rs:62
  49: <hyper::common::lazy::Lazy<F,R> as core::future::future::Future>::poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/hyper-0.13.4/src/common/lazy.rs:59
  50: futures_util::future::future::FutureExt::poll_unpin
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.4/src/future/future/mod.rs:507
  51: <futures_util::future::select::Select<A,B> as core::future::future::Future>::poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.4/src/future/select.rs:64
  52: futures_util::future::future::chain::Chain<Fut1,Fut2,Data>::poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.4/src/future/future/chain.rs:44
  53: <futures_util::future::future::then::Then<Fut1,Fut2,F> as core::future::future::Future>::poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.4/src/future/future/then.rs:44
  54: <F as futures_core::future::TryFuture>::try_poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-0.3.4/src/future.rs:83
  55: futures_util::future::try_future::try_chain::TryChain<Fut1,Fut2,Data>::poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.4/src/future/try_future/try_chain.rs:53
  56: <futures_util::future::try_future::and_then::AndThen<Fut1,Fut2,F> as core::future::future::Future>::poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.4/src/future/try_future/and_then.rs:46
  57: hyper::client::Client<C,B>::retryably_send_request::{{closure}}
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/hyper-0.13.4/src/client/mod.rs:253
  58: <futures_util::future::poll_fn::PollFn<F> as core::future::future::Future>::poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.4/src/future/poll_fn.rs:54
  59: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libcore/future/future.rs:118
  60: <hyper::client::ResponseFuture as core::future::future::Future>::poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/hyper-0.13.4/src/client/mod.rs:604
  61: <reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/reqwest-0.10.4/src/async_impl/client.rs:1276
  62: <reqwest::async_impl::client::Pending as core::future::future::Future>::poll
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/reqwest-0.10.4/src/async_impl/client.rs:1255
  63: std::future::poll_with_tls_context
             at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libstd/future.rs:99
  64: tgbot::api::Api::execute::{{closure}}
             at /home/humb1t/.cargo/registry/src/github.com-1ecc6299db9ec823/tgbot-0.7.1/src/api.rs:158

It will be great to be runtime independent.

Error: "from" field is missing

Hey guys!

Sometimes, like once per a few days, I would receive this error

[2019-07-17T07:52:47Z ERROR tgbot::handler::poll] An error has occurred while getting updates: Error("\"from\" field is missing", line: 3, column: 293)

I haven't experienced it myself, but they say the bot went unresponsive for a few minutes because of that.

Would you kindly point me in the right direction as to how to determine the reason for this error?

Update major versions of dependencies

Hello,
There available some major versions of dependencies that maybe need to be increased.
In my own project in Cargo.lock I have only some duplicates dependencies but I have looked for everything that could be increased.

tg-rs/tgbot/Cargo.toml

[dependencies]
derive_more = "0.15.0"
url = "2.1.0"
[dev-dependencies]
dotenv = "0.15.0"
env_logger = "0.7.1"
mockito = "0.21.0"

tg-rs/carapax-access/Cargo.toml

[dev-dependencies]
dotenv = "0.15.0"
env_logger = "0.7.1"

tg-rs/carapax-i18n/Cargo.toml

[dev-dependencies]
dotenv = "0.15.0"
env_logger = "0.7.1"

tg-rs/carapax-ratelimit/Cargo.toml

[dependencies]
ratelimit_meter = "5.0.0"
[dev-dependencies]
dotenv = "0.15.0"
env_logger = "0.7.1"

tg-rs/carapax-session/Cargo.toml

[dev-dependencies]
dotenv = "0.15.0"
env_logger = "0.7.1"

tg-rs/carapax/Cargo.toml

[dev-dependencies]
dotenv = "0.15.0"
env_logger = "0.7.1"

Handlers overlapping

I make 2 handlers

    #[handler(command = "/start")]
    async fn command_handler(ctx: &Ctx, cmd: Command) -> HandlerResult { ... }

    #[handler]
    async fn message_handler(ctx: &Ctx, msg: Message) -> HandlerResult { ... }

I expect that /start command will be handled once in the first handler.
Actually /start will handled twice in each handler.

The current behavior is quite counterintuitive. What do you think?

A more flexible rate-limit rules

I think we should change key argument in RateLimitHandler::keyed to something like this:

  • RateLimitKey::User - limit per user id for all users
  • RateLimitKey::Chat - limit per chat id for all chats
  • RateLimitKey::UserId(Id) - limit for specified user id only where Id is enum of @username and user_id
  • RateLimitKey::ChatId(Id) - limit for specified chat id only where Id is enum of @username and chat_id
  • vec![RateLimitKey::UserId(id_1), ..., RateLimitKey::UserId(id_n),] - list of user ids
  • vec![RateLimitKey::UserId(id_1), ..., RateLimitKey::UserId(id_n),] - list of chat ids

I guess we can mix list of user ids and chat ids, but deny RateLimitKey::User and RateLimitKey::Chat

Also we can introduce a RateLimitKeyResolver trait:

trait RateLimitKeyResolver {
    fn resolve_key(update: &Update) -> String;
}

this allows to build a more complex keys, based on commands, types of updates, etc...

Need an example with a delay

Hey guys!

Thank you very much for the great job well done.

I'm struggling with sending two messages with a delay in between. I obviously can't use and_then because api should be 'static in this case. So before writing my own future I just wanted to ask how would you create a delay between two messages inside api.spawn?

webhook reply

Hello!

I have found out that webhook can reply with message. See link

I have test it, and it is true. Here is a primitive webhook WORKING example

#[post("/telegram/test-dev", format = "application/json", data = "<telegram_update>")]
pub fn telegram_webhook(telegram_update: Json<tgbot::types::Update>) -> Result<Json<JsonValue>, String> {
    let Json(update) = telegram_update;

    if let UpdateKind::Message(message) = update.kind {
        if let Some(text) = message.get_text() {
            let chat_id: i64 = message.get_chat_id();

            let val = json!({
                "method": "sendMessage",
                "chat_id": chat_id,
                "text" : "My Webhook answer..."
            });

            return Ok(Json(val));
        }
    }

    Err("".into())
}

So, the question is, how can I build an answer using SendMessage struct?
something like this:

SendMessage::new(chat_id, "My Webhook answer...")

instead of hand-write json!({ }).
I have noticed that SendMessage struct have no "method" field and RequestBuilder seems like something other.

If there will be a working example how to handle if - will be ideal
Forward thank you for your answer

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.