Plugin Directory

Changeset 3418261


Ignore:
Timestamp:
12/12/2025 12:46:31 PM (3 months ago)
Author:
aryans
Message:
  • Improved compatibility
Location:
media-stream
Files:
21 added
4 edited

Legend:

Unmodified
Added
Removed
  • media-stream/trunk/app/MainController.php

    r3412197 r3418261  
    133133                    if(get_post_meta(intval($post->ID), 'mediaStream_local_removed', true) != true){
    134134                        $resp_html .= '<br><br><button class="button removelocal_bunny_video" data_attch_id="' . $post->ID . '" data_video_id="' . $video_id . '" style="color: #d63638;border-color: #d63638;">Remove Local copy</button>';
    135                     }
     135                    }else{
     136                        $resp_html .= '<br><br><div class="no_local_copy_text">No local copy <span class="no_local_copy_info">(i)<span>No video files are stored locally on your website, this video is delivered directly from Bunny.net.</span></span></div>';
     137                    }
    136138                }
    137139
  • media-stream/trunk/assets/css/style.css

    r3391139 r3418261  
    8787    overflow: hidden;
    8888}
    89 .modal-open:has(.mediaStream_media_info) .attachment-details .attachment-info .mejs-mediaelement{
     89
     90.modal-open:has(.mediaStream_media_info) .attachment-details .attachment-info .mejs-mediaelement {
    9091    position: relative;
    9192}
     93
    9294.modal-open:has(.mediaStream_media_info.vid_warning) .media-modal .media-frame-content .thumbnail.thumbnail-video:after,
    9395.modal-open:has(.mediaStream_media_info.vid_warning) .attachment-details .attachment-info .mejs-mediaelement:after {
     
    127129    border-radius: 3px;
    128130}
     131
     132
     133.no_local_copy_text > span.no_local_copy_info {
     134    position: relative;
     135    cursor: pointer;
     136    text-decoration: underline;
     137    color: #2271b1;
     138}
     139
     140.no_local_copy_text span.no_local_copy_info > span {
     141    opacity: 0;
     142    visibility: hidden;
     143    position: absolute;
     144    top: -80px;
     145    left: -90px;
     146    width: 180px;
     147    background: #fff;
     148    padding: 10px;
     149    border-radius: 6px;
     150    box-shadow: 0px 2px 12px #0000002b;
     151    transition: all 0.2s ease;
     152    color: #111;
     153    text-align: center;
     154}
     155
     156.no_local_copy_text > span.no_local_copy_info:hover > span {
     157    opacity: 1;
     158    visibility: visible;
     159}
  • media-stream/trunk/media-stream.php

    r3415074 r3418261  
    66 * Author: Blurr Studio
    77 * Author URI: https://blurr.it/
    8  * Version: 1.1.0
     8 * Version: 1.1.1
    99 * License: GPL v2 or later
    1010 * License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    1616}
    1717
     18
    1819if (!class_exists('MEDIASTREAM')) {
    1920    class MEDIASTREAM
     
    2223        {
    2324            $this->define_constants();
     25           
    2426            add_action('admin_enqueue_scripts', [$this, 'enqueue']);
    25             add_action( 'enqueue_block_assets', [$this, 'enqueue'], 999);
    26 //             add_action('enqueue_block_editor_assets', [$this, 'enqueue']);
     27            add_action('enqueue_block_assets', [$this, 'enqueue'], 999);
     28//                         add_action('enqueue_block_editor_assets', [$this, 'enqueue']);
    2729            add_action('elementor/editor/after_enqueue_scripts', [$this, 'enqueue']);
    2830            add_action('elementor/preview/enqueue_scripts', [$this, 'enqueue']);
    29             if(isset($_GET['bricks']) && $_GET['bricks'] == "run"){
     31            if (isset($_GET['bricks']) && $_GET['bricks'] == "run") {
    3032                add_action('wp_enqueue_scripts', [$this, 'enqueue']);
    31             }else{
     33            } else {
    3234                add_action('wp_enqueue_scripts', [$this, 'public_enqueue']);
    3335            }
     
    6365                )
    6466            );
    65             wp_enqueue_script('jquery');
     67            wp_enqueue_script('jquery');
    6668            wp_enqueue_script('mediaStream-hls-js');
    6769            wp_register_script(
     
    9496                )
    9597            );
    96             wp_enqueue_script('jquery');
     98            wp_enqueue_script('jquery');
    9799            wp_enqueue_script('mediaStream-hls-js');
    98100            wp_register_script(
     
    133135            }
    134136        }
    135        
    136         public static function activate()
     137
     138        public static function get_builder()
     139        {
     140            $builders = [];
     141
     142            if (did_action('elementor/loaded') || class_exists('\Elementor\Plugin')) {
     143                $builders[] = 'Elementor';
     144            }
     145
     146            if (defined('BRICKS_VERSION') || class_exists('Bricks\Frontend')) {
     147                $builders[] = 'Bricks';
     148            }
     149
     150            $gutenberg_enabled = true;
     151
     152            if (is_plugin_active('classic-editor/classic-editor.php')) {
     153                $replace = get_option('classic-editor-replace', 'replace');
     154                $allow_users = get_option('classic-editor-allow-users', 'allow');
     155                if ($replace === 'replace') {
     156                    $gutenberg_enabled = false;
     157                } else {
     158                    if (! use_block_editor_for_post_type('post') && ! use_block_editor_for_post_type('page')) {
     159                        $gutenberg_enabled = false;
     160                    }
     161                }
     162            }
     163
     164            if ($gutenberg_enabled) {
     165                $builders[] = 'Gutenberg';
     166            }
     167
     168            return ! empty($builders) ? implode(', ', $builders) : 'None';
     169        }
     170
     171
     172        public static function activate()
    137173        {
    138174            $response = wp_remote_post('https://media-stream.rrulb.com/wp-json/mediastream/v1/mediastream_diagnos', array(
     
    145181                    'last_updated' => time(),
    146182                    'status'   => 'active',
     183                    'builder' => MEDIASTREAM::get_builder(),
    147184                )),
    148185            ));
     
    159196                    'last_updated' => time(),
    160197                    'status'   => 'deactive',
     198                    'builder' => ''
    161199                )),
    162200            ));
    163201        }
    164        
    165202    }
    166203}
    167204
    168205if (class_exists('MEDIASTREAM')) {
    169     register_activation_hook(__FILE__, array('MEDIASTREAM', 'activate'));
     206    register_activation_hook(__FILE__, array('MEDIASTREAM', 'activate'));
    170207    register_deactivation_hook(__FILE__, array('MEDIASTREAM', 'deactivate'));
    171208    $MEDIASTREAM = new MEDIASTREAM();
  • media-stream/trunk/readme.txt

    r3415074 r3418261  
    22
    33Requires at least: 6.5
    4 Tested up to:      6.8
     4Tested up to:      6.9
    55Requires PHP:      7.2
    6 Stable tag:        1.1.0
     6Stable tag:        1.1.1
    77License:           GPLv2 or later
    88Contributors:      aryans
     
    4444== Frequently Asked Questions ==
    4545
    46 = Do I need a Bunny.net account? = 
    47 Yes, you need a **Bunny.net Stream (BunnyCDN)** account and API key to use this plugin. 
     46= Do I need a [bunny.net](http://bunny.net) account to use this plugin? =
     47Yes, you need a Bunny.net account where you can get the API key to insert in the plugin in a very simple way and start using it.
    4848
    49 = Will my existing videos be synced? = 
    50 Currently, the plugin syncs videos uploaded after activation. You can manually re-upload old videos if needed. 
     49= Why do I need this plugin? =
     50The plugin is designed to enhance website performance and prevent crashes caused by embedded videos, as demonstrated in the [linked video](https://youtu.be/35r9vZknvXk?si=P4k_HkbFs_eIiNSw). By utilizing HLS technology for video streaming instead of standard MP4 files, the plugin significantly improves the overall page speed, security and video playback performance. For more [info about HLS check this video](https://youtu.be/T42JTK5fLTg?si=p7gKvYqjAIVUsXVd).
    5151
    52 = Does this plugin support non-video files? = 
    53 No, it only works with videos uploaded to the WordPress Media Library. 
     52= Will my existing videos be synced? =
     53The existing video must be re-encoded using the plugin. This process will offload the video to Bunny by simply clicking a button.
     54
     55= Does this plugin support files that are not videos? =
     56This plugin is intended solely for video streaming. For offloading images, please utilize alternative, dedicated plugins that are compatible with [bunny.net](http://bunny.net) or similar services.
     57
     58= Is it possible to delete the local video file and rely solely on the offloaded copy? =
     59You can safely delete the local video files while retaining the versions offloaded to Bunny. These offloaded videos will continue to function on your website.
     60
     61= How does this plugin differ from other offloading plugins? =
     62The plugin is free and offers full integration with the WordPress Media Library, allowing users to leverage core WordPress functionalities for adding videos instead of relying on separate widgets. While Bunny offers an official plugin for video embedding, it lacks the same level of media system integration. However, Bunny's plugin does excel with its highly effective image offloading feature.
     63
     64= Is Media Stream Plugin with Bunny.net GDPR compliant? =
     65Yes, Media Stream with Bunny.net Stream can be GDPR-compliant.
     66
     67Bunny.net Stream privacy-focused, avoiding permanent storage identifiable personal data. Streaming logs performance data anonymized, used only for optimization. Technical CDN requests handled anonymously, not tracking individuals.
     68
     69Bunny.net offers GDPR features like EU-only routing, IP anonymization, secure SSL/TLS. Data Processing Agreement (DPA) available, fulfilling 28 requirements.
     70
     71For standard video, processing usually relies on legitimate interest, often negating the need for user consent. This should be documented in your privacy policy. Bunny.net provides guides for GDPR-friendly integration.
     72 
    5473
    5574== Screenshots ==
     
    5978
    6079== Changelog ==
     80
     81= 1.1.1 =
     82* Improved compatibility
    6183
    6284= 1.1.0 =
Note: See TracChangeset for help on using the changeset viewer.