don't 404 on XMLRPC unknown methods, and do get_unread_topic correctly

This commit is contained in:
Nick Thomas
2013-09-27 21:07:46 +01:00
parent 0bde9141ec
commit c7f4cc2694

View File

@@ -56,7 +56,8 @@ helpers do
content_type("text/xml", :charset => "utf-8") content_type("text/xml", :charset => "utf-8")
send(method, *arguments) send(method, *arguments)
else else
raise Sinatra::NotFound puts "UNKNOWN METHOD: #{method}"
respond_xmlrpc( 'result' => false, 'result_text' => binary_xmlrpc( "Unknown method: #{method}" ) )
end end
end end
@@ -201,7 +202,7 @@ helpers do
"min_search_length" => 3, # Boring default "min_search_length" => 3, # Boring default
"alert" => "0", # TODO "alert" => "0", # TODO
"direct_unsubscribe" => "0", # TODO "direct_unsubscribe" => "0", # TODO
# "push_type" => "", # TODO - HIGH PRIORITY # "push_type" => "ann,conv,pm,sub,like,thank,quote,newtopic,tag",
# "ban_delete_type" => "none", # TODO # "ban_delete_type" => "none", # TODO
"inappreg" => "0", # TODO "inappreg" => "0", # TODO
@@ -239,7 +240,9 @@ helpers do
# These are returned by some other forums but aren't documented # These are returned by some other forums but aren't documented
"key" => settings.tapatalk_api_key, # tapatalk API key, at a guess? "key" => settings.tapatalk_api_key, # tapatalk API key, at a guess?
"push" => "0", "push" => "0",
# "allow_moderate", # "allow_moderate",
# "charset" => "ISO-8859-1", # "charset" => "ISO-8859-1",
"disable_bbcode" => "0", "disable_bbcode" => "0",
@@ -374,14 +377,13 @@ helpers do
topic_list = unread_topics.fetch( "topic_list" ) topic_list = unread_topics.fetch( "topic_list" )
topics = topic_list.fetch( "topics" ) topics = topic_list.fetch( "topics" )
result['topics'] = topics.collect {|hsh| # No idea what discourse actually returns, other than 0
result['topics'] = topics.select {|hsh| hsh["unread"] != 0 }.collect {|hsh|
build_tapatalk_topic( hsh, :users => unread_topics["users"], :categories => unread_topics["categories"] ) build_tapatalk_topic( hsh, :users => unread_topics["users"], :categories => unread_topics["categories"] )
} }
result['total_topic_num'] = result['topics'].count # api level 4 result['total_topic_num'] = result['topics'].count # api level 4
respond_xmlrpc( result ) respond_xmlrpc( result )
xmlrpc_get_latest_topic( start_num, last_num, search_id, filters )
end end
def xmlrpc_get_latest_topic( start_num = 0, last_num = 0, search_id = nil, filters = nil ) def xmlrpc_get_latest_topic( start_num = 0, last_num = 0, search_id = nil, filters = nil )