Example #1
0
 private static function getSqlStatement($manual)
 {
     /*
      *                      nick            source (short)     createDate              1:ratio (3-> 33%, 4 -> 25%)
      */
     $bulk = array(array(null, "MDN '00", " = '2007-09-15'", null), array(null, 'Petro-Sedim', null, null), array(null, 'GTA', null, null), array(null, 'DCR2', null, null), array(null, 'DOR', null, null), array('raduborza', 'DOOM 2', " > '2013-01-01'", 4), array(null, 'DRAM', null, null), array('siveco', null, null, null), array('RACAI', null, null, null));
     $conditions = array();
     foreach ($bulk as $tuple) {
         $parts = array();
         if ($tuple[0]) {
             $user = User::get_by_nick($tuple[0]);
             $parts[] = "(userId = {$user->id})";
         }
         if ($tuple[1]) {
             $src = Source::get_by_shortName($tuple[1]);
             $parts[] = "(sourceId = {$src->id})";
         }
         if ($tuple[2]) {
             $parts[] = "(left(from_unixtime(createDate), 10)" . $tuple[2] . ")";
         }
         if ($tuple[3]) {
             $parts[] = "(Definition.id%{$tuple[3]}!=0)";
         }
         $conditions[] = '(' . implode(' and ', $parts) . ')';
     }
     $clause = '(' . implode(' or ', $conditions) . ')';
     if ($manual) {
         $clause = "not {$clause}";
     }
     $statusClause = util_isModerator(PRIV_VIEW_HIDDEN) ? sprintf("status in (%d,%d)", ST_ACTIVE, ST_HIDDEN) : sprintf("status = %d", ST_ACTIVE);
     $query = "select nick, count(*) as NumDefinitions, sum(length(internalRep)) as NumChars, max(createDate) as Timestamp \n    from Definition, User \n    where userId = User.id \n    and {$statusClause}\n    and {$clause} group by nick";
     return $query;
 }
Example #2
0
 private static function getSqlStatement($manual)
 {
     $bulk = array(array(null, Source::get_by_shortName('MDN'), '2007-09-15'), array(null, Source::get_by_shortName('Petro-Sedim'), null), array(null, Source::get_by_shortName('GTA'), null), array(null, Source::get_by_shortName('DCR2'), null), array(null, Source::get_by_shortName('DOR'), null), array(User::get_by_nick('siveco'), null, null), array(User::get_by_nick('RACAI'), null, null));
     $conditions = array();
     foreach ($bulk as $tuple) {
         $parts = array();
         if ($tuple[0]) {
             $parts[] = "(userId = {$tuple[0]->id})";
         }
         if ($tuple[1]) {
             $parts[] = "(sourceId = {$tuple[1]->id})";
         }
         if ($tuple[2]) {
             $parts[] = "(left(from_unixtime(createDate), 10) = '{$tuple[2]}')";
         }
         $conditions[] = '(' . implode(' and ', $parts) . ')';
     }
     $clause = '(' . implode(' or ', $conditions) . ')';
     if ($manual) {
         $clause = "not {$clause}";
     }
     $statusClause = util_isModerator(PRIV_VIEW_HIDDEN) ? sprintf("status in (%d,%d)", ST_ACTIVE, ST_HIDDEN) : sprintf("status = %d", ST_ACTIVE);
     $query = "select nick, count(*) as NumDefinitions, sum(length(internalRep)) as NumChars, max(createDate) as Timestamp \n    from Definition, User \n    where userId = User.id \n    and {$statusClause}\n    and {$clause} group by nick";
     return $query;
 }
Example #3
0
<?php

require_once "../phplib/util.php";
// Parse or initialize the GET/POST arguments
$nick = util_getRequestParameter('n');
$medalSaveButton = util_getRequestParameter('medalSaveButton');
$userId = util_getRequestParameter('userId');
$medalsGranted = util_getRequestParameter('medalsGranted');
if ($medalSaveButton) {
    util_assertModerator(PRIV_ADMIN);
    $user = User::get_by_id($userId);
    $user->medalMask = Medal::getCanonicalMask(array_sum($medalsGranted));
    $user->save();
    util_redirect(util_getWwwRoot() . "utilizator/{$user->nick}");
}
$user = User::get_by_nick($nick);
if (!$user) {
    FlashMessage::add('Utilizatorul ' . htmlspecialchars($nick) . ' nu există.');
    util_redirect(util_getWwwRoot());
}
$userData = array();
$user->email = StringUtil::scrambleEmail($user->email);
// Find the rank of this user by number of words and number of characters
$topWords = TopEntry::getTopData(CRIT_WORDS, SORT_DESC, true);
$numUsers = count($topWords);
$rankWords = 0;
while ($rankWords < $numUsers && $topWords[$rankWords]->userNick != $nick) {
    $rankWords++;
}
$userData['rank_words'] = $rankWords + 1;
if ($rankWords < $numUsers) {
    FlashMessage::add('A apărut o eroare la autentificare. Vă rugăm încercați din nou.');
} else {
    if ($loginType == 0) {
        $user = Model::factory('User')->where('password', md5($password))->where_raw("(email = '{$nickOrEmail}' or nick = '{$nickOrEmail}')")->find_one();
        if (!$user) {
            FlashMessage::add('Numele de utilizator sau parola sunt incorecte.');
        } else {
            if ($user->identity) {
                FlashMessage::add('Acest utilizator a fost deja revendicat de un alt OpenID.');
            } else {
                session_login($user, $data);
            }
        }
    } else {
        $openidNick = $loginType == 1 ? $data['fullname'] : ($loginType == 2 ? $data['nickname'] : $nick);
        $user = User::get_by_nick($openidNick);
        if ($user) {
            FlashMessage::add('Acest nume de utilizator este deja luat.');
        } else {
            if (mb_strlen($openidNick) < 3 || mb_strlen($openidNick) > 20) {
                FlashMessage::add('Numele de utilizator trebuie să aibă între 3 și 20 de caractere.');
            } else {
                if (!preg_match("/^([-a-z0-9_. ]|ă|â|î|ș|ț|Ă|Â|Î|Ș|Ț)+\$/i", $openidNick)) {
                    FlashMessage::add('Numele de utilizator poate conține doar litere, cifre, spații și simbolurile . - _');
                } else {
                    if (!preg_match("/[a-z]|ă|â|î|ș|ț|Ă|Â|Î|Ș|Ț/i", $openidNick)) {
                        FlashMessage::add('Numele de utilizator trebuie să conțină cel puțin o literă.');
                    } else {
                        $data['nickname'] = $openidNick;
                        session_login(null, $data);
                    }
<?php

require_once __DIR__ . '/../phplib/util.php';
define('SERVER_URL', 'http://localhost/~cata/DEX/wwwbase');
$opts = getopt('', array('user:'******'source:', 'date:'));
if (count($opts) != 3) {
    usage();
}
$user = User::get_by_nick($opts['user']);
$source = Source::get_by_urlName($opts['source']);
$timestamp = strtotime($opts['date']);
if (!$user || !$source || !$timestamp) {
    usage();
}
$similarSource = SimilarSource::getSimilarSource($source->id);
if (!$similarSource) {
    usage();
}
$defs = Model::factory('Definition')->where('userId', $user->id)->where('sourceId', $source->id)->where_gt('createDate', $timestamp)->where('status', Definition::ST_ACTIVE)->order_by_asc('lexicon')->find_many();
$truePositives = $falsePositives = $trueNegatives = 0;
foreach ($defs as $def) {
    $lexemIds = db_getArray("select distinct lexemId from LexemDefinitionMap where definitionId = {$def->id}");
    $similar = $def->loadSimilar($lexemIds, $diffSize);
    if ($similar) {
        $correct = ($def->similarSource == 1) == ($diffSize == 0);
        if ($correct) {
            if ($def->similarSource) {
                $truePositives++;
            } else {
                $trueNegatives++;
            }
Example #6
0
<?php

require_once "../../phplib/util.php";
util_assertNotMirror();
util_assertNotLoggedIn();
$openid = util_getRequestParameter('openid');
$fakeUserNick = util_getRequestParameter('fakeUserNick');
$priv = util_getRequestParameter('priv');
$devel = Config::get('global.developmentMode');
if ($fakeUserNick) {
    if (!$devel) {
        FlashMessage::add('Conectarea cu utilizatori de test este permisă doar în development.');
        util_redirect('login');
    }
    $user = User::get_by_nick($fakeUserNick);
    if (!$user) {
        $user = Model::factory('User')->create();
        $user->identity = 'http://fake.example.com';
        $user->nick = $fakeUserNick;
        $user->name = $fakeUserNick;
        $user->moderator = array_sum($priv);
        $user->save();
        session_login($user, array());
    }
}
switch ($openid) {
    case 'google':
        $openid = "https://accounts.google.com/o/oauth2/auth";
        break;
    case 'yahoo':
        $openid = "http://yahoo.com/";
Example #7
0
                        log_scriptLog("Granting {$user->nick} a MEDAL_EMAIL_1");
                        $user->medalMask |= Medal::MEDAL_EMAIL_1;
                    }
                }
            }
            $user->medalMask = Medal::getCanonicalMask($user->medalMask);
            if (!$dryRun) {
                $user->save();
            }
        }
    }
}
// Volunteer medals
$topData = TopEntry::getTopData(CRIT_CHARS, SORT_DESC, true);
foreach ($topData as $e) {
    $user = User::get_by_nick($e->userNick);
    if ($user && $user->id) {
        if ($e->numChars >= 10000000 && !($user->medalMask & Medal::MEDAL_VOLUNTEER_5)) {
            log_scriptLog("Granting {$user->nick} a MEDAL_VOLUNTEER_5");
            $user->medalMask |= Medal::MEDAL_VOLUNTEER_5;
        } else {
            if ($e->numChars >= 1000000 && $e->numChars < 10000000 && !($user->medalMask & Medal::MEDAL_VOLUNTEER_4)) {
                log_scriptLog("Granting {$user->nick} a MEDAL_VOLUNTEER_4");
                $user->medalMask |= Medal::MEDAL_VOLUNTEER_4;
            } else {
                if ($e->numChars >= 100000 && $e->numChars < 1000000 && !($user->medalMask & Medal::MEDAL_VOLUNTEER_3)) {
                    log_scriptLog("Granting {$user->nick} a MEDAL_VOLUNTEER_3");
                    $user->medalMask |= Medal::MEDAL_VOLUNTEER_3;
                } else {
                    if ($e->numChars >= 10000 && $e->numChars < 100000 && !($user->medalMask & Medal::MEDAL_VOLUNTEER_2)) {
                        log_scriptLog("Granting {$user->nick} a MEDAL_VOLUNTEER_2");