How to filter post using custom feild value in shortest and longest duration?

I have used the following code for implementing filters on the front end;

//placed this code in index.php after <?php get_header(); ?>
<?php

    $search = isset( $_GET['s'] ) ? $_GET['s']: null;

    if( $search ){
        $user_filtre .= 's=" . $_GET["s'] . '&';
    }

    $filtre = isset( $_GET['filtre'] ) ? $_GET['filtre']: 'date';
    $cat = isset( $_GET['cat'] ) ? $_GET['cat']: 0;

    $user_filtre="filtre=" . $filtre . '&';

    $display = isset( $_GET['display'] ) ? $_GET['display']: get_option( get_theme_name() . '_type_display' );

    $user_display = 'display=' . $display . '&';



    if( ($filtre != null) && ($cat >= 0) ) :

        $args = array(
            'posts_per_page'    => get_option( get_theme_name() . '_nb_videos_listing' ),
            'post_type'         => 'post',
            'paged'             => $paged,
        );

        $tri = null;

        switch( $filtre ){

                case 'date' :

                $args = array(
                    'orderby'           => 'date',
                    'order'             => 'DESC',
                    'posts_per_page'    => get_option( get_theme_name() . '_nb_videos_listing' ),
                    'paged'             => $paged,
                    'cat'               => $cat
                );
                break; 

                case 'views' :

                $args = array(
                    'meta_key'          => 'post_views_count',
                    'orderby'           => 'meta_value_num',
                    'order'             => 'DESC',
                    'posts_per_page'    => get_option( get_theme_name() . '_nb_videos_listing' ),
                    'paged'             => $paged,
                    'cat'               => $cat
                );
                break;

 //for longest videos
                case 'duree' :

                $args = array(
                    'meta_key'          => 'complete', // custom feild storing time in decimal
                    'orderby'           => 'meta_value_num',
                    'order'             => 'DESC',
                    'posts_per_page'    => get_option( get_theme_name() . '_nb_videos_listing' ),
                    'paged'             => $paged,
                    'cat'               => $cat
                );
                break;
    //for longest videos            
                case 'short' :

                $args = array(
                    'meta_key'          => 'complete', // custom feild storing time in decimal
                    'orderby'           => 'meta_value_num',
                    'order'             => 'ASC',
                    'posts_per_page'    => get_option( get_theme_name() . '_nb_videos_listing' ),
                    'paged'             => $paged,
                    'cat'               => $cat
                );
                break;

                case 'random' :

                $args = array(
                    'orderby'           => 'rand',
                    'posts_per_page'    => get_option( get_theme_name() . '_nb_videos_listing' ),
                    'paged'             => $paged,
                    'cat'               => $cat
                );
                break;
            default:

                $args = array(
                    'posts_per_page'    => get_option( get_theme_name() . '_nb_videos_listing' ),
                    'post_type'         => 'post',
                    'paged'             => $paged
                );
                break;
        }

        $tri = /*'' . __('sorted by', get_theme_name()) . '' . */corres_tv( $filtre );

        $term = $wp_query->queried_object;
        $wp_query = new WP_Query( $args );

?>

And showed the filter list on the front end using following lines

<ul class="filtre-list">               
<!-- for latest videos ------->     <li <?php echo ($filtre == 'date') ? 'class="selected"' : ''; ?>><a href="https://wordpress.stackexchange.com/questions/132112/?<?php echo $user_display;?>filtre=date"><?php echo __('lastest', get_theme_name());?></a></li>
<!-- for Most viewed videos -->     <li <?php echo ($filtre == 'views') ? 'class="selected"' : ''; ?>><a href="?<?php echo $user_display;?>filtre=views"><?php echo __('most viewed', get_theme_name());?></a></li>
<!-- for longest videos ------>     <li <?php echo ($filtre == 'duree') ? 'class="selected"' : ''; ?>><a href="?<?php echo $user_display;?>filtre=duree"><?php echo __('longest', get_theme_name());?></a></li>
<!-- for shortest videos ----->     <li <?php echo ($filtre == 'short') ? 'class="selected"' : ''; ?>><a href="?<?php echo $user_display;?>filtre=short"><?php echo __('shortest', get_theme_name());?></a></li>
<!-- for Random videos ------->     <li <?php echo ($filtre == 'random') ? 'class="selected"' : ''; ?>><a href="?<?php echo $user_display;?>filtre=random"><?php echo __('random', get_theme_name());?></a></li>
</ul><!-- .filtre-list -->

And voila! it works!