示例#1
0
 public function up()
 {
     global $APPLICATION;
     $arProgs = array();
     $codes = array();
     $result = \Hawkart\Megatv\ProgTable::getList(array('filter' => array(), 'select' => array("ID", "UF_TITLE", "UF_CODE", "UF_EPG_ID")));
     while ($row = $result->fetch()) {
         $arParams = array("replace_space" => "-", "replace_other" => "-");
         $code = \CDev::translit(trim($row["UF_TITLE"]), "ru", $arParams);
         if (!empty($row["UF_CODE"])) {
             $codes[$row["UF_TITLE"]] = $row;
             continue;
         }
         $arCode = $codes[$row["UF_TITLE"]];
         if (!empty($arCode)) {
             if ($row["UF_EPG_ID"] != $arCode["UF_EPG_ID"]) {
                 $code .= "-" . $row["ID"];
             } else {
                 $code = $arCode["UF_CODE"];
             }
         }
         \Hawkart\Megatv\ProgTable::update($row["ID"], array("UF_CODE" => $code));
         $row["UF_CODE"] = $code;
         $codes[$row["UF_TITLE"]] = $row;
     }
 }
示例#2
0
文件: prog.php 项目: Hawkart/megatv
 public static function generateCodes()
 {
     $arProgs = array();
     $codes = array();
     $result = self::getList(array('filter' => array(), 'select' => array("ID", "UF_TITLE", "UF_CODE", "UF_EPG_ID")));
     while ($row = $result->fetch()) {
         $arParams = array("replace_space" => "-", "replace_other" => "-");
         $code = \CDev::translit(trim($row["UF_TITLE"]), "ru", $arParams);
         if (!empty($row["UF_CODE"])) {
             $codes[$row["UF_TITLE"]] = $row;
             continue;
         }
         $arCode = $codes[$row["UF_TITLE"]];
         if (!empty($arCode)) {
             if ($row["UF_EPG_ID"] != $arCode["UF_EPG_ID"]) {
                 $code .= "-" . $row["ID"];
             } else {
                 $code = $arCode["UF_CODE"];
             }
         }
         self::update($row["ID"], array("UF_CODE" => $code));
         $row["UF_CODE"] = $code;
         $codes[$row["UF_TITLE"]] = $row;
     }
 }
示例#3
0
文件: CDev.php 项目: Hawkart/megatv
 public static function log($ar, $deleteOldData = false, $filename = LOG_FILENAME)
 {
     if (self::$firstRun && $deleteOldData) {
         file_put_contents($_SERVER['DOCUMENT_ROOT'] . $filename, print_r($ar, true) . "\n\n");
     } else {
         file_put_contents($_SERVER['DOCUMENT_ROOT'] . $filename, print_r($ar, true) . "\n\n", FILE_APPEND);
     }
     self::$firstRun = false;
 }
示例#4
0
 /**
  * Change data before adding
  * 
  * @return object 
  */
 public static function onBeforeAdd(Entity\Event $event)
 {
     $result = new Entity\EventResult();
     $data = $event->getParameter("fields");
     if (isset($data['UF_TITLE'])) {
         $arParams = array("replace_space" => "-", "replace_other" => "-");
         $code = \CDev::translit(trim($data["UF_TITLE"]), "ru", $arParams);
         $result->modifyFields(array('UF_CODE' => $code));
     }
     return $result;
 }
示例#5
0
 function OnBeforeUserLogin($arFields)
 {
     $phone = preg_replace("/[^0-9]/", '', $arFields["LOGIN"]);
     if (\CDev::check_phone($phone)) {
         $filter = array("PERSONAL_PHONE" => $phone);
     } else {
         $filter = array("=EMAIL" => $arFields["LOGIN"]);
     }
     $rsUsers = \CUser::GetList($by = "LAST_NAME", $order = "asc", $filter);
     if ($user = $rsUsers->GetNext()) {
         $arFields["LOGIN"] = $user["LOGIN"];
     }
 }
示例#6
0
 public function import()
 {
     $arVideos = array();
     $videoIds = array();
     $file = $_SERVER["DOCUMENT_ROOT"] . self::$file;
     \CDev::deleteOldFiles($_SERVER["DOCUMENT_ROOT"] . self::$img_dir, 0);
     $page = 1;
     $nextPageToken = false;
     while ($page < 100) {
         $params = array("filters" => "ugc", "items_count" => 10);
         if ($nextPageToken) {
             $params["from"] = $nextPageToken;
         }
         $response = self::api('video.getCatalog', $params);
         $items = $response["response"]["items"][0]["items"];
         foreach ($items as $videoResult) {
             $id = $videoResult["owner_id"] . "_" . $videoResult["id"];
             if (in_array($id, $videoIds) || $videoResult["type"] != "video") {
                 continue;
             }
             $videoIds[] = $id;
         }
         $nextPageToken = $response["response"]["next"];
         //echo $nextPageToken."\r\n";
         $page++;
     }
     //Склеенный запрос не работает(! слишком много ид !)
     foreach ($videoIds as $video) {
         $params = array("videos" => $video, "count" => 1, "offset" => 0);
         $response = self::api('video.get', $params);
         $videoResult = $response["response"]["items"][0];
         if (empty($videoResult["id"])) {
             continue;
         }
         if (!empty($videoResult["photo_640"])) {
             $img = $videoResult['photo_640'];
         } else {
             $img = $videoResult['photo_320'];
         }
         $crop = self::resizePic($videoResult["id"], $img);
         $arVideo = array("NAME" => $videoResult['title'], "IMG" => $crop, "PLAYER_BG" => $img, "ID" => $videoResult["id"], "VIDEO_URL" => $videoResult["player"], "DESC" => $videoResult['description']);
         $ids[] = $videoResult["id"];
         $arVideos[] = $arVideo;
     }
     file_put_contents($file, json_encode($arVideos));
 }
示例#7
0
文件: ajax.php 项目: Hawkart/megatv
$result['message'] = '';
//$result['post'] = $_POST;
if (!$USER->IsAuthorized()) {
    $html = "";
    if (strlen($_POST['ajax_key']) && $_POST['ajax_key'] != md5('ajax_' . LICENSE_KEY) || !check_bitrix_sessid()) {
        $html = "Сессия не действительна!";
    }
    $emailTo = trim(htmlspecialcharsbx($_POST['USER_LOGIN']));
    $phone = preg_replace("/[^0-9]/", '', $emailTo);
    $checkword = htmlspecialcharsbx($_POST["USER_CHECKWORD"]);
    $password = htmlspecialcharsbx($_POST["USER_PASSWORD"]);
    if (!CDev::check_email($emailTo) && !CDev::check_phone($phone)) {
        $result['errors']["USER_LOGIN"] = "******";
    }
    if (empty($html) && count($result['errors']) == 0) {
        if (CDev::check_phone($phone)) {
            $rsUsers = CUser::GetList($by = "EMAIL", $order = "desc", array("PERSONAL_PHONE" => $phone), array("SELECT" => array("UF_PHONE_CHECKWORD", "ID")));
            if ($arUser = $rsUsers->GetNext()) {
                if ($arUser["UF_PHONE_CHECKWORD"] == $checkword && !empty($arUser["UF_PHONE_CHECKWORD"])) {
                    $cuser = new CUser();
                    $cuser->Update($arUser["ID"], array("UF_PHONE_CHECKWORD" => "", "PASSWORD" => $password, "CONFIRM_PASSWORD" => $password));
                    $result['status'] = "success";
                } else {
                    $result['errors']["USER_LOGIN"] = "******";
                }
            } else {
                $result['errors']["USER_LOGIN"] = '******';
            }
        } else {
            $rsUsers = CUser::GetList($by = "EMAIL", $order = "desc", array("=EMAIL" => $emailTo));
            if ($arUser = $rsUsers->GetNext()) {
示例#8
0
文件: ajax.php 项目: Hawkart/megatv
 $arUser = $rsUser->Fetch();
 $arPost = $_REQUEST["USER"];
 if ($action == "profile") {
     foreach ($arPost as &$value) {
         $value = htmlspecialcharsbx(trim($value));
     }
     $arPost["PERSONAL_PHONE"] = preg_replace("/[^0-9]/", '', $arPost["PERSONAL_PHONE"]);
     if (!preg_match("/^([a-zA-Z0-9])+([\\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\\.[a-zA-Z0-9_-]+)*\\.([a-zA-Z]{2,6})\$/", $arPost["EMAIL"])) {
         $result['errors']['USER[EMAIL]'] = "Неправильный формат электроной почты.";
     }
     if (!empty($arPost["EMAIL"])) {
         $rsUsers = CUser::GetList($by = "EMAIL", $order = "desc", array("=EMAIL" => $arPost["EMAIL"], "!ID" => $arUser["ID"]));
         if ($rsUsers->NavNext(true, "f_")) {
             $result['errors']['USER[EMAIL]'] = "Такая электроная почта существует на сайте.";
         } else {
             if (!CDev::check_email($arPost["EMAIL"])) {
                 $result['errors']["USER[EMAIL]"] = "Неверный формат данных";
             }
         }
     }
     if (empty($arPost["NAME"])) {
         $result['errors']['USER[NAME]'] = "Введите имя.";
     }
     if (empty($arPost["LAST_NAME"])) {
         $result['errors']['USER[LAST_NAME]'] = "Введите фамилию.";
     }
     if (empty($arPost["SECOND_NAME"])) {
         $result['errors']['USER[SECOND_NAME]'] = "Введите отчество.";
     }
     if (!empty($arPost["PERSONAL_BIRTHDAY"]) && !preg_match("/^([0-9]{2})+([\\/]{1})+([0-9]{2})+([\\/]{1})+([0-9]{4})\$/", $arPost["PERSONAL_BIRTHDAY"])) {
         $result['errors']["USER[PERSONAL_BIRTHDAY]"] = "Неверный формат.";
示例#9
0
 public static function secToStr($sec)
 {
     $arTime = self::secToTime($sec);
     $str = "";
     if ($arTime["h"]) {
         $str .= $arTime["h"] . " " . CDev::number_ending($arTime["h"], "часов", "час", "часа") . " ";
     }
     if ($arTime["i"]) {
         $str .= $arTime["i"] . " " . CDev::number_ending($arTime["i"], "минут", "минута", "минуты");
     }
     return $str;
 }
示例#10
0
 public static function deletePics()
 {
     \CDev::deleteOldFiles($_SERVER["DOCUMENT_ROOT"] . self::$img_dir, 0);
 }
示例#11
0
 public static function deletePics()
 {
     \CDev::deleteOldFiles($_SERVER["DOCUMENT_ROOT"] . "/upload/social_channel/youtube/", 0);
     \CDev::deleteOldFiles($_SERVER["DOCUMENT_ROOT"] . "/upload/social_channel/vk/", 0);
     \CDev::deleteOldFiles($_SERVER["DOCUMENT_ROOT"] . "/upload/social_channel/rutube/", 0);
 }
示例#12
0
文件: cepg.php 项目: Hawkart/megatv
 /**
  * Clear tables & deleting images
  */
 public static function clear()
 {
     ProgTable::deleteAll();
     ScheduleTable::deleteAll();
     //ChannelTable::deleteAll();
     ImageTable::deleteAll();
     \CDev::deleteOldFiles($_SERVER["DOCUMENT_ROOT"] . self::$cut_dir, 0);
     \CDev::deleteOldFiles($_SERVER["DOCUMENT_ROOT"] . self::$origin_dir, 0);
 }
示例#13
0
}
?>
                        <?php 
if (!empty($arResult["DURATION"])) {
    ?>
    						<dt>Длительность:</dt>
    						<dd><?php 
    echo $arResult["DURATION"];
    ?>
</dd>
                        <?php 
}
?>
					</dl>
                    <span data-icon="icon-<?php 
echo CDev::ageToSvg((int) $arResult["UF_YEAR_LIMIT"]);
?>
-age-rating"></span>
				</div>
				<div class="broadcast-info-col-2">
					<dl class="info-list">
						<?php 
if (!empty($arResult["UF_COUNTRY"])) {
    ?>
    						<dt>Произведено:</dt>
    						<dd><?php 
    echo $arResult["UF_COUNTRY"];
    ?>
</dd>
                        <?php 
}
示例#14
0
 //money check
 $budget = \CUserEx::getBudget($user_id);
 if ($budget < 0) {
     exit(json_encode(array("status" => "error", "error" => "Для записи передачи пополните счет.")));
 }
 //Провеим, хватит ли пространства!
 $duration = strtotime($arSchedule["UF_DATE_END"]) - strtotime($arSchedule["UF_DATE_START"]);
 $minutes = ceil($duration / 60);
 $gb = $minutes * 18.5 / 1024;
 $busy = floatval($arUser["UF_CAPACITY_BUSY"]) + $gb;
 if ($busy >= floatval($arUser["UF_CAPACITY"])) {
     exit(json_encode(array("status" => "require-space", "error" => "Не достаточно места на диске для записи")));
 } else {
     if (in_array($arSchedule["UF_CHANNEL_BASE_ID"], $selectedChannels)) {
         $log_file = "/logs/sotal/sotal_" . date("d_m_Y_H") . ".txt";
         \CDev::log(array("ACTION" => "PUT_TO_RECORD", "DATA" => array("SCHEDULE_ID" => $prog_time, "DATE" => date("d.m.Y H:i:s"))), false, $log_file);
         if ($update) {
             \Hawkart\Megatv\RecordTable::update($update_id, array("UF_DELETED" => 0));
         } else {
             \Hawkart\Megatv\RecordTable::create($arSchedule);
         }
         //Inc rating for prog
         \Hawkart\Megatv\ProgTable::addByEpgRating($arSchedule["UF_PROG_EPG_ID"], 1);
         //change capacity for user
         $cuser = new \CUser();
         $cuser->Update($arUser["ID"], array("UF_CAPACITY_BUSY" => $busy));
         /**
          * Данные в статистику
          */
         \Hawkart\Megatv\CStat::addByShedule($arSchedule["ID"], "record");
         $status = "success";
示例#15
0
    }
} else {
    $arFilter["=UF_CHANNEL_ID"] = \Hawkart\Megatv\ChannelTable::getActiveIdByCity();
    $arResult["PROGS"] = getRecommendForAll($arFilter, $arSelect, $limit, $offset);
}
$arResult["CATEGORIES"] = array();
if ($USER->IsAuthorized()) {
    $arStat = \Hawkart\Megatv\CStat::getByUser($USER->GetID());
    foreach ($arStat["CATS"] as $category => $id) {
        $str = \CDev::translit($category, "ru", array("replace_space" => "-", "replace_other" => "-"));
        $arResult["CATEGORIES"][$category] = $str;
    }
} else {
    foreach ($arResult["PROGS"] as $key => $arProg) {
        $category = $arProg["UF_CATEGORY"];
        $str = \CDev::translit($category, "ru", array("replace_space" => "-", "replace_other" => "-"));
        $arResult["CATEGORIES"][$category] = $str;
    }
}
if ($_REQUEST["AJAX"] == "Y") {
    $APPLICATION->RestartBuffer();
    /**
     * Get records statuses by user
     */
    $arRecordsStatuses = \Hawkart\Megatv\RecordTable::getListStatusesByUser();
    foreach ($arResult["PROGS"] as $key => $arProg) {
        $arProg["CAT_CODE"] = $arResult["CATEGORIES"][$arProg["UF_CATEGORY"]];
    }
    $arRecords = array();
    foreach ($arResult["PROGS"] as $arRecord) {
        $datetime = $arRecord['UF_DATE_START'];
示例#16
0
    if (!empty($arRecord["DATE_START"])) {
        $arRecord["DATE_START"] = \CTimeEx::dateOffset($arRecord["UF_DATE_START"]->toString());
        $minutes = intval(strtotime($date_now) - strtotime($arRecord["UF_DATE_START"])) / 60;
    }
    if ((!\CTimeEx::dateDiff($arRecord["DATE_START"], $date_now) || $minutes < 5) && !empty($arRecord["DATE_START"]) && !empty($arRecord["UF_URL"])) {
        $arRecord["STATUS"] = "status-recording";
    } elseif (!empty($arRecord["UF_URL"])) {
        $arRecord["STATUS"] = "status-recorded";
    }
    $arResult["RECORDS"][] = $arRecord;
}
$arResult["CATEGORIES"] = array();
$arStat = \Hawkart\Megatv\CStat::getByUser($USER->GetID());
foreach ($arStat["CATS"] as $category => $id) {
    $arParams = array("replace_space" => "-", "replace_other" => "-");
    $str = \CDev::translit($category, "ru", $arParams);
    $arResult["CATEGORIES"][$category] = $str;
}
if ($_REQUEST["AJAX"] == "Y") {
    $APPLICATION->RestartBuffer();
    /**
     * Get records statuses by user
     */
    $arRecords = array();
    foreach ($arResult["RECORDS"] as $arRecord) {
        $datetime = $arRecord['UF_DATE_START']->toString();
        $date = substr($datetime, 0, 10);
        $time = substr($datetime, 11, 5);
        if (strlen($arRecord["UF_NAME"]) > 25) {
            $arRecord["UF_NAME"] = substr($arRecord["UF_NAME"], 0, 25) . "...";
        }
示例#17
0
<?php

$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__) . '/../');
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
set_time_limit(0);
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php";
header('Content-Type: text/html; charset=utf-8');
ini_set('mbstring.func_overload', '2');
ini_set('mbstring.internal_encoding', 'UTF-8');
echo date("H:i:s") . "\r\n";
//Удаляем старые файлы лога
$path = $_SERVER['DOCUMENT_ROOT'] . '/logs/sotal/';
\CDev::deleteOldFiles($path, 86400);
//Загружаем и импортируем данные из EPG
$epg = new \Hawkart\Megatv\CEpg();
$epg->importChannels();
//!!!
$epg->importChannelCity();
$epg->import();
\CDev::deleteDirectory($_SERVER['DOCUMENT_ROOT'] . '/bitrix/cache', 0);
mail("*****@*****.**", "epg import success", "success");
echo date("H:i:s") . "\r\n";
echo " --finish loading--";
die;