function urkund_get_score($plagiarismsettings, $plagiarismfile, $force = false)
{
    global $DB;
    // Check if we need to delay this submission.
    if (!$force) {
        $attemptallowed = urkund_check_attempt_timeout($plagiarismfile);
        if (!$attemptallowed) {
            return '';
        }
    }
    $allowedstatus = array(URKUND_STATUSCODE_PROCESSED, URKUND_STATUSCODE_NOT_FOUND, URKUND_STATUSCODE_BAD_REQUEST);
    $successfulstates = array('Analyzed', 'Rejected', 'Error');
    if ($plagiarismfile->statuscode == URKUND_STATUSCODE_ACCEPTED_OLD) {
        $url = old_urkund_get_url($plagiarismsettings['urkund_api'], $plagiarismfile);
    } else {
        $url = urkund_get_url($plagiarismsettings['urkund_api'], $plagiarismfile);
    }
    if (empty($url)) {
        mtrace('ERROR: no receiver address found for this cm: ' . $plagiarismfile->cm);
        $plagiarismfile->statuscode = URKUND_STATUSCODE_NORECEIVER;
        $plagiarismfile->errorresponse = get_string('noreceiver', 'plagiarism_urkund');
        $DB->update_record('plagiarism_urkund_files', $plagiarismfile);
        return '';
    }
    $headers = array('Accept-Language: ' . $plagiarismsettings['urkund_lang']);
    // Use Moodle curl wrapper to send file.
    $c = new curl(array('proxy' => true));
    $c->setopt(array());
    $c->setopt(array('CURLOPT_RETURNTRANSFER' => 1, 'CURLOPT_HTTPAUTH' => CURLAUTH_BASIC, 'CURLOPT_USERPWD' => $plagiarismsettings['urkund_username'] . ":" . $plagiarismsettings['urkund_password']));
    $c->setHeader($headers);
    $response = $c->get($url);
    $httpstatus = $c->info['http_code'];
    if (!empty($httpstatus)) {
        if (in_array($httpstatus, $allowedstatus)) {
            if ($httpstatus == URKUND_STATUSCODE_PROCESSED) {
                // Get similarity score from xml.
                $xml = new SimpleXMLElement($response);
                $status = (string) $xml->SubmissionData[0]->Status[0]->State[0];
                if (!empty($status) && in_array($status, $successfulstates)) {
                    $plagiarismfile->statuscode = $status;
                }
                if (!empty($status) && $status == 'Analyzed') {
                    $plagiarismfile->reporturl = (string) $xml->SubmissionData[0]->Report[0]->ReportUrl[0];
                    $plagiarismfile->similarityscore = (int) $xml->SubmissionData[0]->Report[0]->Significance[0];
                    $plagiarismfile->optout = (string) $xml->SubmissionData[0]->Document[0]->OptOutInfo[0]->Url[0];
                    // Now send e-mail to user.
                    $emailstudents = $DB->get_field('plagiarism_urkund_config', 'value', array('cm' => $plagiarismfile->cm, 'name' => 'urkund_studentemail'));
                    if (!empty($emailstudents)) {
                        $urkund = new plagiarism_plugin_urkund();
                        $urkund->urkund_send_student_email($plagiarismfile);
                    }
                }
            } else {
                $plagiarismfile->statuscode = $httpstatus;
            }
        }
    }
    $plagiarismfile->attempt = $plagiarismfile->attempt + 1;
    $DB->update_record('plagiarism_urkund_files', $plagiarismfile);
    return $plagiarismfile;
}