backup tgids master
[scannr.git] / generateHourlys.php
Alex Sadleir
Alex Sadleir
Alex Sadleir


Alex Sadleir
Alex Sadleir




Alex Sadleir
Alex Sadleir

Alex Sadleir



Alex Sadleir


Alex Sadleir
Alex Sadleir
Alex Sadleir

Alex Sadleir

Alex Sadleir
Alex Sadleir

Alex Sadleir
Alex Sadleir
Alex Sadleir

Alex Sadleir


Alex Sadleir
Alex Sadleir
Alex Sadleir

Alex Sadleir



Alex Sadleir







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
\<?php
include('common.inc.php');
function processHourly($hourly) { 
    global $conn;
    $hfilename = str_replace(' ','_',$hourly['tgid']) . '-' . str_replace(Array(' 00:00:00+10',' 00:00:00+11'), '', $hourly['aday']) . '-' . $hourly['ahour'] . '.3gp';
 
    if (!file_exists("hourly/" . $hfilename)) {
 
        $filenames = explode(",", $hourly['filenames']);
        $cmd = "/usr/local/bin/ffmpeg";
        if (count($filenames) > 1) {
                $cmd .=" -filter_complex concat=n=" . count($filenames) . ":v=0:a=1"; // only concat when more than 1 file
        }
        $cmd .=" -i data/" . implode(" -i data/", $filenames) . " -ar 8000 -ab 4.75k -ac 1 hourly/" . $hfilename . ' 2>&1';
        //print_r($hourly);
        exec($cmd, $output, $returncode);
        echo $cmd . "<br>\n";
        if ($returncode != 0) {
            echo $returncode;
            print_r($output);
            unlink("hourly/" . $hfilename); // delete incomplete file
//            die();
        } else {
 
$time = strtotime($hourly['aday'] . ' +' . $hourly['ahour'] . " hours");
            $q = "  insert into compilations (filename,files,datetime) VALUES ('" . $hfilename . "', ARRAY['" . implode("', '", $filenames) . "'], to_timestamp('" . $time . "') );";
$conn->query($q);
//echo $q."\n";
            foreach ($filenames as $filename) {
                $q = "UPDATE recordings SET archived = '$hfilename' WHERE filename = '$filename' ;";
$conn->query($q);
//echo $q."\n";
            }
//die();
        }
 
    }
}
/*$sth = $conn->prepare("select tgid, extract(hour from call_timestamp) ahour, date_trunc('day', call_timestamp) aday, 
count(filename), array_to_string(array_agg(filename order by call_timestamp), ',') filenames from recordings group by tgid, ahour, aday order by  aday DESC, ahour, tgid;");
 
// TODO use tgid categories instead, tgid too specific
$sth->execute();
$hourlies = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach ($hourlies as $hourly) {
    processHourly($hourly);
}
$sth = $conn->prepare("select 'hour' as tgid, extract(hour from call_timestamp) ahour, date_trunc('day', call_timestamp) aday, 
count(filename), array_to_string(array_agg(filename order by call_timestamp), ',') filenames from recordings group by ahour, aday order by  aday DESC, ahour;");
 
$sth->execute();
$hourlies = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach ($hourlies as $hourly) {
    processHourly($hourly);
}*/
$sth = $conn->prepare("select coalesce(category,'unknown') as tgid, extract(hour from call_timestamp) ahour, date_trunc('day', call_timestamp) aday,
count(filename), array_to_string(array_agg(filename order by call_timestamp), ',') filenames 
from recordings inner join tgids on recordings.tgid = tgids.tgid 
group by category, ahour, aday 
having count(archived) != count(filename)
order by  aday DESC, ahour, category;");
 
$sth->execute();
$hourlies = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach($hourlies as $hourly) {
    processHourly($hourly);
}