323 lines
8.1 KiB
PHP
323 lines
8.1 KiB
PHP
<?
|
||
|
||
if (!function_exists('curl_init') OR !function_exists('curl_exec') OR !function_exists('curl_setopt'))
|
||
die('PHP Curl Library not found');
|
||
error_reporting(E_ALL & ~E_NOTICE);
|
||
|
||
date_default_timezone_set('Europe/Istanbul');
|
||
setlocale(LC_TIME, "turkish");
|
||
session_start();
|
||
|
||
class ByAkman {
|
||
|
||
function __construct () {
|
||
require "config.php";
|
||
try
|
||
{
|
||
$this->pdo = new \PDO("mysql:host=".DB_HOST.";dbname=".DB_DATA.";charset=utf8", "".DB_USER."", "".DB_PASS."");
|
||
$this->pdo->exec("SET NAMES utf8");
|
||
$this->pdo->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_OBJ);
|
||
$this->pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
|
||
}
|
||
catch(\PDOException $e)
|
||
{
|
||
echo '<div align="center" style="-webkit-border-radius: 0;border-radius: 0;padding: 10px 15px;background-color: #f2dede;border-color: #eed3d7;color: #b94a48;margin-bottom: 20px;border: 1px solid transparent;">
|
||
<strong>Veritabanı Bağlantı Hatası!</strong><p>'.$e->getMessage().'</p>
|
||
</div>';
|
||
die();
|
||
}
|
||
|
||
return $this->pdo;
|
||
|
||
}
|
||
|
||
public function guvenlik($post)
|
||
{
|
||
if (is_scalar($post)) {
|
||
return addslashes(htmlspecialchars(strip_tags($post)));
|
||
} else {
|
||
return $post;
|
||
}
|
||
|
||
}
|
||
public function get_user($a,$b) {
|
||
$query = $this->pdo->prepare("SELECT * FROM admins WHERE username = :username AND pass = :pass");
|
||
$query->execute([
|
||
'username' => "$a",
|
||
'pass' => "$b"
|
||
]);
|
||
$veriler = $query->fetch();
|
||
return $veriler;
|
||
}
|
||
|
||
public function site_setting() {
|
||
$query = $this->pdo->prepare("SELECT * FROM settings WHERE id = :id");
|
||
$query->execute([
|
||
'id' => "1"
|
||
]);
|
||
$veriler = $query->fetch();
|
||
return $veriler;
|
||
}
|
||
public function player_api($username, $password, $veri) {
|
||
|
||
$url = $this->site_setting();
|
||
define("PANEL_ADRES", $url->site_xtream);
|
||
return PANEL_ADRES."player_api.php?username=".$username."&password=".$password."".$veri."";
|
||
|
||
}
|
||
public function get_curl($url){
|
||
$curl = curl_init();
|
||
curl_setopt_array($curl, array(
|
||
CURLOPT_RETURNTRANSFER => 1,
|
||
CURLOPT_URL => $url,
|
||
));
|
||
$resp = curl_exec($curl);
|
||
curl_close($curl);
|
||
return $resp;
|
||
}
|
||
public function player_api2($username, $password, $veri, $id) {
|
||
$url = $this->site_setting();
|
||
$now = time();
|
||
$user_hash = sha1($username."-".$password."-");
|
||
switch($veri) {
|
||
|
||
case 'get_live_streams':
|
||
$file_name = "live_streams.json";
|
||
break;
|
||
case 'get_live_categories':
|
||
$file_name = "live_categories.json";
|
||
break;
|
||
case 'get_live_streams&category_id=':
|
||
$file_name = "live_streams_category_$id.json";
|
||
break;
|
||
case 'get_simple_data_table&stream_id=':
|
||
$file_name = "get_simple_data_table_$id.json";
|
||
break;
|
||
case 'get_vod_streams':
|
||
$file_name = "get_vod_streams.json";
|
||
break;
|
||
case 'get_vod_streams&category_id=':
|
||
$file_name = "get_vod_streams_$id.json";
|
||
break;
|
||
case 'get_vod_categories':
|
||
$file_name = "get_vod_categories.json";
|
||
break;
|
||
case 'get_vod_info&vod_id=':
|
||
$file_name = "get_vod_info_$id.json";
|
||
break;
|
||
case 'get_series':
|
||
$file_name = "get_series.json";
|
||
break;
|
||
case 'get_series_info&series_id=':
|
||
$file_name = "get_series_info_$id.json";
|
||
break;
|
||
case 'get_series_categories':
|
||
$file_name = "get_series_categories.json";
|
||
break;
|
||
case 'get_series&category_id=':
|
||
$file_name = "get_series_$id.json";
|
||
break;
|
||
|
||
|
||
|
||
}
|
||
$dosya_yolu = "".realpath(realpath(dirname(__FILE__) . '/..'))."/cache/".$user_hash."_".$file_name."";
|
||
if (file_exists($dosya_yolu)) {
|
||
$write = 1;
|
||
} else {
|
||
$create_file = touch($dosya_yolu);
|
||
$write = 0;
|
||
}
|
||
$guncelleme_suresi = 60*60;
|
||
$time = filemtime($dosya_yolu);
|
||
if ($time <= ($now-$guncelleme_suresi) OR $write == 0) {
|
||
$adres = $this->get_curl($url->site_xtream."player_api.php?username=".$username."&password=".$password."&action=".$veri."".$id."");
|
||
$save_file = fopen($dosya_yolu, "w");
|
||
fwrite($save_file, json_encode($adres, true));
|
||
fclose($save_file);
|
||
$datas = file_get_contents($dosya_yolu);
|
||
} else {
|
||
$datas = file_get_contents($dosya_yolu);
|
||
}
|
||
return json_decode($datas, true);
|
||
|
||
}
|
||
|
||
public function player_epg($username, $password) {
|
||
$url = $this->site_setting();
|
||
$now = time();
|
||
$user_hash = sha1($username."-".$password."-");
|
||
$dosya_yolu = "".realpath(realpath(dirname(__FILE__) . '/..'))."/cache/".$user_hash."_epg.xml";
|
||
if (file_exists($dosya_yolu)) {
|
||
$write = 1;
|
||
} else {
|
||
$create_file = touch($dosya_yolu);
|
||
$write = 0;
|
||
}
|
||
$guncelleme_suresi = 60*60;
|
||
$time = filemtime($dosya_yolu);
|
||
if ($time <= ($now-$guncelleme_suresi) OR $write == 0) {
|
||
$adres = $this->get_curl($url->site_xtream."xmltv.php?username=".$username."&password=".$password."");
|
||
file_put_contents($dosya_yolu, $adres);
|
||
$datas = @simplexml_load_file($dosya_yolu);
|
||
} else {
|
||
$datas = @simplexml_load_file($dosya_yolu);
|
||
}
|
||
return $datas;
|
||
|
||
}
|
||
public function api($mac) {
|
||
$url = $this->site_setting();
|
||
define("PANEL_ADRES", $url->site_xtream);
|
||
return PANEL_ADRES."api.php?action=stb&sub=info&portaluser=".$mac."";
|
||
|
||
}
|
||
|
||
function userInfo($prm){
|
||
return isset($_SESSION['user_info']) ? $_SESSION['user_info'][$prm] : null;
|
||
}
|
||
|
||
|
||
public function get_http_response_code($url) {
|
||
$headers = get_headers($url);
|
||
return substr($headers[0], 9, 3);
|
||
}
|
||
|
||
public function get_epg_data($url, $channel) {
|
||
|
||
|
||
$xml = simplexml_load_file($url);
|
||
$now = time();
|
||
$it = new IteratorIterator($xml->programme);
|
||
|
||
foreach ($it as $programm)
|
||
{
|
||
$start = strtotime($programm['start']);
|
||
$end = strtotime($programm['end']);
|
||
if (($channel != $programm["channel"]) AND ($end <= $now AND $start >= $now))
|
||
exit();
|
||
}
|
||
return $programm->title;
|
||
|
||
}
|
||
|
||
public function descriptions($yazi, $limit)
|
||
{
|
||
$yazi = strip_tags($yazi, '<p></p><br>');
|
||
$explode = explode(' ',$yazi);
|
||
$string = '';
|
||
$ucnokta = '...';
|
||
if(count($explode) <= $limit){
|
||
$ucnokta = '';
|
||
}
|
||
for($i=0;$i<$limit;$i++){
|
||
$string .= $explode[$i]." ";
|
||
}
|
||
if ($ucnokta) {
|
||
$string = substr($string, 0, strlen($string));
|
||
}
|
||
return $string.$ucnokta;
|
||
|
||
}
|
||
|
||
public function route($find)
|
||
{
|
||
return "?page=" . $find;
|
||
}
|
||
public function _curl($url, $data){
|
||
|
||
$curl = curl_init();
|
||
curl_setopt_array($curl, array(
|
||
CURLOPT_RETURNTRANSFER => 1,
|
||
CURLOPT_URL => $url,
|
||
CURLOPT_USERAGENT => 'Web Panel',
|
||
CURLOPT_POST => 1,
|
||
CURLOPT_SSL_VERIFYPEER => 0,
|
||
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
|
||
CURLOPT_CONNECTTIMEOUT => 5,
|
||
CURLOPT_TIMEOUT => 3,
|
||
CURLOPT_HTTPHEADER => array('Accept: application/json'),
|
||
CURLOPT_POSTFIELDS => http_build_query($data),
|
||
CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4
|
||
));
|
||
$resp = curl_exec($curl);
|
||
curl_close($curl);
|
||
|
||
return $resp;
|
||
|
||
}
|
||
|
||
|
||
public function get_category($page)
|
||
{
|
||
$prm = '';
|
||
switch ($page) {
|
||
case "live":
|
||
$prm= 'get_live_categories';
|
||
break;
|
||
case "movies":
|
||
$prm = 'get_vod_categories';
|
||
break;
|
||
case "series":
|
||
$prm = 'get_series_categories';
|
||
break;
|
||
case "movie_streams":
|
||
$prm = 'get_vod_streams';
|
||
break;
|
||
case "series_streams":
|
||
$prm = 'get_series';
|
||
break;
|
||
case "live_stream":
|
||
$prm = 'get_live_streams';
|
||
break;
|
||
}
|
||
|
||
return '&action='.$prm;
|
||
}
|
||
|
||
public function formatSizeUnits($bytes)
|
||
{
|
||
if ($bytes >= 1073741824)
|
||
{
|
||
$bytes = number_format($bytes / 1073741824, 2) . ' GB';
|
||
}
|
||
elseif ($bytes >= 1048576)
|
||
{
|
||
$bytes = number_format($bytes / 1048576, 2) . ' MB';
|
||
}
|
||
elseif ($bytes >= 1024)
|
||
{
|
||
$bytes = number_format($bytes / 1024, 2) . ' KB';
|
||
}
|
||
elseif ($bytes > 1)
|
||
{
|
||
$bytes = $bytes . ' bytes';
|
||
}
|
||
elseif ($bytes == 1)
|
||
{
|
||
$bytes = $bytes . ' byte';
|
||
}
|
||
else
|
||
{
|
||
$bytes = '0 bytes';
|
||
}
|
||
|
||
return $bytes;
|
||
}
|
||
|
||
|
||
|
||
}
|
||
|
||
$byakman = new ByAkman();
|
||
|
||
$siteInfo = $byakman->site_setting();
|
||
|
||
|
||
require_once(dirname(__FILE__).'/../lang/'.$siteInfo->site_lang.'.php');
|
||
|
||
if (($_SESSION["admin"]["username"] != "") AND ($_SESSION["admin"]["password"] != "")) {
|
||
$userInfo = $byakman->get_user($_SESSION["admin"]["username"], $_SESSION["admin"]["password"]);
|
||
}
|
||
|
||
?>
|