Process telegram_api::updateStory updates.
This commit is contained in:
parent
7bea5721bf
commit
eec9826dec
@ -535,6 +535,31 @@ void StoryManager::change_story_files(StoryFullId story_full_id, const Story *st
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void StoryManager::on_get_story(DialogId owner_dialog_id,
|
||||||
|
telegram_api::object_ptr<telegram_api::StoryItem> &&story_item_ptr) {
|
||||||
|
if (!owner_dialog_id.is_valid()) {
|
||||||
|
LOG(ERROR) << "Receive a story in " << owner_dialog_id;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
CHECK(story_item_ptr != nullptr);
|
||||||
|
switch (story_item_ptr->get_id()) {
|
||||||
|
case telegram_api::storyItemDeleted::ID: {
|
||||||
|
auto story_item = telegram_api::move_object_as<telegram_api::storyItemDeleted>(story_item_ptr);
|
||||||
|
on_delete_story(owner_dialog_id, StoryId(story_item->id_));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case telegram_api::storyItemSkipped::ID:
|
||||||
|
LOG(ERROR) << "Receive storyItemSkipped";
|
||||||
|
break;
|
||||||
|
case telegram_api::storyItem::ID: {
|
||||||
|
on_get_story(owner_dialog_id, telegram_api::move_object_as<telegram_api::storyItem>(story_item_ptr));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
UNREACHABLE();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
StoryId StoryManager::on_get_story(DialogId owner_dialog_id,
|
StoryId StoryManager::on_get_story(DialogId owner_dialog_id,
|
||||||
telegram_api::object_ptr<telegram_api::storyItem> &&story_item) {
|
telegram_api::object_ptr<telegram_api::storyItem> &&story_item) {
|
||||||
CHECK(story_item != nullptr);
|
CHECK(story_item != nullptr);
|
||||||
@ -602,6 +627,16 @@ StoryId StoryManager::on_get_story(DialogId owner_dialog_id,
|
|||||||
return story_id;
|
return story_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void StoryManager::on_delete_story(DialogId owner_dialog_id, StoryId story_id) {
|
||||||
|
if (!story_id.is_server()) {
|
||||||
|
LOG(ERROR) << "Receive deleted " << story_id << " in " << owner_dialog_id;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
StoryFullId story_full_id{owner_dialog_id, story_id};
|
||||||
|
stories_.erase(story_full_id);
|
||||||
|
}
|
||||||
|
|
||||||
void StoryManager::on_story_changed(StoryFullId story_full_id, const Story *story, bool is_changed,
|
void StoryManager::on_story_changed(StoryFullId story_full_id, const Story *story, bool is_changed,
|
||||||
bool need_save_to_database) {
|
bool need_save_to_database) {
|
||||||
if (is_changed || need_save_to_database) {
|
if (is_changed || need_save_to_database) {
|
||||||
|
@ -93,7 +93,7 @@ class StoryManager final : public Actor {
|
|||||||
|
|
||||||
void get_dialog_expiring_stories(DialogId owner_dialog_id, Promise<td_api::object_ptr<td_api::stories>> &&promise);
|
void get_dialog_expiring_stories(DialogId owner_dialog_id, Promise<td_api::object_ptr<td_api::stories>> &&promise);
|
||||||
|
|
||||||
StoryId on_get_story(DialogId owner_dialog_id, telegram_api::object_ptr<telegram_api::storyItem> &&story_item);
|
void on_get_story(DialogId owner_dialog_id, telegram_api::object_ptr<telegram_api::StoryItem> &&story_item_ptr);
|
||||||
|
|
||||||
std::pair<int32, vector<StoryId>> on_get_stories(DialogId owner_dialog_id,
|
std::pair<int32, vector<StoryId>> on_get_stories(DialogId owner_dialog_id,
|
||||||
telegram_api::object_ptr<telegram_api::stories_stories> &&stories);
|
telegram_api::object_ptr<telegram_api::stories_stories> &&stories);
|
||||||
@ -125,6 +125,10 @@ class StoryManager final : public Actor {
|
|||||||
|
|
||||||
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;
|
||||||
|
|
||||||
|
StoryId on_get_story(DialogId owner_dialog_id, telegram_api::object_ptr<telegram_api::storyItem> &&story_item);
|
||||||
|
|
||||||
|
void on_delete_story(DialogId owner_dialog_id, StoryId story_id);
|
||||||
|
|
||||||
vector<StoryId> on_get_stories(DialogId owner_dialog_id,
|
vector<StoryId> on_get_stories(DialogId owner_dialog_id,
|
||||||
vector<telegram_api::object_ptr<telegram_api::StoryItem>> &&stories);
|
vector<telegram_api::object_ptr<telegram_api::StoryItem>> &&stories);
|
||||||
|
|
||||||
|
@ -54,6 +54,7 @@
|
|||||||
#include "td/telegram/StickerSetId.h"
|
#include "td/telegram/StickerSetId.h"
|
||||||
#include "td/telegram/StickersManager.h"
|
#include "td/telegram/StickersManager.h"
|
||||||
#include "td/telegram/StickerType.h"
|
#include "td/telegram/StickerType.h"
|
||||||
|
#include "td/telegram/StoryManager.h"
|
||||||
#include "td/telegram/Td.h"
|
#include "td/telegram/Td.h"
|
||||||
#include "td/telegram/td_api.h"
|
#include "td/telegram/td_api.h"
|
||||||
#include "td/telegram/TdDb.h"
|
#include "td/telegram/TdDb.h"
|
||||||
@ -4189,12 +4190,13 @@ void UpdatesManager::on_update(tl_object_ptr<telegram_api::updateAutoSaveSetting
|
|||||||
promise.set_value(Unit());
|
promise.set_value(Unit());
|
||||||
}
|
}
|
||||||
|
|
||||||
// unsupported updates
|
|
||||||
|
|
||||||
void UpdatesManager::on_update(tl_object_ptr<telegram_api::updateStory> update, Promise<Unit> &&promise) {
|
void UpdatesManager::on_update(tl_object_ptr<telegram_api::updateStory> update, Promise<Unit> &&promise) {
|
||||||
|
td_->story_manager_->on_get_story(DialogId(UserId(update->user_id_)), std::move(update->story_));
|
||||||
promise.set_value(Unit());
|
promise.set_value(Unit());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// unsupported updates
|
||||||
|
|
||||||
void UpdatesManager::on_update(tl_object_ptr<telegram_api::updateReadStories> update, Promise<Unit> &&promise) {
|
void UpdatesManager::on_update(tl_object_ptr<telegram_api::updateReadStories> update, Promise<Unit> &&promise) {
|
||||||
promise.set_value(Unit());
|
promise.set_value(Unit());
|
||||||
}
|
}
|
||||||
|
@ -613,10 +613,10 @@ class UpdatesManager final : public Actor {
|
|||||||
|
|
||||||
void on_update(tl_object_ptr<telegram_api::updateAutoSaveSettings> update, Promise<Unit> &&promise);
|
void on_update(tl_object_ptr<telegram_api::updateAutoSaveSettings> update, Promise<Unit> &&promise);
|
||||||
|
|
||||||
// unsupported updates
|
|
||||||
|
|
||||||
void on_update(tl_object_ptr<telegram_api::updateStory> update, Promise<Unit> &&promise);
|
void on_update(tl_object_ptr<telegram_api::updateStory> update, Promise<Unit> &&promise);
|
||||||
|
|
||||||
|
// unsupported updates
|
||||||
|
|
||||||
void on_update(tl_object_ptr<telegram_api::updateReadStories> update, Promise<Unit> &&promise);
|
void on_update(tl_object_ptr<telegram_api::updateReadStories> update, Promise<Unit> &&promise);
|
||||||
|
|
||||||
void on_update(tl_object_ptr<telegram_api::updateStoryID> update, Promise<Unit> &&promise);
|
void on_update(tl_object_ptr<telegram_api::updateStoryID> update, Promise<Unit> &&promise);
|
||||||
|
Loading…
Reference in New Issue
Block a user