= BookmarksProject Wishlist = - import/export of bookmark data - tool to scan database for broken URLs - machine tags - could this be useful: http://stackoverflow.com/questions/418898/sqlite-upsert-not-insert-or-replace - suite of tools to init, start, and stop an instance - better name Tool suite example to create an instance of the application in the directory "foo": {{{ $ mkdir foo $ cd foo $ bkmk init # writes a basic conf.yml, creates a bookmarks.db SQLite database using bookmarks.sql # could prompt for settings or take them on the command line $ bkmk start # starts up the server using starman, by default on port 5000 $ bkmk stop # stops the running server }}} Deleting bookmarks {{{ sub delete { my $self = shift; my $bookmark = shift; my $sth_insert = $self->dbh->prepare('insert into deleted_bookmarks (id, dtime) values (?, ?)'); $sth_insert->execute($bookmark->id, time); my $sth_delete = $self->dbh->prepare('delete from bookmarks where id = ?'); $sth_delete->execute($bookmark->id); } }}} Paging of results (will require counting bookmark total) {{{ sub get_count { my $self = shift; my $search = shift; my ($sql, @bind) = sql_interp( 'select count(*) from resources join bookmarks on resources.uri = bookmarks.uri', $self->_sql_where_clause($search), ); my $sth = $self->dbh->prepare($sql); $sth->execute(@bind); my ($count) = $sth->fetchrow_array; return $count; }