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; }
### 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]);