diff options
| author | rr- | 2017-01-07 11:07:51 +0100 |
|---|---|---|
| committer | rr- | 2017-01-08 02:26:26 +0100 |
| commit | f00cc5f3fa3a16a1f7055c772c3008d030f41fef (patch) | |
| tree | f4d9b3b63900c087425f5952c6f2f58098b7c2f6 /client/js/models | |
| parent | d1bb33ecf0e82689ecbca747a8ac7b038d6cf173 (diff) | |
client/posts: search for similar posts on upload
Diffstat (limited to 'client/js/models')
| -rw-r--r-- | client/js/models/post.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/client/js/models/post.js b/client/js/models/post.js index 8002a0c..18a6223 100644 --- a/client/js/models/post.js +++ b/client/js/models/post.js @@ -69,6 +69,36 @@ class Post extends events.EventTarget { return ret; } + static reverseSearchFromFile(content) { + return Post._reverseSearch({content: content}); + } + + static reverseSearchFromUrl(imageUrl) { + return Post._reverseSearch({contentUrl: imageUrl}); + } + + static _reverseSearch(request) { + let apiPromise = api.post('/posts/reverse-search', {}, request); + let returnedPromise = apiPromise + .then(response => { + if (response.exactPost) { + response.exactPost = Post.fromResponse(response.exactPost); + } + for (let item of response.similarPosts) { + item.post = Post.fromResponse(item.post); + } + return Promise.resolve(response); + }, response => { + return Promise.reject(response.description); + }); + + returnedPromise.abort = () => { + apiPromise.abort(); + }; + + return returnedPromise; + } + static get(id) { return api.get('/post/' + id) .then(response => { |