| 1 | #!/usr/bin/php5 -q |
| 2 | <?php |
| 3 | |
| 4 | ini_set('include_path', '.:../include:/usr/share/php'); |
| 5 | require_once('connect.db.inc.php'); |
| 6 | require_once('marketing.inc.php'); |
| 7 | |
| 8 | $opts = getopt('f:l:m:'); |
| 9 | if (($opts['f'] && $opts['f'] == '-') || empty($opts['f'])) { |
| 10 | $file = 'php://stdin'; |
| 11 | } else { |
| 12 | $file = $opts['f']; |
| 13 | } |
| 14 | if (empty($opts['l']) || empty($opts['m'])) { |
| 15 | exit; |
| 16 | } |
| 17 | $matcol = intval($opts['m']); |
| 18 | $logcol = intval($opts['l']); |
| 19 | $handle = fopen($file, 'r'); |
| 20 | |
| 21 | while ($data = fgetcsv($handle)) { |
| 22 | $login = $data[$logcol]; |
| 23 | $matri = preg_replace('/1(\d{2})(\d{3})/', '20${1}0\2', $data[$matcol]); |
| 24 | if (!is_numeric($matri)) { |
| 25 | echo "ERROR The matricule ($matri) is not a numerical value\n"; |
| 26 | break; |
| 27 | } |
| 28 | $query = XDB::query("SELECT user_id |
| 29 | FROM auth_user_md5 |
| 30 | WHERE matricule = {?}", |
| 31 | $matri); |
| 32 | $uid = $query->fetchOneCell(); |
| 33 | if (!$uid) { |
| 34 | echo "WARNING Can't find uid for matricule $matri (login $login)\n"; |
| 35 | continue; |
| 36 | } |
| 37 | $market = Marketing::get($uid, "$login@poly.polytechnique.fr"); |
| 38 | if (!is_null($market)) { |
| 39 | echo "WARNING A marketing has already been to $matri on $login\n"; |
| 40 | continue; |
| 41 | } |
| 42 | $market = new Marketing($uid, "$login@poly.polytechnique.fr", 'default', null, 'staff'); |
| 43 | $market->add(false); |
| 44 | $market->send(); |
| 45 | } |
| 46 | |
| 47 | // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: |
| 48 | ?> |
| 49 | |