Пример #1
0
function autoIndexingEpisodes()
{
    include "core/includes.php";
    // Open podcast directory and read all the files contained
    $fileNamesList = readMediaDir($absoluteurl, $upload_dir);
    if (!empty($fileNamesList)) {
        // If media directory contains files
        $episodesCounter = 0;
        //set counter to zero
        // Loop through each file in the media directory
        foreach ($fileNamesList as $singleFileName) {
            ////Validate the current episode
            //NB. validateSingleEpisode returns [0] episode is supported (bool), [1] Episode Absolute path, [2] Episode XML DB absolute path,[3] File Extension (Type), [4] File MimeType, [5] File name without extension, [6] episode file supported but to XML present
            $thisPodcastEpisode = validateSingleEpisode($singleFileName);
            ////If episode is supported and does NOT have a related xml db
            if ($thisPodcastEpisode[6] == TRUE) {
                // From config.php
                if ($strictfilenamepolicy == "yes") {
                    $episodeNewFileName = date('Y-m-d') . "_" . renamefilestrict($thisPodcastEpisode[5]);
                } else {
                    $episodeNewFileName = renamefile($thisPodcastEpisode[5]);
                }
                //lowercase extension
                $episodeNewFileExtension = strtolower($thisPodcastEpisode[3]);
                // New file full path
                $episodeNewNameAbsPath = $absoluteurl . $upload_dir . $episodeNewFileName . '.' . $episodeNewFileExtension;
                //if file already exists add an incremental suffix
                $filesuffix = NULL;
                while (file_exists($episodeNewNameAbsPath)) {
                    $filesuffix++;
                    $episodeNewNameAbsPath = $absoluteurl . $upload_dir . $episodeNewFileName . $filesuffix . '.' . $episodeNewFileExtension;
                }
                if (file_exists($thisPodcastEpisode[1])) {
                    //rename episode
                    rename($thisPodcastEpisode[1], $episodeNewNameAbsPath);
                    // Change file date to now
                    touch($episodeNewNameAbsPath, time());
                } else {
                    exit;
                }
                //Episode size and data from GETID3 from retrieveMediaFileDetails function
                //NB retrieveMediaFileDetails returns: [0] $ThisFileSizeInMB, [1] $file_duration, [2] $file_bitrate, [3] $file_freq, [4] $thisFileTitleID3, [5] $thisFileArtistID3
                $episodeID3 = retrieveMediaFileDetails($episodeNewNameAbsPath, $absoluteurl, $thisPodcastEpisode[5], $img_dir);
                //// Assign title and short description (from ID3 title and artist, respectively. Or default)
                if ($episodeID3[4] != "") {
                    $thisEpisodeTitle = $episodeID3[4];
                } else {
                    $thisEpisodeTitle = $thisPodcastEpisode[5];
                }
                if ($episodeID3[5] != "") {
                    $thisEpisodeShortDesc = $episodeID3[5];
                } else {
                    $thisEpisodeShortDesc = _("Podcast Episode");
                }
                // Use GETID3 Title and Artist to fill title and description automatically
                $thisEpisodeData = array($thisEpisodeTitle, $thisEpisodeShortDesc, NULL, NULL, NULL, NULL, $explicit_podcast, NULL, NULL);
                $episodeXMLDBAbsPath = $absoluteurl . $upload_dir . $episodeNewFileName . $filesuffix . '.xml';
                //// Creating xml file associated to episode
                writeEpisodeXMLDB($thisEpisodeData, $absoluteurl, $episodeNewNameAbsPath, $episodeXMLDBAbsPath, $episodeNewFileName . $filesuffix, TRUE);
                $episodesCounter++;
            }
            // END - If episode is supported
        }
        // END - Loop through each file
    }
    // END - If media directory contains files
    return $episodesCounter;
}
Пример #2
0
### Check if user is logged ###
if (!isUserLogged()) {
    exit;
}
###
if (isset($_GET['p']) and $_GET['p'] == "admin" and isset($_GET['do']) and $_GET['do'] == "edit" and isset($_GET['c']) and $_GET['c'] == "ok") {
    $PG_mainbody .= '<h3>' . _("Edit podcast") . '</h3>';
    include "{$absoluteurl}" . "core/admin/sendchanges.php";
    //	$PG_mainbody .= '</div>';
} else {
    ###########
    if (isset($_GET['name']) and $_GET['name'] != NULL) {
        $singleEpisode = $_GET['name'];
        ////Validate the current episode
        //NB. validateSingleEpisode returns [0] episode is supported (bool), [1] Episode Absolute path, [2] Episode XML DB absolute path,[3] File Extension (Type), [4] File MimeType, [5] File name without extension
        $thisPodcastEpisode = validateSingleEpisode($singleEpisode);
        ////If episode is supported and has a related xml db, and if it's not set to a future date OR if it's set for a future date but you are logged in as admin
        if ($thisPodcastEpisode[0] == TRUE) {
            ////Parse XML data related to the episode
            // NB. Function parseXMLepisodeData returns: [0] episode title, [1] short description, [2] long description, [3] image associated, [4] iTunes keywords, [5] Explicit language,[6] Author's name,[7] Author's email,[8] PG category 1, [9] PG category 2, [10] PG category 3, [11] file_info_size, [12] file_info_duration, [13] file_info_bitrate, [14] file_info_frequency
            $thisPodcastEpisodeData = parseXMLepisodeData($thisPodcastEpisode[2]);
            //// content definition and depuration (solves problem with quotes etc...)
            $text_title = depurateContent($thisPodcastEpisodeData[0]);
            //title
            $thisPodcastEpisodeData[1] = depurateContent($thisPodcastEpisodeData[1]);
            //short desc
            $text_shortdesc = depurateContent($thisPodcastEpisodeData[1]);
            //short desc
            $text_longdesc = depurateContent($thisPodcastEpisodeData[2]);
            //long desc
            $text_keywordspg = depurateContent($thisPodcastEpisodeData[4]);