@@ -23,7 +23,7 @@ final class LinkDatabaseExporter extends AbstractExporter
2323 'dev.hanashi.wsdb.links.category.acl ' => 'CategoryACLs ' ,
2424 'dev.hanashi.wsdb.links.option ' => 'Options ' ,
2525 'dev.hanashi.wsdb.links.links ' => 'Links ' ,
26- // TODO: attachment importer
26+ ' dev.hanashi.wsdb.links.attachments ' => ' Attachments ' ,
2727 'dev.hanashi.wsdb.links.option.values ' => 'OptionValues ' ,
2828 'dev.hanashi.wsdb.links.comment ' => 'Comments ' ,
2929 'dev.hanashi.wsdb.links.comment.response ' => 'CommentResponses ' ,
@@ -83,6 +83,9 @@ public function getQueue()
8383 }
8484 if (\in_array ('dev.hanashi.wsdb.links.links ' , $ this ->selectedData )) {
8585 $ queue [] = 'dev.hanashi.wsdb.links.links ' ;
86+ if (\in_array ('dev.hanashi.wsdb.links.attachments ' , $ this ->selectedData )) {
87+ $ queue [] = 'dev.hanashi.wsdb.links.attachments ' ;
88+ }
8689 if (
8790 \in_array ('dev.hanashi.wsdb.links.option ' , $ this ->selectedData )
8891 && \in_array ('dev.hanashi.wsdb.links.option.values ' , $ this ->selectedData )
@@ -114,6 +117,7 @@ public function getSupportedData(): array
114117 'dev.hanashi.wsdb.links.category.acl ' ,
115118 'dev.hanashi.wsdb.links.option ' ,
116119 'dev.hanashi.wsdb.links.links ' ,
120+ 'dev.hanashi.wsdb.links.attachments ' ,
117121 'dev.hanashi.wsdb.links.option.values ' ,
118122 'dev.hanashi.wsdb.links.comment ' ,
119123 'dev.hanashi.wsdb.links.comment.response ' ,
@@ -488,6 +492,37 @@ public function exportLinks(int $offset, int $limit): void
488492 }
489493 }
490494
495+ public function countAttachments (): int
496+ {
497+ $ sql = "SELECT COUNT(*)
498+ FROM wcf1_links
499+ WHERE attachments <> ? " ;
500+
501+ $ statement = $ this ->database ->prepare ($ sql );
502+ $ statement ->execute ([0 ]);
503+
504+ return $ statement ->fetchSingleColumn ();
505+ }
506+
507+ public function exportAttachments (int $ offset , int $ limit ): void
508+ {
509+ $ sql = "SELECT linkID
510+ FROM wcf1_links
511+ WHERE attachments <> ?
512+ ORDER BY linkID " ;
513+ $ statement = $ this ->database ->prepare ($ sql , $ limit , $ offset );
514+ $ statement ->execute ([0 ]);
515+
516+ while ($ row = $ statement ->fetchArray ()) {
517+ ImportHandler::getInstance ()
518+ ->getImporter ('dev.hanashi.wsdb.links.attachments ' )
519+ ->import (
520+ 0 ,
521+ $ row
522+ );
523+ }
524+ }
525+
491526 public function countOptionValues (): int
492527 {
493528 return $ this ->countLinks ();
@@ -632,7 +667,7 @@ public function exportCommentResponses(int $offset, int $limit): void
632667 WHERE objectTypeID = ?
633668 )
634669 ORDER BY responseID " ;
635- $ statement = $ this ->database ->prepareUnmanaged ($ sql , $ limit , $ offset );
670+ $ statement = $ this ->database ->prepare ($ sql , $ limit , $ offset );
636671 $ statement ->execute ([$ objectType ->objectTypeID ]);
637672 while ($ row = $ statement ->fetchArray ()) {
638673 $ data = [
@@ -684,7 +719,7 @@ public function exportReactions(int $offset, int $limit): void
684719 FROM wcf1_like
685720 WHERE objectTypeID = ?
686721 ORDER BY likeID " ;
687- $ statement = $ this ->database ->prepareUnmanaged ($ sql , $ limit , $ offset );
722+ $ statement = $ this ->database ->prepare ($ sql , $ limit , $ offset );
688723 $ statement ->execute ([$ objectType ->objectTypeID ]);
689724 while ($ row = $ statement ->fetchArray ()) {
690725 $ data = [
0 commit comments