droplet 1.3.0
A multipurpose Discord bot with the hacker in mind
Loading...
Searching...
No Matches
YoutubeNotificationService.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <dpp/cluster.h>
4#include <dpp/timer.h>
5
6#include <mutex>
7#include <optional>
8#include <string>
9#include <unordered_map>
10
12
14
15[[nodiscard]] std::optional<std::string> resolve_youtube_channel(const std::string& input);
16
18 public:
19 YoutubeNotificationService(dpp::cluster& discord, DatabaseExecutor& db);
20
21 void start_job(std::size_t channel_id,
22 const std::string& youtube_id,
23 const std::string& message,
24 std::size_t timestep_sec = 500);
25 void stop_job(const std::string& key);
26 void load_from_database();
27 void stop_all();
28
29 private:
30 dpp::cluster& discord_;
33 std::mutex mutex_;
34 std::unordered_map<std::string, dpp::timer> timers_;
35};
std::optional< std::string > resolve_youtube_channel(const std::string &input)
Definition YoutubeNotificationService.cpp:63
Definition DatabaseExecutor.hpp:14
Definition LatestEventsRepository.hpp:24
void load_from_database()
Definition YoutubeNotificationService.cpp:163
void stop_job(const std::string &key)
Definition YoutubeNotificationService.cpp:150
void stop_all()
Definition YoutubeNotificationService.cpp:176
YoutubeNotificationService(dpp::cluster &discord, DatabaseExecutor &db)
Definition YoutubeNotificationService.cpp:67
void start_job(std::size_t channel_id, const std::string &youtube_id, const std::string &message, std::size_t timestep_sec=500)
Definition YoutubeNotificationService.cpp:71