#pragma once #include #include #include #include "./webapi_interface.hpp" #include #include #include #include #include #include #include #include // fwd struct ConfigModelI; class SDBot : public RegistryMessageModelEventI { ContactStore4I& _cs; RegistryMessageModelI& _rmm; RegistryMessageModelI::SubscriptionReference _rmm_sr; ConfigModelI& _conf; std::map _task_map; std::queue> _prompt_queue; uint64_t _last_task_counter = 0; std::optional _current_task_id; std::shared_ptr _current_task; std::default_random_engine _rng; private: std::unique_ptr _endpoint; public: SDBot( ContactStore4I& cs, RegistryMessageModelI& rmm, ConfigModelI& conf ); ~SDBot(void); float iterate(void); public: // conf bool use_webp_for_friends = true; bool use_webp_for_groups = true; protected: // mm bool onEvent(const Message::Events::MessageConstruct& e) override; };