Add StoryManager::StoryInfo.
This commit is contained in:
parent
cbdd558d3a
commit
45da338329
@ -803,6 +803,28 @@ void StoryManager::Story::parse(ParserT &parser) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <class StorerT>
|
||||||
|
void StoryManager::StoryInfo::store(StorerT &storer) const {
|
||||||
|
using td::store;
|
||||||
|
BEGIN_STORE_FLAGS();
|
||||||
|
STORE_FLAG(is_for_close_friends_);
|
||||||
|
END_STORE_FLAGS();
|
||||||
|
store(story_id_, storer);
|
||||||
|
store(date_, storer);
|
||||||
|
store(expire_date_, storer);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class ParserT>
|
||||||
|
void StoryManager::StoryInfo::parse(ParserT &parser) {
|
||||||
|
using td::parse;
|
||||||
|
BEGIN_PARSE_FLAGS();
|
||||||
|
PARSE_FLAG(is_for_close_friends_);
|
||||||
|
END_PARSE_FLAGS();
|
||||||
|
parse(story_id_, parser);
|
||||||
|
parse(date_, parser);
|
||||||
|
parse(expire_date_, parser);
|
||||||
|
}
|
||||||
|
|
||||||
template <class StorerT>
|
template <class StorerT>
|
||||||
void StoryManager::PendingStory::store(StorerT &storer) const {
|
void StoryManager::PendingStory::store(StorerT &storer) const {
|
||||||
using td::store;
|
using td::store;
|
||||||
@ -1997,18 +2019,26 @@ void StoryManager::unregister_story(StoryFullId story_full_id, FullMessageId ful
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
td_api::object_ptr<td_api::storyInfo> StoryManager::get_story_info_object(StoryFullId story_full_id) const {
|
StoryManager::StoryInfo StoryManager::get_story_info(StoryFullId story_full_id) const {
|
||||||
return get_story_info_object(story_full_id, get_story(story_full_id));
|
const auto *story = get_story(story_full_id);
|
||||||
|
if (story == nullptr || !is_active_story(story)) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
StoryInfo story_info;
|
||||||
|
story_info.story_id_ = story_full_id.get_story_id();
|
||||||
|
story_info.date_ = story->date_;
|
||||||
|
story_info.expire_date_ = story->expire_date_;
|
||||||
|
story_info.is_for_close_friends_ = story->is_for_close_friends_;
|
||||||
|
return story_info;
|
||||||
}
|
}
|
||||||
|
|
||||||
td_api::object_ptr<td_api::storyInfo> StoryManager::get_story_info_object(StoryFullId story_full_id,
|
td_api::object_ptr<td_api::storyInfo> StoryManager::get_story_info_object(StoryFullId story_full_id) const {
|
||||||
const Story *story) const {
|
auto story_info = get_story_info(story_full_id);
|
||||||
if (story == nullptr || !is_active_story(story)) {
|
if (!story_info.story_id_.is_valid()) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
return td_api::make_object<td_api::storyInfo>(story_info.story_id_.get(), story_info.date_,
|
||||||
return td_api::make_object<td_api::storyInfo>(story_full_id.get_story_id().get(), story->date_,
|
story_info.is_for_close_friends_);
|
||||||
story->is_for_close_friends_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
td_api::object_ptr<td_api::story> StoryManager::get_story_object(StoryFullId story_full_id) const {
|
td_api::object_ptr<td_api::story> StoryManager::get_story_object(StoryFullId story_full_id) const {
|
||||||
|
@ -72,6 +72,19 @@ class StoryManager final : public Actor {
|
|||||||
void parse(ParserT &parser);
|
void parse(ParserT &parser);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct StoryInfo {
|
||||||
|
StoryId story_id_;
|
||||||
|
int32 date_ = 0;
|
||||||
|
int32 expire_date_ = 0;
|
||||||
|
bool is_for_close_friends_ = false;
|
||||||
|
|
||||||
|
template <class StorerT>
|
||||||
|
void store(StorerT &storer) const;
|
||||||
|
|
||||||
|
template <class ParserT>
|
||||||
|
void parse(ParserT &parser);
|
||||||
|
};
|
||||||
|
|
||||||
struct BeingEditedStory {
|
struct BeingEditedStory {
|
||||||
unique_ptr<StoryContent> content_;
|
unique_ptr<StoryContent> content_;
|
||||||
FormattedText caption_;
|
FormattedText caption_;
|
||||||
@ -325,9 +338,9 @@ class StoryManager final : public Actor {
|
|||||||
|
|
||||||
void unregister_story_global_id(const Story *story);
|
void unregister_story_global_id(const Story *story);
|
||||||
|
|
||||||
td_api::object_ptr<td_api::storyInfo> get_story_info_object(StoryFullId story_full_id) const;
|
StoryInfo get_story_info(StoryFullId story_full_id) const;
|
||||||
|
|
||||||
td_api::object_ptr<td_api::storyInfo> get_story_info_object(StoryFullId story_full_id, const Story *story) const;
|
td_api::object_ptr<td_api::storyInfo> get_story_info_object(StoryFullId story_full_id) const;
|
||||||
|
|
||||||
td_api::object_ptr<td_api::story> get_story_object(StoryFullId story_full_id, const Story *story) const;
|
td_api::object_ptr<td_api::story> get_story_object(StoryFullId story_full_id, const Story *story) const;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user