Fix OPO URL's

This commit is contained in:
2023-02-16 13:28:49 +01:00
parent d8fd5a295f
commit 14d56c4f40
3 changed files with 20 additions and 5 deletions

View File

@@ -3,6 +3,7 @@
require __DIR__.'/vendor/autoload.php';
require __DIR__.'/config/config.php';
use Sabre\VObject;
info("Retrieving courses...");
$urls = retrieve_courses();
@@ -14,6 +15,8 @@ if (empty($urls)) {
info("Downloading ics files...");
download_ics($urls);
parseCourses($urls);
info("Updating database...");
update_db($urls);
@@ -21,15 +24,15 @@ function update_db(array $icsUrls)
{
$db = new PDO("sqlite:".__DIR__."/roosters_new.db");
$db->exec(
"CREATE TABLE courses(id VARCHAR PRIMARY KEY, `file` VARCHAR, `course` VARCHAR, `opo` VARCHAR, `group` VARCHAR)"
"CREATE TABLE courses(`id` VARCHAR PRIMARY KEY, `file` VARCHAR, `course` VARCHAR, `opo` VARCHAR, `url` VARCHAR, `group` VARCHAR)"
);
$db->beginTransaction();
$stmt = $db->prepare("INSERT INTO courses (id, `file`,`course`,`opo`,`group`) VALUES(?,?,?,?,?)");
$stmt = $db->prepare("INSERT INTO courses (`id`, `file`,`course`,`opo`,`url`,`group`) VALUES(?,?,?,?,?,?)");
foreach ($icsUrls as $key => $item) {
$stmt->execute([substr(md5($key), 0, 8), $key, $item['course'], $item['opo'], $item['group']]);
$stmt->execute([substr(md5($key), 0, 8), $key, $item['course'], $item['opo'], $item['url'], $item['group']]);
}
$db->commit();
rename(__DIR__.'/roosters_new.db', __DIR__.'/roosters.db');
@@ -119,6 +122,18 @@ function retrieve_courses() :array
return $icsUrls;
}
function parseCourses(array &$icsData) {
foreach ($icsData as $key => $course) {
$v = VObject\Reader::read(
fopen(__DIR__."/var/cache/$key", 'r'),
VObject\Reader::OPTION_FORGIVING
);
$icsData[$key]['url'] = $v->VEVENT[0]->URL;
}
}
function get_base_url(string $url) :string
{
$rawPath = parse_url($url, PHP_URL_PATH);

View File

@@ -66,7 +66,7 @@ foreach ($courses as $course) {
<span>
{$course['course']}
<span class=\"d-block text-muted\">
<a class='text-decoration-none' target='_blank' href=\"https://onderwijsaanbod.kuleuven.be/syllabi/n/{$course['opo']}N.htm\">
<a class='text-decoration-none' target='_blank' href=\"{$course['url']}\">
<span class=\"badge bg-secondary\"><i class=\"bi bi-link-45deg\"></i> {$course['opo']}</span>
</a>

View File

@@ -3,5 +3,5 @@
@unlink(__DIR__.'short_links.db');
$db = new PDO("sqlite:".__DIR__."/short_links.db");
$db->exec(
"CREATE TABLE links(id VARCHAR PRIMARY KEY, `courses` VARCHAR)"
"CREATE TABLE links(`id` VARCHAR PRIMARY KEY, `courses` VARCHAR)"
);