add mock recommender service for development, add user-context recommended posts
This commit is contained in:
7
script/mock_services/README.md
Normal file
7
script/mock_services/README.md
Normal 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
|
||||
14
script/mock_services/iqdbs.rb
Normal file
14
script/mock_services/iqdbs.rb
Normal 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
|
||||
8
script/mock_services/listbooru.rb
Normal file
8
script/mock_services/listbooru.rb
Normal file
@@ -0,0 +1,8 @@
|
||||
require 'sinatra'
|
||||
require 'json'
|
||||
|
||||
set :port, 3004
|
||||
|
||||
post '/v2/search' do
|
||||
# todo
|
||||
end
|
||||
22
script/mock_services/mock_service_helper.rb
Normal file
22
script/mock_services/mock_service_helper.rb
Normal 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
|
||||
19
script/mock_services/recommender.rb
Normal file
19
script/mock_services/recommender.rb
Normal 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
|
||||
26
script/mock_services/reportbooru.rb
Normal file
26
script/mock_services/reportbooru.rb
Normal 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
|
||||
Reference in New Issue
Block a user