// // Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2021 // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // #pragma once #include "td/telegram/DialogId.h" #include "td/telegram/MessageId.h" #include "td/telegram/td_api.h" #include "td/actor/actor.h" #include "td/actor/PromiseFuture.h" #include "td/utils/common.h" #include "td/utils/Slice.h" #include "td/utils/Status.h" namespace td { class Td; class LinkManager : public Actor { public: LinkManager(Td *td, ActorShared<> parent); LinkManager(const LinkManager &) = delete; LinkManager &operator=(const LinkManager &) = delete; LinkManager(LinkManager &&) = delete; LinkManager &operator=(LinkManager &&) = delete; ~LinkManager() override; // checks whether link is a valid tg, ton or HTTP(S) URL and returns it in a canonical form static Result check_link(Slice link); void get_login_url_info(DialogId dialog_id, MessageId message_id, int32 button_id, Promise> &&promise); void get_login_url(DialogId dialog_id, MessageId message_id, int32 button_id, bool allow_write_access, Promise> &&promise); void get_link_login_url_info(const string &url, Promise> &&promise); void get_link_login_url(const string &url, bool allow_write_access, Promise> &&promise); private: void tear_down() override; Td *td_; ActorShared<> parent_; }; } // namespace td