Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • set-sast-config-1
  • v2.2.3
  • v2.2.2
  • v1.4.0
  • v1.3.0
  • v1.2.1
  • v1.2.0
  • v1.1.2
  • v1.1.1
10 results

Nginx.pm

Blame
  • Nginx.pm 2.49 KiB
    package PiTube::Controller::Nginx;
    use Mojo::Base 'Mojolicious::Controller';
    
    use constant HLS => qr/hls\/([a-z0-9\-]+)(_\w+)?(\/\w+)?\.(m3u8|ts)$/i;
    
    sub callback_rtmp {
        my $c = shift;
    
        if ( $c->param('call') =~ /publish/ ) {
            my $name = $c->param('name');
    
            # stream
            my $stream = $c->schema->resultset('Stream')->find({
                key => $name,
            });
            $c->render( status => 404, text => '' ), return if ! $stream;
    
            # kontrola tokenu
            my $user = $c->schema->resultset('User')->find({
                token => $c->param('token')
            });
            $c->render( status => 403, text => ''), return if ! $user;
    
    #        my $acl = $c->schema->resultset('ACL')->user_acl(
    #            $user->username,
    #        );
    
            # TODO: autorizace user/stream
    
            # aktualizace stavu streamu
            $stream->update({
                publish_last     => '\now()',
                publish_user_id  => $user->id,
                publish_time     => ( $c->param('time') // 0 ),
            });
    
    
        }
    
        $c->render( status => 204, text => '' );
    }
    
    sub callback_recorder {
        my $c = shift;
    
        my $name = $c->param('name');
    
        # stream
        my $stream = $c->schema->resultset('Stream')->find({
            key => $name,
        });
        $c->render( status => 404, text => '' ), return if ! $stream;
    
        # aktualizace stavu streamu
        $stream->update({
            recording     => 'f',
        });
    
        my $record = $stream->records(
            {
                end  => undef,
                path => undef,
            },
            {
                order_by => {'-desc' => 'begin'}
            }
        )->first;
    
        if ( $record ) {
            $record->update({