tg_cli: add InputChatPhoto.
This commit is contained in:
parent
be3c2c8c5d
commit
2cac802e07
@ -898,6 +898,57 @@ class CliClient final : public Actor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct InputChatPhoto {
|
||||||
|
enum class Type { Null, Previous, Static, Animation, Sticker };
|
||||||
|
Type type = Type::Null;
|
||||||
|
int64 profile_photo_id = 0;
|
||||||
|
string photo;
|
||||||
|
string main_frame_timestamp;
|
||||||
|
ChatPhotoSticker sticker;
|
||||||
|
|
||||||
|
operator td_api::object_ptr<td_api::InputChatPhoto>() const {
|
||||||
|
switch (type) {
|
||||||
|
case Type::Null:
|
||||||
|
return nullptr;
|
||||||
|
case Type::Previous:
|
||||||
|
return td_api::make_object<td_api::inputChatPhotoPrevious>(profile_photo_id);
|
||||||
|
case Type::Static:
|
||||||
|
return td_api::make_object<td_api::inputChatPhotoStatic>(as_input_file(photo));
|
||||||
|
case Type::Animation:
|
||||||
|
return td_api::make_object<td_api::inputChatPhotoAnimation>(as_input_file(photo),
|
||||||
|
to_double(main_frame_timestamp));
|
||||||
|
case Type::Sticker:
|
||||||
|
return td_api::make_object<td_api::inputChatPhotoSticker>(sticker);
|
||||||
|
default:
|
||||||
|
UNREACHABLE();
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
void get_args(string &args, InputChatPhoto &arg) const {
|
||||||
|
args = trim(args);
|
||||||
|
if (args.empty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (to_integer_safe<int64>(args).is_ok()) {
|
||||||
|
arg.type = InputChatPhoto::Type::Previous;
|
||||||
|
arg.profile_photo_id = to_integer<int64>(args);
|
||||||
|
} else if (args[0] == 'p') {
|
||||||
|
arg.type = InputChatPhoto::Type::Static;
|
||||||
|
arg.photo = args.substr(1);
|
||||||
|
} else if (args[0] == 'a') {
|
||||||
|
arg.type = InputChatPhoto::Type::Animation;
|
||||||
|
std::tie(arg.photo, arg.main_frame_timestamp) = split(args.substr(1), get_delimiter(args));
|
||||||
|
} else if (args[0] == 's') {
|
||||||
|
arg.type = InputChatPhoto::Type::Sticker;
|
||||||
|
args = args.substr(1);
|
||||||
|
get_args(args, arg.sticker);
|
||||||
|
} else {
|
||||||
|
LOG(ERROR) << "Invalid InputChatPhoto = " << args;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
template <class FirstType, class SecondType, class... Types>
|
template <class FirstType, class SecondType, class... Types>
|
||||||
void get_args(string &args, FirstType &first_arg, SecondType &second_arg, Types &...other_args) const {
|
void get_args(string &args, FirstType &first_arg, SecondType &second_arg, Types &...other_args) const {
|
||||||
string arg;
|
string arg;
|
||||||
@ -4528,36 +4579,11 @@ class CliClient final : public Actor {
|
|||||||
string title;
|
string title;
|
||||||
get_args(args, chat_id, title);
|
get_args(args, chat_id, title);
|
||||||
send_request(td_api::make_object<td_api::setChatTitle>(chat_id, title));
|
send_request(td_api::make_object<td_api::setChatTitle>(chat_id, title));
|
||||||
} else if (op == "scpe") {
|
|
||||||
ChatId chat_id;
|
|
||||||
get_args(args, chat_id);
|
|
||||||
send_request(td_api::make_object<td_api::setChatPhoto>(chat_id, nullptr));
|
|
||||||
} else if (op == "scpp") {
|
|
||||||
ChatId chat_id;
|
|
||||||
int64 photo_id;
|
|
||||||
get_args(args, chat_id, photo_id);
|
|
||||||
send_request(td_api::make_object<td_api::setChatPhoto>(
|
|
||||||
chat_id, td_api::make_object<td_api::inputChatPhotoPrevious>(photo_id)));
|
|
||||||
} else if (op == "scp") {
|
} else if (op == "scp") {
|
||||||
ChatId chat_id;
|
ChatId chat_id;
|
||||||
string photo_path;
|
InputChatPhoto input_chat_photo;
|
||||||
get_args(args, chat_id, photo_path);
|
get_args(args, chat_id, input_chat_photo);
|
||||||
send_request(td_api::make_object<td_api::setChatPhoto>(
|
send_request(td_api::make_object<td_api::setChatPhoto>(chat_id, input_chat_photo));
|
||||||
chat_id, td_api::make_object<td_api::inputChatPhotoStatic>(as_input_file(photo_path))));
|
|
||||||
} else if (op == "scpa") {
|
|
||||||
ChatId chat_id;
|
|
||||||
string animation;
|
|
||||||
string main_frame_timestamp;
|
|
||||||
get_args(args, chat_id, animation, main_frame_timestamp);
|
|
||||||
send_request(td_api::make_object<td_api::setChatPhoto>(
|
|
||||||
chat_id, td_api::make_object<td_api::inputChatPhotoAnimation>(as_input_file(animation),
|
|
||||||
to_double(main_frame_timestamp))));
|
|
||||||
} else if (op == "scps") {
|
|
||||||
ChatId chat_id;
|
|
||||||
ChatPhotoSticker sticker;
|
|
||||||
get_args(args, chat_id, sticker);
|
|
||||||
send_request(td_api::make_object<td_api::setChatPhoto>(
|
|
||||||
chat_id, td_api::make_object<td_api::inputChatPhotoSticker>(sticker)));
|
|
||||||
} else if (op == "scmt") {
|
} else if (op == "scmt") {
|
||||||
ChatId chat_id;
|
ChatId chat_id;
|
||||||
int32 auto_delete_time;
|
int32 auto_delete_time;
|
||||||
@ -4954,71 +4980,20 @@ class CliClient final : public Actor {
|
|||||||
bool force_full;
|
bool force_full;
|
||||||
get_args(args, url, force_full);
|
get_args(args, url, force_full);
|
||||||
send_request(td_api::make_object<td_api::getWebPageInstantView>(url, force_full));
|
send_request(td_api::make_object<td_api::getWebPageInstantView>(url, force_full));
|
||||||
} else if (op == "sppp" || op == "spppf") {
|
} else if (op == "spp" || op == "spppf") {
|
||||||
int64 profile_photo_id;
|
InputChatPhoto input_chat_photo;
|
||||||
get_args(args, profile_photo_id);
|
get_args(args, input_chat_photo);
|
||||||
send_request(td_api::make_object<td_api::setProfilePhoto>(
|
send_request(td_api::make_object<td_api::setProfilePhoto>(input_chat_photo, op == "sppf"));
|
||||||
td_api::make_object<td_api::inputChatPhotoPrevious>(profile_photo_id), op == "spppf"));
|
|
||||||
} else if (op == "spp" || op == "sppf") {
|
|
||||||
send_request(td_api::make_object<td_api::setProfilePhoto>(
|
|
||||||
td_api::make_object<td_api::inputChatPhotoStatic>(as_input_file(args)), op == "sppf"));
|
|
||||||
} else if (op == "sppa" || op == "sppaf") {
|
|
||||||
string animation;
|
|
||||||
string main_frame_timestamp;
|
|
||||||
get_args(args, animation, main_frame_timestamp);
|
|
||||||
send_request(
|
|
||||||
td_api::make_object<td_api::setProfilePhoto>(td_api::make_object<td_api::inputChatPhotoAnimation>(
|
|
||||||
as_input_file(animation), to_double(main_frame_timestamp)),
|
|
||||||
op == "sppaf"));
|
|
||||||
} else if (op == "spps" || op == "sppsf") {
|
|
||||||
ChatPhotoSticker sticker;
|
|
||||||
get_args(args, sticker);
|
|
||||||
send_request(td_api::make_object<td_api::setProfilePhoto>(
|
|
||||||
td_api::make_object<td_api::inputChatPhotoSticker>(sticker), op == "sppsf"));
|
|
||||||
} else if (op == "suppp") {
|
} else if (op == "suppp") {
|
||||||
UserId user_id;
|
UserId user_id;
|
||||||
string photo;
|
InputChatPhoto input_chat_photo;
|
||||||
get_args(args, user_id, photo);
|
get_args(args, user_id, input_chat_photo);
|
||||||
send_request(td_api::make_object<td_api::setUserPersonalProfilePhoto>(
|
send_request(td_api::make_object<td_api::setUserPersonalProfilePhoto>(user_id, input_chat_photo));
|
||||||
user_id, td_api::make_object<td_api::inputChatPhotoStatic>(as_input_file(photo))));
|
|
||||||
} else if (op == "supppa") {
|
|
||||||
UserId user_id;
|
|
||||||
string animation;
|
|
||||||
string main_frame_timestamp;
|
|
||||||
get_args(args, user_id, animation, main_frame_timestamp);
|
|
||||||
send_request(td_api::make_object<td_api::setUserPersonalProfilePhoto>(
|
|
||||||
user_id, td_api::make_object<td_api::inputChatPhotoAnimation>(as_input_file(animation),
|
|
||||||
to_double(main_frame_timestamp))));
|
|
||||||
} else if (op == "supppe") {
|
|
||||||
UserId user_id;
|
|
||||||
get_args(args, user_id);
|
|
||||||
send_request(td_api::make_object<td_api::setUserPersonalProfilePhoto>(user_id, nullptr));
|
|
||||||
} else if (op == "suppps") {
|
|
||||||
UserId user_id;
|
|
||||||
ChatPhotoSticker sticker;
|
|
||||||
get_args(args, user_id, sticker);
|
|
||||||
send_request(td_api::make_object<td_api::setUserPersonalProfilePhoto>(
|
|
||||||
user_id, td_api::make_object<td_api::inputChatPhotoSticker>(sticker)));
|
|
||||||
} else if (op == "supp") {
|
} else if (op == "supp") {
|
||||||
UserId user_id;
|
UserId user_id;
|
||||||
string photo;
|
InputChatPhoto input_chat_photo;
|
||||||
get_args(args, user_id, photo);
|
get_args(args, user_id, input_chat_photo);
|
||||||
send_request(td_api::make_object<td_api::suggestUserProfilePhoto>(
|
send_request(td_api::make_object<td_api::suggestUserProfilePhoto>(user_id, input_chat_photo));
|
||||||
user_id, td_api::make_object<td_api::inputChatPhotoStatic>(as_input_file(photo))));
|
|
||||||
} else if (op == "suppa") {
|
|
||||||
UserId user_id;
|
|
||||||
string animation;
|
|
||||||
string main_frame_timestamp;
|
|
||||||
get_args(args, user_id, animation, main_frame_timestamp);
|
|
||||||
send_request(td_api::make_object<td_api::suggestUserProfilePhoto>(
|
|
||||||
user_id, td_api::make_object<td_api::inputChatPhotoAnimation>(as_input_file(animation),
|
|
||||||
to_double(main_frame_timestamp))));
|
|
||||||
} else if (op == "supps") {
|
|
||||||
UserId user_id;
|
|
||||||
ChatPhotoSticker sticker;
|
|
||||||
get_args(args, user_id, sticker);
|
|
||||||
send_request(td_api::make_object<td_api::suggestUserProfilePhoto>(
|
|
||||||
user_id, td_api::make_object<td_api::inputChatPhotoSticker>(sticker)));
|
|
||||||
} else if (op == "sh") {
|
} else if (op == "sh") {
|
||||||
const string &prefix = args;
|
const string &prefix = args;
|
||||||
send_request(td_api::make_object<td_api::searchHashtags>(prefix, 10));
|
send_request(td_api::make_object<td_api::searchHashtags>(prefix, 10));
|
||||||
|
Loading…
Reference in New Issue
Block a user