いつもの Photos.app の内蔵DBの変更ですが、
Pictures/Photos Library.photoslibrary/database/Photos.sqlite
をなんとかすれば良くて、
my $sql = $mdb->prepare('select * from ZASSET , ZADDITIONALASSETATTRIBUTES where ZASSET.Z_PK=ZADDITIONALASSETATTRIBUTES.ZASSET and ZDATECREATED >= '.$after." order by ZDATECREATED");
$sql->execute or die("db error $sql->errstr");
while (my $photo = $sql->fetchrow_hashref ) {
my $filename = $photo->{'ZORIGINALFILENAME'} ;
my $imagePath = "originals/".$photo->{'ZDIRECTORY'}."/".$photo->{'ZFILENAME'} ;
これだけでした。Z_PK ってのは表のキーに全部同じ属性名付けてるのか。まぁ、IDとかつける人いるしな。Primary Key のこと?
で、他の表のキーには表の名前をそのまま付けてるのか。普通 attr_id とかすると思うんだが。
なんか名前の重複を処理しないなと思ってデバッグしてたら、本当に同じファイルが複数DBに入ってた。
さすが、クソアプリ。写真の重複判定しないのね。もはや読み込みにしか使ってないです。
No comments:
Post a Comment