add mock recommender service for development, add user-context recommended posts

This commit is contained in:
r888888888
2018-07-21 13:24:43 -07:00
parent 93c074c15b
commit 344c46ed00
20 changed files with 250 additions and 33 deletions

View File

@@ -0,0 +1,7 @@
These are mocked services to be used for development purposes.
- danbooru: port 3000
- recommender: port 3001
- iqdbs: port 3002
- reportbooru: port 3003
- listbooru: port 3004

View File

@@ -0,0 +1,14 @@
require 'sinatra'
require 'json'
require_relative './mock_service_helper'
set :port, 3002
configure do
POST_IDS = MockServiceHelper.fetch_post_ids()
end
get '/similar' do
content_type :json
POST_IDS[0..10].map {|x| {post_id: x}}.to_json
end

View File

@@ -0,0 +1,8 @@
require 'sinatra'
require 'json'
set :port, 3004
post '/v2/search' do
# todo
end

View File

@@ -0,0 +1,22 @@
require 'socket'
require 'timeout'
require 'httparty'
module MockServiceHelper
extend self
DANBOORU_PORT = 3000
def fetch_post_ids()
begin
s = TCPSocket.new("localhost", DANBOORU_PORT)
s.close
rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
sleep 1
retry
end
json = HTTParty.get("http://localhost:#{DANBOORU_PORT}/posts.json?random=true&limit=10").body
return JSON.parse(json).map {|x| x["id"]}
end
end

View File

@@ -0,0 +1,19 @@
require 'sinatra'
require 'json'
require_relative './mock_service_helper'
set :port, 3001
configure do
POST_IDS = MockServiceHelper.fetch_post_ids()
end
get '/recommend/:user_id' do
content_type :json
POST_IDS[0..10].map {|x| [x, "1.000"]}.to_json
end
get '/similar/:post_id' do
content_type :json
POST_IDS[0..6].map {|x| [x, "1.000"]}.to_json
end

View File

@@ -0,0 +1,26 @@
require 'sinatra'
require 'json'
set :port, 3003
get '/missed_searches' do
content_type :text
return "abcdefg 10.0\nblahblahblah 20.0\n"
end
get '/post_searches/rank' do
content_type :json
return [["abc", 100], ["def", 200]].to_json
end
get '/reports/user_similarity' do
# todo
end
get '/reports/uploads' do
# todo
end
post '/post_views' do
# todo
end