feature 889 added: pwg.images.exist check the existence of a photo in the

database based on its md5sum. (avoid failing on pwg.images.add).


git-svn-id: http://piwigo.org/svn/trunk@2683 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
plegall
2008-10-07 22:01:14 +00:00
parent 42c665eeff
commit 3eecf04629
3 changed files with 67 additions and 0 deletions

View File

@@ -1457,4 +1457,43 @@ function ws_tags_add($params, &$service)
return $creation_output;
}
function ws_images_exist($params, &$service)
{
if (!is_admin() or is_adviser())
{
return new PwgError(401, 'Access denied');
}
// search among photos the list of photos already added, based on md5sum
// list
$md5sums = preg_split(
'/[\s,;\|]/',
$params['md5sum_list'],
-1,
PREG_SPLIT_NO_EMPTY
);
$query = '
SELECT
id,
md5sum
FROM '.IMAGES_TABLE.'
WHERE md5sum IN (\''.implode("','", $md5sums).'\')
;';
$id_of_md5 = simple_hash_from_query($query, 'md5sum', 'id');
$result = array();
foreach ($md5sums as $md5sum)
{
$result[$md5sum] = null;
if (isset($id_of_md5[$md5sum]))
{
$result[$md5sum] = $id_of_md5[$md5sum];
}
}
return $result;
}
?>

View File

@@ -173,6 +173,25 @@ if ($opt{action} eq 'pwg.tags.add') {
print Dumper(from_json($response->content));
}
if ($opt{action} eq 'pwg.images.exist') {
$form = {
method => $opt{action},
};
foreach my $key (keys %{ $opt{define} }) {
$form->{$key} = $opt{define}{$key};
}
my $response = $ua->post(
$conf{base_url}.'/ws.php?format=json',
$form
);
use Data::Dumper;
print Dumper(from_json($response->content)->{result});
# print Dumper($response);
}
$query = pwg_ws_get_query(
method => 'pwg.session.logout'
);

9
ws.php
View File

@@ -229,6 +229,15 @@ function ws_addDefaultMethods( $arr )
),
'administration method only'
);
$service->addMethod(
'pwg.images.exist',
'ws_images_exist',
array(
'md5sum_list'=> array(),
),
'check existence of a photo list'
);
}
add_event_handler('ws_add_methods', 'ws_addDefaultMethods');