'INCLUDE_MASTODON_FEED_DEBUG', 'value' => false, ], [ 'key' => 'INCLUDE_MASTODON_FEED_DEFAULT_INSTANCE', 'value' => false, ], [ 'key' => 'INCLUDE_MASTODON_FEED_LIMIT', 'value' => 20, ], [ 'key' => 'INCLUDE_MASTODON_FEED_EXCLUDE_BOOSTS', 'value' => false, ], [ 'key' => 'INCLUDE_MASTODON_FEED_EXCLUDE_REPLIES', 'value' => false, ], [ 'key' => 'INCLUDE_MASTODON_FEED_EXCLUDE_CONVERSATIONSTARTERS', 'value' => false, ], [ 'key' => 'INCLUDE_MASTODON_FEED_ONLY_PINNED', 'value' => false, ], [ 'key' => 'INCLUDE_MASTODON_FEED_ONLY_MEDIA', 'value' => false, ], [ 'key' => 'INCLUDE_MASTODON_FEED_PRESERVE_IMAGE_ASPECT_RATIO', 'value' => false, ], [ 'key' => 'INCLUDE_MASTODON_FEED_IMAGE_SIZE', 'value' => 'preview', ], [ 'key' => 'INCLUDE_MASTODON_FEED_IMAGE_LINK', 'value' => 'status', ], [ 'key' => 'INCLUDE_MASTODON_FEED_TAGGED', 'value' => false, ], [ 'key' => 'INCLUDE_MASTODON_FEED_LINKTARGET', 'value' => '_self', ], [ 'key' => 'INCLUDE_MASTODON_FEED_SHOW_PREVIEWCARDS', 'value' => true, ], // set styles [ 'key' => 'INCLUDE_MASTODON_FEED_DARKMODE', 'value' => false, ], [ 'key' => 'INCLUDE_MASTODON_FEED_STYLE_BG_LIGHT_COLOR', 'value' => 'rgba(100, 100, 100, 0.15)', ], [ 'key' => 'INCLUDE_MASTODON_FEED_STYLE_BG_DARK_COLOR', 'value' => 'rgba(155, 155, 155, 0.15)', ], [ 'key' => 'INCLUDE_MASTODON_FEED_STYLE_ACCENT_COLOR', 'value' => 'rgb(86, 58, 204)', ], [ 'key' => 'INCLUDE_MASTODON_FEED_STYLE_ACCENT_FONT_COLOR', 'value' => 'rgb(255, 255, 255)', ], [ 'key' => 'INCLUDE_MASTODON_FEED_STYLE_BORDER_RADIUS', 'value' => '0.25rem', ], [ 'key' => 'INCLUDE_MASTODON_FEED_HIDE_STATUS_META', 'value' => false, ], [ 'key' => 'INCLUDE_MASTODON_FEED_HIDE_DATETIME', 'value' => false, ], // set texts and localization [ 'key' => 'INCLUDE_MASTODON_FEED_TEXT_LOADING', 'value' => 'Loading Mastodon feed...', ], [ 'key' => 'INCLUDE_MASTODON_FEED_TEXT_NO_STATUSES', 'value' => 'No statuses available', ], [ 'key' => 'INCLUDE_MASTODON_FEED_TEXT_BOOSTED', 'value' => 'boosted 🚀', ], [ 'key' => 'INCLUDE_MASTODON_FEED_TEXT_VIEW_ON_INSTANCE', 'value' => 'view on instance', ], [ 'key' => 'INCLUDE_MASTODON_FEED_TEXT_SHOW_CONTENT', 'value' => 'Show content', ], [ 'key' => 'INCLUDE_MASTODON_FEED_TEXT_PERMALINK_PRE', 'value' => 'on', ], [ 'key' => 'INCLUDE_MASTODON_FEED_TEXT_PERMALINK_POST', 'value' => '', ], [ 'key' => 'INCLUDE_MASTODON_FEED_TEXT_EDITED', 'value' => '(edited)', ], [ 'key' => 'INCLUDE_MASTODON_FEED_DATE_LOCALE', 'value' => 'en-US', ], [ 'key' => 'INCLUDE_MASTODON_FEED_DATE_OPTIONS', 'value' => "{}", ], ]; foreach($constants as $constant) { if(!defined($constant['key'])) { define($constant['key'], $constant['value']); } } unset($constants); function error($msg) { return '[include-mastodon-feed] ' . $msg; } function init_styles() { ?> ( INCLUDE_MASTODON_FEED_DEFAULT_INSTANCE === false ? false : filter_var( INCLUDE_MASTODON_FEED_DEFAULT_INSTANCE, FILTER_UNSAFE_RAW ) ), 'account' => false, 'tag' => false, 'limit' => INCLUDE_MASTODON_FEED_LIMIT, 'excludeboosts' => filter_var(esc_html(INCLUDE_MASTODON_FEED_EXCLUDE_BOOSTS), FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE), 'excludereplies' => filter_var(esc_html(INCLUDE_MASTODON_FEED_EXCLUDE_REPLIES), FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE), 'excludeconversationstarters' => filter_var(esc_html(INCLUDE_MASTODON_FEED_EXCLUDE_CONVERSATIONSTARTERS), FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE), 'onlypinned' => filter_var(esc_html(INCLUDE_MASTODON_FEED_ONLY_PINNED), FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE), 'onlymedia' => filter_var(esc_html(INCLUDE_MASTODON_FEED_ONLY_MEDIA), FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE), 'preserveimageaspectratio' => filter_var(esc_html(INCLUDE_MASTODON_FEED_PRESERVE_IMAGE_ASPECT_RATIO), FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE), 'imagesize' => INCLUDE_MASTODON_FEED_IMAGE_SIZE, 'imagelink' => INCLUDE_MASTODON_FEED_IMAGE_LINK, 'tagged' => INCLUDE_MASTODON_FEED_TAGGED, 'linktarget' => INCLUDE_MASTODON_FEED_LINKTARGET, 'showpreviewcards' => filter_var(esc_html(INCLUDE_MASTODON_FEED_SHOW_PREVIEWCARDS), FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE), 'hidestatusmeta' => filter_var(esc_html(INCLUDE_MASTODON_FEED_HIDE_STATUS_META), FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE), 'hidedatetime' => filter_var(esc_html(INCLUDE_MASTODON_FEED_HIDE_DATETIME), FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE), 'text-loading' => INCLUDE_MASTODON_FEED_TEXT_LOADING, 'text-nostatuses' => INCLUDE_MASTODON_FEED_TEXT_NO_STATUSES, 'text-boosted' => INCLUDE_MASTODON_FEED_TEXT_BOOSTED, 'text-viewoninstance' => INCLUDE_MASTODON_FEED_TEXT_VIEW_ON_INSTANCE, 'text-showcontent' => INCLUDE_MASTODON_FEED_TEXT_SHOW_CONTENT, 'text-permalinkpre' => INCLUDE_MASTODON_FEED_TEXT_PERMALINK_PRE, 'text-permalinkpost' => INCLUDE_MASTODON_FEED_TEXT_PERMALINK_POST, 'text-edited' => INCLUDE_MASTODON_FEED_TEXT_EDITED, 'date-locale' => INCLUDE_MASTODON_FEED_DATE_LOCALE, 'darkmode' => filter_var(esc_html(INCLUDE_MASTODON_FEED_DARKMODE), FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE), ), array_change_key_case($atts, CASE_LOWER) ); if(false === filter_var($atts['instance'], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)) { return error('missing configuration: instance'); } if(false === filter_var($atts['account'], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE) && false === filter_var($atts['tag'], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)) { return error('missing configuration: account id or tag'); } if(false !== filter_var($atts['account'], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)) { $apiUrl = 'https://'.urlencode($atts['instance']).'/api/v1/accounts/'.$atts['account'].'/statuses'; } if(false !== filter_var($atts['tag'], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)) { $apiUrl = 'https://'.urlencode($atts['instance']).'/api/v1/timelines/tag/'.urlencode($atts['tag']); } $getParams = []; if($atts['limit'] != 20 && $atts['limit'] > 0) { $getParams[] = 'limit=' . filter_var( $atts['limit'], FILTER_SANITIZE_NUMBER_INT ); } if(false !== filter_var($atts['excludeboosts'], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)) { $getParams[] = 'exclude_reblogs=true'; } if(false !== filter_var($atts['excludereplies'], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)) { $getParams[] = 'exclude_replies=true'; } if(true === filter_var($atts['onlypinned'], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)) { $getParams[] = 'pinned=true'; } if(true === filter_var($atts['onlymedia'], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)) { $getParams[] = 'only_media=true'; } if(false !== filter_var($atts['tagged'], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)) { $getParams[] = 'tagged=' . filter_var( $atts['tagged'], FILTER_UNSAFE_RAW ); } if(sizeof($getParams) > 0) { $apiUrl .= '?' . implode('&', $getParams); } $elemId = uniqid('include-mastodon-feed-'); ob_start(); ?>