Fixed bug with srcset parser missing base images
This commit is contained in:
parent
334af6183a
commit
4dbf6b7f23
3 changed files with 22 additions and 10 deletions
|
@ -22,6 +22,8 @@ class LBRY_Network_Publisher
|
||||||
// NOTE: This is currently sitting at about 150ms, mostly the post parsing
|
// NOTE: This is currently sitting at about 150ms, mostly the post parsing
|
||||||
public function publish($post, $channel)
|
public function publish($post, $channel)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
// TODO: Handle unnatributed channel
|
||||||
// Leave if nothing to publish to
|
// Leave if nothing to publish to
|
||||||
if (!$channel) {
|
if (!$channel) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -51,6 +51,8 @@ class LBRY_Speech
|
||||||
|
|
||||||
$all_media = $this->find_media($post_id);
|
$all_media = $this->find_media($post_id);
|
||||||
|
|
||||||
|
error_log(print_r($all_media, true));
|
||||||
|
|
||||||
// IDEA: Notify user if post save time will take a while
|
// IDEA: Notify user if post save time will take a while
|
||||||
if ($all_media) {
|
if ($all_media) {
|
||||||
$requests = array();
|
$requests = array();
|
||||||
|
@ -144,11 +146,7 @@ class LBRY_Speech
|
||||||
{
|
{
|
||||||
$all_media = array();
|
$all_media = array();
|
||||||
|
|
||||||
// Get content and put into a DOMDocument
|
|
||||||
$content = get_post_field('post_content', $post_id);
|
$content = get_post_field('post_content', $post_id);
|
||||||
if (!$content) {
|
|
||||||
return $all_media;
|
|
||||||
}
|
|
||||||
|
|
||||||
$images = $this->parser->scrape_images($content);
|
$images = $this->parser->scrape_images($content);
|
||||||
|
|
||||||
|
@ -161,6 +159,7 @@ class LBRY_Speech
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Don't forget the featured image
|
// Don't forget the featured image
|
||||||
|
error_log($post_id);
|
||||||
if ($featured_id = get_post_thumbnail_id($post_id)) {
|
if ($featured_id = get_post_thumbnail_id($post_id)) {
|
||||||
$image_ids = array_merge($image_ids, array($featured_id));
|
$image_ids = array_merge($image_ids, array($featured_id));
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,22 +13,24 @@ class LBRY_Speech_Parser
|
||||||
*/
|
*/
|
||||||
public function replace_image_srcset($sources, $size_array, $image_src, $image_meta, $attachment_id)
|
public function replace_image_srcset($sources, $size_array, $image_src, $image_meta, $attachment_id)
|
||||||
{
|
{
|
||||||
// $time_start = microtime(true);
|
|
||||||
|
|
||||||
$new_sources = $sources;
|
$new_sources = $sources;
|
||||||
$sizes = $image_meta['sizes'];
|
$sizes = $image_meta['sizes'];
|
||||||
|
$base_image = pathinfo($image_src)['basename'];
|
||||||
|
|
||||||
foreach ($sources as $width => $source) {
|
foreach ($sources as $width => $source) {
|
||||||
|
// Check to see if it is using base image first
|
||||||
|
if ($image_src == $source['url'] && key_exists('speech_asset_url', $image_meta)) {
|
||||||
|
$new_sources[$width]['url'] = $image_meta['speech_asset_url'];
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise, find the corresponding size
|
||||||
$speech_url = $this->find_speech_url_by_width($sizes, $width);
|
$speech_url = $this->find_speech_url_by_width($sizes, $width);
|
||||||
|
|
||||||
if ($speech_url) {
|
if ($speech_url) {
|
||||||
$new_sources[$width]['url'] = $speech_url;
|
$new_sources[$width]['url'] = $speech_url;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// $time_end = microtime(true);
|
|
||||||
// $time = ($time_end - $time_start) * 1000;
|
|
||||||
// error_log("srcset in $time milliseconds");
|
|
||||||
return $new_sources;
|
return $new_sources;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -137,6 +139,10 @@ class LBRY_Speech_Parser
|
||||||
*/
|
*/
|
||||||
public function scrape_images($content)
|
public function scrape_images($content)
|
||||||
{
|
{
|
||||||
|
// Return empty array if no images
|
||||||
|
if (!$content) {
|
||||||
|
return array();
|
||||||
|
}
|
||||||
// Find all images
|
// Find all images
|
||||||
preg_match_all('/<img [^>]+>/', $content, $images);
|
preg_match_all('/<img [^>]+>/', $content, $images);
|
||||||
|
|
||||||
|
@ -153,6 +159,11 @@ class LBRY_Speech_Parser
|
||||||
*/
|
*/
|
||||||
public function scrape_videos($content)
|
public function scrape_videos($content)
|
||||||
{
|
{
|
||||||
|
// Return empty array if no videos
|
||||||
|
if (!$content) {
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
// Only MP4 videos for now
|
// Only MP4 videos for now
|
||||||
preg_match_all('/\[video.*mp4=".*".*\]/', $content, $videos);
|
preg_match_all('/\[video.*mp4=".*".*\]/', $content, $videos);
|
||||||
$videos = empty($videos[0]) ? array() : $videos[0];
|
$videos = empty($videos[0]) ? array() : $videos[0];
|
||||||
|
|
Loading…
Reference in a new issue