diff --git a/css/base.css b/css/base.css
index 6a72643..7d7a84f 100644
--- a/css/base.css
+++ b/css/base.css
@@ -24,6 +24,7 @@ dd,
h1,
h2,
h3,
+h4,
figure,
table,
p,
diff --git a/css/excerpt.css b/css/excerpt.css
index 377da5f..f258e83 100644
--- a/css/excerpt.css
+++ b/css/excerpt.css
@@ -4,19 +4,16 @@
flex-grow: 1;
border-bottom: 1px solid var(--color-light-grey);
margin-bottom: var(--space-sm);
- padding-bottom: var(--space-sm);
}
@media (--viewport-md) {
.excerpt {
margin-bottom: var(--space-md);
- padding-bottom: var(--space-md);
}
}
.excerpt__head,
-.excerpt__body,
-.excerpt__title {
+.excerpt__body {
margin-bottom: var(--space-xs);
}
@@ -26,15 +23,24 @@
@media (--viewport-md) {
.excerpt__head,
- .excerpt__body,
- .excerpt__title {
+ .excerpt__body {
margin-bottom: var(--space-sm);
}
}
+.excerpt__title {
+ font-size: 1.5rem;
+}
+
+.excerpt__subtitle {
+ font-size: 1.2rem;
+ margin-top: var(--space-sm);
+}
+
.excerpt__metadata {
color: var(--color-grey);
font-size: 12px;
+ margin-bottom: var(--space-sm);
}
.excerpt__icon,
@@ -50,3 +56,9 @@
.excerpt__text {
margin: 0 15px 0 5px;
}
+
+.excerpt__audio {
+ display: block;
+ margin-bottom: var(--space-sm);
+ background-color: var(--color-light-blue);
+}
diff --git a/css/page.css b/css/page.css
index 729f358..4097dae 100644
--- a/css/page.css
+++ b/css/page.css
@@ -90,11 +90,13 @@
.page__columns {
display: flex;
flex-flow: row wrap;
+ margin: 0 calc(var(--space-md) / 2 * -1);
}
.page__cell {
display: flex;
flex-flow: column nowrap;
flex: 1 0 50%;
+ padding: 0 calc(var(--space-md) / 2);
}
}
diff --git a/theme/front-page.php b/theme/front-page.php
index 0ffc3e7..63466d3 100644
--- a/theme/front-page.php
+++ b/theme/front-page.php
@@ -17,7 +17,7 @@
$day = date('jS', $date);
$date = get_the_date('jS F, Y', $post->ID).' at '.get_the_date('H:i', $post->ID);
$content = (strlen($post->post_excerpt) === 0) ?
- strip_tags(substr($post->post_content, 0, 200)).'...' :
+ strip_tags(substr($post->post_content, 0, 200)).'[...]' :
$post->post_excerpt;
$excerpt = array(
title => $post->post_title,
@@ -33,6 +33,17 @@
}
?>
+
Podcasts
+
diff --git a/theme/functions.php b/theme/functions.php
index 027930a..a8feda8 100644
--- a/theme/functions.php
+++ b/theme/functions.php
@@ -43,3 +43,95 @@ function windycoys_get_deploy_timestamp() {
}
return false;
}
+
+function windycoys_create_podcasts_table() {
+ global $wpdb;
+ $charset_collate = $wpdb->get_charset_collate();
+ $sql = "CREATE TABLE windycoys_podcasts (
+ id int(2) NOT NULL AUTO_INCREMENT,
+ podcast_id varchar(3) DEFAULT '' NOT NULL,
+ last_update bigint(10) DEFAULT 0 NOT NULL,
+ content longtext DEFAULT '' NOT NULL,
+ PRIMARY KEY (id)
+ ) $charset_collate;";
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
+ dbDelta($sql);
+ $wpdb->insert('windycoys_podcasts', array(
+ 'podcast_id' => 'tfc',
+ 'last_update' => 0,
+ 'content' => '{}'
+ ));
+ $wpdb->insert('windycoys_podcasts', array(
+ 'podcast_id' => 'xin',
+ 'last_update' => 0,
+ 'content' => '{}'
+ ));
+}
+
+function windycoys_fetch_podcast_meta($id) {
+ global $wpdb;
+ $urls = array(
+ 'tfc' => 'https://rss.acast.com/thefightingcock',
+ 'xin' => 'https://rss.acast.com/theextrainch',
+ );
+ $feed = file_get_contents($urls[$id]);
+ $feed = str_replace('update("windycoys_podcasts",
+ array('last_update' => $now, 'content' => $feed),
+ array('podcast_id'=>$id)
+ );
+ return $feed;
+}
+
+function windycoys_refresh_podcast_meta($id) {
+ global $wpdb;
+ $now = time();
+ $res = $wpdb->get_row('SELECT * FROM windycoys_podcasts WHERE
+ podcast_id = "' . $id .'"');
+ if (!$res) {
+ windycoys_create_podcasts_table();
+ }
+ if ($res->last_update + 300 < $now) {
+ return array(
+ from_cache => false,
+ data => windycoys_fetch_podcast_meta($id),
+ );
+ }
+ return array(
+ from_cache => true,
+ data => $res->content,
+ );
+}
+
+function windycoys_get_episodes_url($id) {
+ $urls = array(
+ 'tfc' => 'https://play.acast.com/s/thefightingcock',
+ 'xin' => 'https://play.acast.com/s/theextrainch',
+ );
+ return $urls[$id];
+}
+
+function windycoys_get_podcast_meta($id) {
+ $res = windycoys_refresh_podcast_meta($id);
+ $rss = simplexml_load_string($res['data']);
+ $item = $rss->channel->item;
+ $date = strtotime((String) $item->pubDate);
+ return array(
+ from_cache => $res['from_cache'],
+ podcast_title => (String) $rss->channel->title,
+ podcast_description => (String) $rss->channel->description,
+ podcast_url => (String) $rss->channel->image->url,
+ podcast_episodes => windycoys_get_episodes_url($id),
+ title => (String) $item->title,
+ description => (String) $item->description,
+ image => (String) $item->image['href'],
+ date => date('jS F, Y', $date).' at '.date('H:i', $date),
+ length => (String) $item->duration,
+ url => (String) $item->link,
+ audio => (String) $item->enclosure['url'],
+ );
+}
diff --git a/theme/partials/podcast.php b/theme/partials/podcast.php
new file mode 100644
index 0000000..d48c344
--- /dev/null
+++ b/theme/partials/podcast.php
@@ -0,0 +1,44 @@
+
+