diff --git a/import_albums.php b/import_albums.php deleted file mode 100644 index e116f81..0000000 --- a/import_albums.php +++ /dev/null @@ -1,319 +0,0 @@ -queryValue(' - SELECT COUNT(*) - FROM users'); - -echo $num_users, ' users to import.', "\n"; - -$rs_users = $pdb->query(' - SELECT id, name, full_name, password, last_login, email, admin - FROM users - WHERE id > 1 - ORDER BY id ASC'); - -$old_user_id_to_new_user_id = []; - -while ($user = $pdb->fetch_assoc($rs_users)) -{ - // Check whether a user already exists for this e-mail address. - if (!($id_user = Authentication::getUserId($user['email']))) - { - $bool = $db->insert('insert', 'users', [ - 'first_name' => 'string-30', - 'surname' => 'string-60', - 'slug' => 'string-90', - 'emailaddress' => 'string-255', - 'password_hash' => 'string-255', - 'creation_time' => 'int', - 'last_action_time' => 'int', - 'ip_address' => 'string-15', - 'is_admin' => 'int', - ], [ - 'first_name' => substr($user['full_name'], 0, strpos($user['full_name'], ' ')), - 'surname' => substr($user['full_name'], strpos($user['full_name'], ' ') + 1), - 'slug' => $user['name'], - 'emailaddress' => $user['email'], - 'password_hash' => $user['password'], - 'creation_time' => 0, - 'last_action_time' => $user['last_login'], - 'ip_address' => '0.0.0.0', - 'is_admin' => $user['admin'], - ], ['id_user']); - - if ($bool) - $id_user = $db->insert_id(); - else - die("User creation failed!"); - } - - $old_user_id_to_new_user_id[$user['id']] = $id_user; -} - -$pdb->free_result($rs_users); - -/******************************* - * STEP 1: ALBUMS - *******************************/ - -$num_albums = $pdb->queryValue(' - SELECT COUNT(*) - FROM items - WHERE type = {string:album} - ORDER BY id ASC', - ['album' => 'album']); - -echo $num_albums, ' albums to import.', "\n"; - -$albums = $pdb->query(' - SELECT id, album_cover_item_id, parent_id, title, description, relative_path_cache, relative_url_cache - FROM items - WHERE type = {string:album} - ORDER BY id ASC', - ['album' => 'album']); - -$tags = []; -$old_album_id_to_new_tag_id = []; -$dirnames_by_old_album_id = []; -$old_thumb_id_by_tag_id = []; - -while ($album = $pdb->fetch_assoc($albums)) -{ - $tag = Tag::createNew([ - 'tag' => $album['title'], - 'slug' => $album['relative_url_cache'], - 'kind' => 'Album', - 'description' => $album['description'], - ]); - - if (!empty($album['parent_id'])) - $parent_to_set[$tag->id_tag] = $album['parent_id']; - - $tags[$tag->id_tag] = $tag; - $old_album_id_to_new_tag_id[$album['id']] = $tag->id_tag; - $dirnames_by_old_album_id[$album['id']] = str_replace('#', '', urldecode($album['relative_path_cache'])); - $old_thumb_id_by_tag_id[$tag->id_tag] = $album['album_cover_item_id']; -} - -$pdb->free_result($albums); - -foreach ($parent_to_set as $id_tag => $old_album_id) -{ - $id_parent = $old_album_id_to_new_tag_id[$old_album_id]; - $db->query(' - UPDATE tags - SET id_parent = ' . $id_parent . ' - WHERE id_tag = ' . $id_tag); -} - -unset($parent_to_set); - -/******************************* - * STEP 2: PHOTOS - *******************************/ - -$num_photos = $pdb->queryValue(' - SELECT COUNT(*) - FROM items - WHERE type = {string:photo}', - ['photo' => "photo"]); - -echo $num_photos, " photos to import.\n"; - -$old_photo_id_to_asset_id = []; -for ($i = 0; $i < $num_photos; $i += 50) -{ - echo 'Offset ' . $i . "...\n"; - - $photos = $pdb->query(' - SELECT id, owner_id, parent_id, captured, created, name, title, description, relative_url_cache, width, height, mime_type, weight - FROM items - WHERE type = {string:photo} - ORDER BY id ASC - LIMIT ' . $i . ', 50', - ['photo' => 'photo']); - - while ($photo = $pdb->fetch_assoc($photos)) - { - $res = $db->query(' - INSERT INTO assets - (id_user_uploaded, subdir, filename, title, slug, mimetype, image_width, image_height, date_captured, priority) - VALUES - ({int:id_user_uploaded}, {string:subdir}, {string:filename}, {string:title}, {string:slug}, {string:mimetype}, - {int:image_width}, {int:image_height}, - IF({int:date_captured} > 0, FROM_UNIXTIME({int:date_captured}), NULL), - {int:priority})', - [ - 'id_user_uploaded' => $old_user_id_to_new_user_id[$photo['owner_id']], - 'subdir' => $dirnames_by_old_album_id[$photo['parent_id']], - 'filename' => str_replace('#', '', $photo['name']), - 'title' => $photo['title'], - 'slug' => str_replace('#', '', urldecode($photo['relative_url_cache'])), - 'mimetype' => $photo['mime_type'], - 'image_width' => !empty($photo['width']) ? $photo['width'] : 'NULL', - 'image_height' => !empty($photo['height']) ? $photo['height'] : 'NULL', - 'date_captured' => !empty($photo['captured']) ? $photo['captured'] : $photo['created'], - 'priority' => !empty($photo['weight']) ? (int) $photo['weight'] : 0, - ]); - - $id_asset = $db->insert_id(); - $old_photo_id_to_asset_id[$photo['id']] = $id_asset; - - // Link to album. - $db->query(' - INSERT INTO assets_tags - (id_asset, id_tag) - VALUES - ({int:id_asset}, {int:id_tag})', - [ - 'id_asset' => $id_asset, - 'id_tag' => $old_album_id_to_new_tag_id[$photo['parent_id']], - ]); - } -} - -/******************************* - * STEP 3: TAGS - *******************************/ - -$num_tags = $pdb->queryValue(' - SELECT COUNT(*) - FROM tags'); - -echo $num_tags, " tags to import.\n"; - -$rs_tags = $pdb->query(' - SELECT id, name, count - FROM tags'); - -$old_tag_id_to_new_tag_id = []; -while ($person = $pdb->fetch_assoc($rs_tags)) -{ - $tag = Tag::createNew([ - 'tag' => $person['name'], - 'slug' => $person['name'], - 'kind' => 'Person', - 'description' => '', - 'count' => $person['count'], - ]); - - $tags[$tag->id_tag] = $tag; - $old_tag_id_to_new_tag_id[$person['id']] = $tag->id_tag; -} - -$pdb->free_result($rs_tags); - -/******************************* - * STEP 4: TAGGED PHOTOS - *******************************/ - -$num_tagged = $pdb->queryValue(' - SELECT COUNT(*) - FROM items_tags - WHERE item_id IN( - SELECT id - FROM items - WHERE type = {string:photo} - )', - ['photo' => 'photo']); - -echo $num_tagged, " photo tags to import.\n"; - -$rs_tags = $pdb->query(' - SELECT item_id, tag_id - FROM items_tags - WHERE item_id IN( - SELECT id - FROM items - WHERE type = {string:photo} - )', - ['photo' => 'photo']); - -while ($tag = $pdb->fetch_assoc($rs_tags)) -{ - if (!isset($old_tag_id_to_new_tag_id[$tag['tag_id']], $old_photo_id_to_asset_id[$tag['item_id']])) - continue; - - $id_asset = $old_photo_id_to_asset_id[$tag['item_id']]; - $id_tag = $old_tag_id_to_new_tag_id[$tag['tag_id']]; - - // Link up. - $db->query(' - INSERT IGNORE INTO assets_tags - (id_asset, id_tag) - VALUES - ({int:id_asset}, {int:id_tag})', - [ - 'id_asset' => $id_asset, - 'id_tag' => $id_tag, - ]); -} - -$pdb->free_result($rs_tags); - -/******************************* - * STEP 5: THUMBNAIL IDS - *******************************/ - -foreach ($old_thumb_id_by_tag_id as $id_tag => $old_thumb_id) -{ - if (!isset($old_photo_id_to_asset_id[$old_thumb_id])) - continue; - - $id_asset = $old_photo_id_to_asset_id[$old_thumb_id]; - $db->query(' - UPDATE tags - SET id_asset_thumb = ' . $id_asset . ' - WHERE id_tag = ' . $id_tag); -} - -/******************************* - * STEP 6: THUMBNAILS FOR PEOPLE - *******************************/ - -$db->query(' - UPDATE tags AS t - SET id_asset_thumb = ( - SELECT id_asset - FROM assets_tags AS a - WHERE a.id_tag = t.id_tag - ORDER BY RAND() - LIMIT 1 - ) - WHERE kind = {string:person}', - ['person' => 'Person']); - -/******************************* - * STEP 7: CLEANING UP - *******************************/ - -Tag::recount(); diff --git a/import_postprocess.sh b/import_postprocess.sh deleted file mode 100644 index 0c90f48..0000000 --- a/import_postprocess.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -# ALBUM UPDATE - -# Hashes uit filenames. -find . -name '*#*' -exec rename -v "s/#//" {} \; - -# Orientatie-tags goedzetten. -find public/assets/borrel/april-2015/ -type f -exec exiftool -n -Orientation=1 "{}" \; -find public/assets/Eetpartijtjes/ruwinterbbq/ -type f -exec exiftool -n -Orientation=1 "{}" \; -find public/assets/Eetpartijtjes/Tapasavond-oktober-2011/ -type f -exec exiftool -n -Orientation=1 "{}" \; -find public/assets/Eetpartijtjes/Verjaardag-IV-bij-Wally/ -type f -exec exiftool -n -Orientation=1 "{}" \; -find public/assets/Uitstapjes/Final-Symphony-Wuppertal-2013-05-11/ -type f -exec exiftool -n -Orientation=1 "{}" \; -find public/assets/Universiteit/Oude-sneeuwfoto\'s/ -type f -exec exiftool -n -Orientation=1 "{}" \; -find public/assets/Weekenden/Susteren-2012 -type f -exec exiftool -n -Orientation=1 "{}" \; -find public/assets/Weekenden/Susteren-2013 -type f -exec exiftool -n -Orientation=1 "{}" \; -find public/assets/Weekenden/Wijhe-2016/ -type f -exec exiftool -n -Orientation=1 "{}" \; - -# Remove backup files. -find public/assets/ -type f -name '*_original' -delete diff --git a/migrate_thumbs.php b/migrate_thumbs.php deleted file mode 100644 index b1009b2..0000000 --- a/migrate_thumbs.php +++ /dev/null @@ -1,53 +0,0 @@ -query(' - SELECT id_asset, variable, value - FROM assets_meta - WHERE variable LIKE {string:thumbs}', - ['thumbs' => 'thumb_%']); - -while ($row = $db->fetch_assoc($res)) -{ - if (!preg_match('~^thumb_(?\d+)x(?\d+)(?:_(?c[best]?))?$~', $row['variable'], $match)) - continue; - - echo 'Migrating ... ', $row['value'], '(#', $row['id_asset'], ")\r"; - - $db->insert('replace', 'assets_thumbs', [ - 'id_asset' => 'int', - 'width' => 'int', - 'height' => 'int', - 'mode' => 'string-3', - 'filename' => 'string-255', - ], [ - 'id_asset' => $row['id_asset'], - 'width' => $match['width'], - 'height' => $match['height'], - 'mode' => $match['mode'] ?? '', - 'filename' => $row['value'], - ]); -} - -echo "\nDone\n"; - diff --git a/upgrade.sql b/upgrade.sql deleted file mode 100644 index 7e07e9c..0000000 --- a/upgrade.sql +++ /dev/null @@ -1,15 +0,0 @@ -/* 2023-03-11 Allow designating an owner for each tag */ -ALTER TABLE `tags` ADD `id_user_owner` INT NULL DEFAULT NULL AFTER `id_asset_thumb`; - -/* 2023-03-11 Try to assign tag owners automagically */ -UPDATE tags AS t -SET id_user_owner = ( - SELECT id_user - FROM users AS u - WHERE LOWER(u.first_name) = LOWER(t.slug) OR - LOWER(u.first_name) = LOWER(t.tag) OR - LOWER(u.slug) = LOWER(t.slug) OR - LOWER(u.slug) = LOWER(t.tag) - ) -WHERE t.kind = 'Person' AND - (t.id_user_owner = 0 OR t.id_user_owner IS NULL);