static function unplag_get_score($plagiarismsettings, $plagiarismfile, $force = false) { global $CFG, $DB; $api = new UnApi($plagiarismsettings['unplag_client_id'], $plagiarismsettings['unplag_api_secret']); $results = $api->GetResults($plagiarismfile->check_id); if ($results['result'] && $results['checks_results'][0][0]['progress'] == 100) { //check finished $plagiarismfile->statuscode = UNPLAG_STATUSCODE_PROCESSED; $plagiarismfile->progress = 100; $plagiarismfile->reporturl = '#'; $plagiarismfile->similarityscore = (int) $results['checks_results'][0][0]['similarity']; $plagiarismfile->optout = (string) 'library/viewer/report/' . $plagiarismfile->check_id . '?share_token=' . $results['checks_results'][0][0]['share_token']; // Now send e-mail to user. $emailstudents = $DB->get_field('plagiarism_unplag_config', 'value', array('cm' => $plagiarismfile->cm, 'name' => 'unplag_studentemail')); if (!empty($emailstudents)) { $unplag = new self(); $unplag->plagiarism_unplag_send_student_email($plagiarismfile); } } elseif (!$results['result']) { $plagiarismfile->status = UNPLAG_STATUSCODE_INVALID_RESPONSE; $plagiarismfile->errorresponse = json_encode($results['errors']); } else { //check not finished $plagiarismfile->progress = $results['checks_results'][0][0]['progress']; } $plagiarismfile->attempt = $plagiarismfile->attempt + 1; $DB->update_record('plagiarism_unplag_files', $plagiarismfile); return $plagiarismfile; }