Improve Game constructor.

This commit is contained in:
levlam 2021-09-02 16:49:57 +03:00
parent 895d7f68d8
commit 6fad8e897f
3 changed files with 10 additions and 23 deletions

View File

@ -22,12 +22,15 @@
namespace td { namespace td {
Game::Game(Td *td, tl_object_ptr<telegram_api::game> &&game, DialogId owner_dialog_id) Game::Game(Td *td, UserId bot_user_id, tl_object_ptr<telegram_api::game> &&game, FormattedText text,
DialogId owner_dialog_id)
: Game(td, std::move(game->title_), std::move(game->description_), std::move(game->photo_), : Game(td, std::move(game->title_), std::move(game->description_), std::move(game->photo_),
std::move(game->document_), owner_dialog_id) { std::move(game->document_), owner_dialog_id) {
id_ = game->id_; id_ = game->id_;
access_hash_ = game->access_hash_; access_hash_ = game->access_hash_;
bot_user_id_ = bot_user_id.is_valid() ? bot_user_id : UserId();
short_name_ = game->short_name_; short_name_ = game->short_name_;
text_ = std::move(text);
} }
Game::Game(Td *td, string title, string description, tl_object_ptr<telegram_api::Photo> &&photo, Game::Game(Td *td, string title, string description, tl_object_ptr<telegram_api::Photo> &&photo,
@ -65,14 +68,6 @@ bool Game::is_empty() const {
return short_name_.empty(); return short_name_.empty();
} }
void Game::set_bot_user_id(UserId bot_user_id) {
if (bot_user_id.is_valid()) {
bot_user_id_ = bot_user_id;
} else {
bot_user_id_ = UserId();
}
}
UserId Game::get_bot_user_id() const { UserId Game::get_bot_user_id() const {
return bot_user_id_; return bot_user_id_;
} }
@ -83,10 +78,6 @@ vector<FileId> Game::get_file_ids(const Td *td) const {
return result; return result;
} }
void Game::set_text(FormattedText &&text) {
text_ = std::move(text);
}
const FormattedText &Game::get_text() const { const FormattedText &Game::get_text() const {
return text_; return text_;
} }

View File

@ -44,23 +44,22 @@ class Game {
public: public:
Game() = default; Game() = default;
Game(Td *td, tl_object_ptr<telegram_api::game> &&game, DialogId owner_dialog_id); Game(Td *td, UserId bot_user_id, tl_object_ptr<telegram_api::game> &&game, FormattedText text,
DialogId owner_dialog_id);
// for inline results
Game(Td *td, string title, string description, tl_object_ptr<telegram_api::Photo> &&photo, Game(Td *td, string title, string description, tl_object_ptr<telegram_api::Photo> &&photo,
tl_object_ptr<telegram_api::Document> &&document, DialogId owner_dialog_id); tl_object_ptr<telegram_api::Document> &&document, DialogId owner_dialog_id);
// for outgoing messages
Game(UserId bot_user_id, string short_name); Game(UserId bot_user_id, string short_name);
bool is_empty() const; bool is_empty() const;
void set_bot_user_id(UserId bot_user_id);
UserId get_bot_user_id() const; UserId get_bot_user_id() const;
vector<FileId> get_file_ids(const Td *td) const; vector<FileId> get_file_ids(const Td *td) const;
void set_text(FormattedText &&text);
const FormattedText &get_text() const; const FormattedText &get_text() const;
tl_object_ptr<td_api::game> get_game_object(Td *td, bool skip_bot_commands) const; tl_object_ptr<td_api::game> get_game_object(Td *td, bool skip_bot_commands) const;

View File

@ -4171,14 +4171,11 @@ unique_ptr<MessageContent> get_message_content(Td *td, FormattedText message,
case telegram_api::messageMediaGame::ID: { case telegram_api::messageMediaGame::ID: {
auto message_game = move_tl_object_as<telegram_api::messageMediaGame>(media); auto message_game = move_tl_object_as<telegram_api::messageMediaGame>(media);
auto m = make_unique<MessageGame>(Game(td, std::move(message_game->game_), owner_dialog_id)); auto m =
make_unique<MessageGame>(Game(td, via_bot_user_id, std::move(message_game->game_), message, owner_dialog_id));
if (m->game.is_empty()) { if (m->game.is_empty()) {
break; break;
} }
m->game.set_bot_user_id(via_bot_user_id);
m->game.set_text(std::move(message));
return std::move(m); return std::move(m);
} }
case telegram_api::messageMediaInvoice::ID: case telegram_api::messageMediaInvoice::ID: