diff --git a/composer.json b/composer.json
index 6393617..0b0a413 100644
--- a/composer.json
+++ b/composer.json
@@ -21,6 +21,6 @@
},
"scripts": {
"phpcs": "phpcs --standard=./phpcs.xml",
- "phpmd": "phpmd pigeon.php text phpmd.xml"
+ "phpmd": "phpmd src/ text phpmd.xml"
}
}
diff --git a/phpcs.xml b/phpcs.xml
index 18612f5..f460698 100644
--- a/phpcs.xml
+++ b/phpcs.xml
@@ -11,8 +11,8 @@
-
-pigeon.php
+
+src/
diff --git a/phpmd.xml b/phpmd.xml
index e8f38db..53a2ee7 100644
--- a/phpmd.xml
+++ b/phpmd.xml
@@ -11,9 +11,7 @@
-
-
-
+
diff --git a/src/pigeon.php b/src/pigeon.php
new file mode 100644
index 0000000..364e083
--- /dev/null
+++ b/src/pigeon.php
@@ -0,0 +1,53 @@
+ $config->get('youtube.api_key')));
+// get channel
+$yt_res = $youtube->getChannelById($config->get('youtube.channel_id'));
+// get channel info
+$config->set('youtube.channel_name', $yt_res->snippet->title);
+$config->set('youtube.uploads_id', $yt_res->contentDetails->relatedPlaylists->uploads);
+
+// create our event loop
+$loop = React\EventLoop\Factory::create();
+
+// instantiate Discord API object
+$discord = new Discord([
+ 'token' => $config->get('discord.api_key'),
+ 'intents' => Intents::getDefaultIntents() | Intents::GUILDS,
+ 'loop' => $loop,
+]);
+
+// periodic youtube uploads check
+$loop->addPeriodicTimer($config->get('pigeon.check_interval') * 60, function () use ($config, $discord, $youtube) {
+ // get latest video from uploads playlist
+ $uploads = $youtube->getPlaylistItemsByPlaylistId($config->get('youtube.uploads_id'));
+ $latest_video_id = $uploads[0]->contentDetails->videoId;
+ $latest_url = "https://youtu.be/$latest_video_id";
+
+ $message_text = str_replace('{link}', $latest_url, $config->get('discord.message_template'));
+
+ $discord->guilds->first()->channels->find(function ($channel) use ($config) {
+ return $channel->name === $config->get('discord.announcement_channel');
+ })->sendMessage($message_text)->done(function ($message) use ($discord) {
+ echo 'Message sent!', PHP_EOL;
+ });
+});
+
+// run tasks when Discord is ready
+$discord->on('ready', function (Discord $discord) use ($conf, $latest_url) {
+ echo "Bot is ready!", PHP_EOL;
+});
+
+$discord->run();