1st commit

This commit is contained in:
xdrm-brackets 2017-09-12 09:49:38 +02:00
commit 571b1f995c
12 changed files with 300 additions and 0 deletions

3
.htaccess Normal file
View File

@ -0,0 +1,3 @@
RewriteEngine on
RewriteRule ^(.*)$ public_html/$1 [QSA,L]

46
autoloader.php Normal file
View File

@ -0,0 +1,46 @@
<?php
/* [1] On definit les chemins absolus si c'est pas deja fait
=========================================================*/
if( !defined('__ROOT__') ) define('__ROOT__', dirname(__FILE__) );
if( !defined('__CONFIG__') ) define('__CONFIG__', __ROOT__.'/config' );
if( !defined('__BUILD__') ) define('__BUILD__', __ROOT__.'/build' );
if( !defined('__PUBLIC__') ) define('__PUBLIC__', __ROOT__.'/public_html' );
/* ACTIVE LE DEBUGGAGE (WARNING + EXCEPTION)
*
*/
function debug(){
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
}
/* AUTOLOADER
*
* @className<String> Nom de la classe appelee
*
*/
function autoloader($className){
$path = '';
/* [1] On utilise le namespace pour localiser
===============================================*/
// On remplace les '\' par des '/'
$path = str_replace('\\', '/', $className) . '.php';
$path = __BUILD__.'/'.$path;
// Si le fichier existe
if( file_exists($path) )
require_once $path; // on inclue le fichier
}
// On definit l'autoloader comme autoloader (obvious)
spl_autoload_register('autoloader', false, true);
?>

2
build/.htaccess Normal file
View File

@ -0,0 +1,2 @@
Order deny,allow
Deny from all

View File

@ -0,0 +1,16 @@
<?php
$monthList = [
'janvier' => '01',
'février' => '02',
'mars' => '03',
'avril' => '04',
'mai' => '05',
'juin' => '06',
'juillet' => '07',
'août' => '08',
'septembre' => '09',
'octobre' => '10',
'novembre' => '11',
'décembre' => '12'
];

View File

@ -0,0 +1,79 @@
<?php
// Absolute root dir
$ABSROOT = dirname(__DIR__);
require_once "$ABSROOT/lib/months.php";
/* [1] Check arguments
=========================================================*/
/* (1) If not enough -> abort */
if( $argc <= 2 )
exit(1);
/* (2) If @type incorrect */
if( !in_array($argv[1], ['cursus', 'period']) )
die(" * incorrect file type\n");
/* (3) Check given file */
if( !file_exists($argv[2]) )
die(" * file does not exist\n");
/* [2] Try to access file's content
=========================================================*/
/* (1) Read file */
$raw = file_get_contents($argv[2]);
/* (2) Manage error */
if( !is_string($raw) )
die(" * Cannot read file\n");
/* (3) Split by lines */
$raw = explode("\n", $raw);
/* [3] Parse data
=========================================================*/
/* (1) Prepare the output list */
$list = [];
/* (2) Cursur parser */
if( $argv[1] == 'cursus' ){
foreach($raw as $line)
if( preg_match('@"grDiplome","(?:&lt;)?(.+)(?:&gt;)?","T(.+)"@i', $line, $m) )
$list[ html_entity_decode($m[1]) ] = "T${m[2]}";
/* (3) Period parser */
}else{
$first = null;
foreach($raw as $line){
if( preg_match('@"T\d+","du \d+ au (\d+) ([a-z]+) (\d+)","T\d+S(.+)"@i', $line, $m) ){
/* (3.1) Translate month */
$month = $monthList[$m[2]];
/* (3.2) Get date of monday */
$list[ "S${m[4]}" ] = date('d-m-Y', strtotime("${m[1]}-$month-${m[3]} - 5 days"));
}
}
}
/* [4] Write data back
=========================================================*/
if( !file_put_contents("$ABSROOT/../../tmp/${argv[1]}.json", json_encode($list)) )
die(" * Cannot write parsed data back\n");
exit(0);

View File

@ -0,0 +1,92 @@
<?php
// Absolute root dir
$ABSROOT = dirname(__DIR__);
/* [1] Check needed files
=========================================================*/ {
$path = [
'cursus' => "$ABSROOT/../../tmp/cursus.json",
'period' => "$ABSROOT/../../tmp/period.json",
];
/* (1) cursus list */
if( !file_exists($path['cursus']) )
die(" * Missing tmp/cursus.json\n");
/* (2) period list */
if( !file_exists($path['period']) )
die(" * Missing tmp/period.json\n");
}
/* [2] Parse cursus list
=========================================================*/ {
/* (1) Read from file */
$clist = file_get_contents($path['cursus']);
/* (2) Manage error */
if( $clist == false )
die(" * Cannot read cursus file\n");
/* (3) Parse JSON */
$clist = json_decode($clist, true);
/* (4) Manage error */
if( $clist == null )
die(" * Cannot parse cursus file\n");
}
/* [3] Parse period list
=========================================================*/ {
/* (1) Read from file */
$plist = file_get_contents($path['period']);
/* (2) Manage error */
if( $plist == false )
die(" * Cannot read period file\n");
/* (3) Parse JSON */
$plist = json_decode($plist, true);
/* (4) Manage error */
if( $plist == null )
die(" * Cannot parse period file\n");
}
/* [4] Manage each cursus
=========================================================*/ {
/* (1) For each cursus */
foreach($clist as $cname=>$cvalue){
/* (1.2) Create a directory */
if( !file_exists("$ABSROOT/../../tmp/$cvalue") )
file_put_contents("$ABSROOT/../../tmp/$cvalue.ics", "");
/* (1) Download all images
---------------------------------------------------------*/
foreach($plist as $pvalue=>$pdate)
"http://sciences.univ-pau.fr/edt/diplomes/${cvalue}${pvalue}.png"; // image file
}
}

48
build/service/main.sh Normal file
View File

@ -0,0 +1,48 @@
#!/bin/bash
# Absolute root dir
ABSROOT=$( dirname $(realpath $0) );
# [1] Download the list of Diplomes
#========================================================#
# (1) Get the diplomes list #
wget http://sciences.univ-pau.fr/edt/_ressource.js -qO $ABSROOT/../../tmp/cursus.js && echo "* downloaded successfully" || echo "* download failed" || exit 1;
# (2) Get Period list #
wget http://sciences.univ-pau.fr/edt/_periode.js -qO $ABSROOT/../../tmp/period.js && echo "* downloaded successfully" || echo "* download failed" || exit 1;
# [2] Parse these lists
#========================================================#
# (1) Parse the diplomes list #
php $ABSROOT/lib/parse.php cursus $ABSROOT/../../tmp/cursus.js && echo "* parsed successfully" || echo "* parsing failed" || exit 1;
# (2) Parse the period list #
php $ABSROOT/lib/parse.php period $ABSROOT/../../tmp/period.js && echo "* parsed successfully" || echo "* parsing failed" || exit 1;
# [3] Update ICS files
#========================================================#
# (1) Create ICS files #
php $ABSROOT/lib/update.php;
# (2) Remove buffer data #
rm -r $ABSROOT/../../tmp/*.ics
# [X] Remove downloaded original files
#========================================================#
# (1) Remove cursus #
rm $ABSROOT/../../tmp/cursus.js && echo "* removed successfully" || echo "* removing failed" || exit 1;
# (2) Remove period #
rm $ABSROOT/../../tmp/period.js && echo "* removed successfully" || echo "* removing failed" || exit 1;

2
config/.htaccess Normal file
View File

@ -0,0 +1,2 @@
Order deny,allow
Deny from all

4
public_html/.htaccess Normal file
View File

@ -0,0 +1,4 @@
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=/$1 [QSA,L]

6
public_html/index.php Normal file
View File

@ -0,0 +1,6 @@
<?php require_once '../autoloader.php';
debug();
echo "bla";

1
tmp/cursus.json Normal file
View File

@ -0,0 +1 @@
{"CMI- CBE 1\u00e8re Ann\u00e9e> CMI-CBE Bio 1\u00e8re Ann\u00e9e":"T0005396693","CMI- CBE 1\u00e8re Ann\u00e9e> CMI-CBE Chimie 1\u00e8re Ann\u00e9e":"T0005396692","CMI- CBE 2\u00e8me Ann\u00e9e> CMI-CBE Bio 2\u00e8me Ann\u00e9e":"T0005396892","CMI- CBE 2\u00e8me Ann\u00e9e> CMI-CBE Chimie 2\u00e8me Ann\u00e9e":"T0005396893","CMI- GP 1\u00e8re Ann\u00e9e> CMI-GP G\u00e9osciences 1\u00e8re Ann\u00e9e":"T0005396862","CMI- GP 1\u00e8re Ann\u00e9e> CMI-GP R\u00e9serv et Product 1\u00e8re Ann\u00e9e":"T0005396863","L1 Biologie> L1 BIO groupe 1":"T0000000491","L1 Biologie> L1 BIO groupe 2":"T0000000494","L1 Biologie> L1 BIO groupe 3":"T0005395984","L1 Biologie> L1 BIO groupe 4":"T0005396527","L1 Informatique> L1 Info Gr1":"T0005396004","L1 Informatique> L1 Info Gr2":"T0005396003","L1 Informatique> L1 Info Gr3":"T0005396450","L1 Maths> L1 MATH Gr1":"T0005396556","L1 Maths> L1 MATH Gr2":"T0005396557","L1 Maths> L1 MATH Gr3":"T0005396715","L1 MIASHS> L1 MIASHS Gr1":"T0005396232","L1 MIASHS> L1 MIASHS Gr2":"T0005396233","L1 Phys. et Chim.> L1 PC groupe 1":"T0000000488","L1 Phys. et Chim.> L1 PC groupe 2":"T0000000489","L1 Phys. et Chim.> L1 PC groupe 3":"T0005396633","L1 Sciences de la Terre> L1 SDT GR 1":"T0005396887","L1 Sciences de la Terre> L1 SDT GR 2":"T0005396888","L2 Biologie> L2 BIO GR1":"T0005396244","L2 Biologie> L2 BIO GR2":"T0005396245","L2 Biologie> L2 BIO GR3":"T0005396246","L2 Biologie> L2 BIO GR4":"T0005396690","L2 Informatique> L2 Info Gr1":"T0005395091","L2 Informatique> L2 Info Gr2":"T0005395092","L2 Informatique> L2 Info Gr3":"T0005396870","L2 Math\u00e9matiques> L2 MATH Gr 1":"T0005394768","L2 Math\u00e9matiques> L2 MATH Gr 2":"T0005396687","L3 Biologie> L3 BIO G1":"T0000000219","L3 Biologie> L3 BIO G2":"T0000000218","L3 Biologie> L3 BIO G3":"T0005396782","L3 informatique> L3 info groupe 1":"T0000000246","L3 informatique> L3 info groupe 2":"T0000000247","L3 Math\u00e9matiques> L3 Math G 1":"T0005396879","L3 Math\u00e9matiques> L3 Math G 2":"T0005396880","M1 G\u00e9nie p\u00e9trolier> M1 GP G\u00e9osciences":"T0005394886","M1 G\u00e9nie p\u00e9trolier> M1 GP Production et trait":"T0005394888","M1 G\u00e9nie p\u00e9trolier> M1 GP R\u00e9servoirs":"T0005394887","M1 Technologie de l'Internet> M1 Tech Inter groupe 1":"T0000000377","M1 Technologie de l'Internet> M1 Tech Inter groupe 2":"T0000000378","M2 G\u00e9nie p\u00e9trolier> M2 GP G\u00e9osciences":"T0005394889","M2 G\u00e9nie p\u00e9trolier> M2 GP Production et trait":"T0005394891","M2 G\u00e9nie p\u00e9trolier> M2 GP R\u00e9servoirs":"T0005394890"}

1
tmp/period.json Normal file
View File

@ -0,0 +1 @@
{"S0000000000002":"11-09-2017","S0000000000004":"18-09-2017","S0000000000008":"25-09-2017","S0000000000010":"02-10-2017","S0000000000020":"09-10-2017","S0000000000040":"16-10-2017","S0000000000080":"23-10-2017","S0000000000200":"06-11-2017","S0000000000400":"13-11-2017","S0000000000800":"20-11-2017"}