summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/email_bookmarks.php50
1 files changed, 50 insertions, 0 deletions
diff --git a/scripts/email_bookmarks.php b/scripts/email_bookmarks.php
new file mode 100644
index 0000000..891ab4d
--- /dev/null
+++ b/scripts/email_bookmarks.php
@@ -0,0 +1,50 @@
+<?php declare(strict_types=1);
+
+error_reporting(E_ALL);
+
+$config = require_once(__DIR__.'/../config.php');
+
+$urls = file($config['path_to_file'], FILE_IGNORE_NEW_LINES);
+
+$urls = array_reverse($urls);
+
+$urls = array_slice($urls, 0, 5);
+
+if (!count($urls)) {
+ exit();
+}
+
+$email = $config['email'];
+
+$message = buildMessage($urls, $config['site']);
+
+$headers = implode("\r\n", [
+ "From: {$email['from']}",
+ 'MIME-Version: 1.0',
+ 'Content-Type: text/html; charset=UTF-8',
+]);
+
+mail($email['to'], $email['subject'], $message, $headers);
+
+function buildMessage(array $urls, string $site): string
+{
+ $urls = array_map(function ($url) use ($site) {
+ return sprintf(
+ '<li><a href="%s/bookmarks/read?url=%s">%s</a></li>',
+ $site,
+ urlencode($url),
+ htmlentities($url)
+ );
+ }, $urls);
+
+ $urls = sprintf('<ol>%s</ol>', implode('', $urls));
+
+ return <<< EOF_HTML
+<html>
+ <body>
+ <p>Below are today's bookmarks for reading.</p>
+ $urls
+ </body>
+</html>
+EOF_HTML;
+}