function parse_mpd_state($status) { global $debug; /* default.aac [playing] #2/4 0:53/4:08 (21%) Updating DB (#4) ... volume: n/a repeat: on random: off single: off consume: off */ $state = array(); $state['state'] = 'stop'; // search play state from first index foreach ($status as $tmp_idx => $status_line) { if (preg_match('/^\\[(paused|playing)\\]/', $status_line)) { $tmp = preg_split('/\\s+/', $status_line); if ($tmp[0] == '[playing]') { $state['state'] = 'play'; } if ($tmp[0] == '[paused]') { $state['state'] = 'pause'; } $tmp_num = strtok($tmp[1], '/'); $state['songid'] = intval(substr($tmp_num, 1)); $state['playlistlength'] = strtok('/'); $state['time_sec'] = convert_time_to_seconds(strtok($tmp[2], '/')); $state['elapsed_sec'] = convert_time_to_seconds(strtok('/')); } } if ($debug) { echo "parsed mpd state: \n"; var_dump($state); } return $state; }
/** * Test converting time period with invalid input */ public function test_convert_time_to_seconds_with_invalid_input() { // Asert missing properties returns false $period = new stdClass(); $result = convert_time_to_seconds($period); $this->assertFalse($result); $periodone = new stdClass(); $periodone->minutes = 0; $result = convert_time_to_seconds($periodone); $this->assertFalse($result); $periodtwo = new stdClass(); $periodtwo->hours = 0; $result = convert_time_to_seconds($periodtwo); $this->assertFalse($result); }
} // Validate minutes argument. if (array_key_exists('minutes', $options)) { if (!validate_parameter($options['minutes'])) { cli_error(get_string('cli_error_minutes', 'eliscore_etl')); } $period->minutes = (int) $options['minutes']; } // Validate hours argument. if (array_key_exists('hours', $options)) { if (!validate_parameter($options['hours'])) { cli_error(get_string('cli_error_hours', 'eliscore_etl')); } $period->hours = (int) $options['hours']; } $durationinseconds = convert_time_to_seconds($period); if (0 == $durationinseconds || false == $durationinseconds) { cli_error(get_string('cli_error_zero_duration', 'eliscore_etl')); } if ($durationinseconds > ETL_BLOCKED_MAX_TIME) { cli_error(get_string('cli_error_max_time_exceeded', 'eliscore_etl', ETL_BLOCKED_MAX_TIME)); } // Print heading. cli_heading(get_string('cli_run_etl_cron_heading', 'eliscore_etl', $period)); // Check for existing block. $task = $DB->get_record('local_eliscore_sched_tasks', array('plugin' => 'eliscore_etl')); if (!empty($task->blocked) && $timenow < $task->blocked) { cli_error(get_string('cli_error_blocked', 'eliscore_etl')); } $etlobj = new eliscore_etl_useractivity($durationinseconds); // Set callback method incase the script is terminated.