public function clear() { $sql = "SELECT c.code FROM " . DB_PREFIX . "channel c LEFT JOIN " . DB_PREFIX . "server_config sc ON sc.id=c.server_id WHERE sc.type='nginx'"; $q = $this->db->query($sql); while ($r = $this->db->fetch_array($q)) { hg_clear_m3u8(DATA_DIR . $r['code']); } }
function hg_clear_m3u8($dir) { if (is_dir($dir)) { $handle = dir($dir); while ($file = $handle->read()) { if ($file == '.' || $file == '..') { continue; } $bdir = $dir . "/" . $file; if (is_dir($bdir)) { hg_clear_m3u8($bdir); } else { $file_type = strrchr($bdir, '.'); if ($file_type == '.m3u8' && $file != 'live.m3u8') { unlink($bdir); } } } } }
public function cache_program_shield($channel_id, $dates, $code) { $program_shield_dir = $this->settings['program_shield_dir'] ? $this->settings['program_shield_dir'] : 'program_shield'; $dir = $dates; $dir = CACHE_DIR . $program_shield_dir . '/' . $dir; $field = '*'; $filename = $code . '.php'; $sql = "SELECT {$field} FROM " . DB_PREFIX . "program_shield "; $sql .= " WHERE channel_id = " . $channel_id; $sql .= " AND dates = '" . $dates . "' AND type=0"; $q = $this->db->query($sql); $return = array(); while ($row = $this->db->fetch_array($q)) { $return[] = $row; } $time_zone = array(); $last_end_time = 0; $i = 0; foreach ($return as $v) { if ($v['start_time'] == $last_end_time) { $last_end_time = $time_zone[$i]['end_time'] + $v['start_time'] + $v['toff']; $time_zone[$i - 1]['end_time'] = $last_end_time; $time_zone[$i - 1]['end_time_format'] = date('Y-m-d H:i:s', $last_end_time); $i--; } else { $last_end_time = $v['start_time'] + $v['toff']; $time_zone[$i] = array('start_time' => $v['start_time'], 'end_time' => $last_end_time, 'start_time_format' => date('Y-m-d H:i:s', $v['start_time']), 'end_time_format' => date('Y-m-d H:i:s', $last_end_time)); } $i++; } if (!is_dir($dir)) { hg_mkdir($dir); } if (!$return) { @unlink($dir . '/' . $filename); } $content = '<?php $program_shield = ' . var_export($return, 1) . '; $program_shield_zone = ' . var_export($time_zone, 1) . '; ?>'; hg_file_write($dir . '/' . $filename, $content); @unlink($dir . '/' . $channel_id . '.php'); hg_clear_m3u8(DATA_DIR . $code); }