mirror of
https://github.com/twisterarmy/twister-core.git
synced 2025-01-10 14:58:05 +00:00
getnumpieces rpc
This commit is contained in:
parent
2499954dbd
commit
f4d6c2be28
@ -255,6 +255,7 @@ static const CRPCCommand vRPCCommands[] =
|
|||||||
{ "unfollow", &unfollow, false, true },
|
{ "unfollow", &unfollow, false, true },
|
||||||
{ "getfollowing", &getfollowing, false, true },
|
{ "getfollowing", &getfollowing, false, true },
|
||||||
{ "getlasthave", &getlasthave, false, true },
|
{ "getlasthave", &getlasthave, false, true },
|
||||||
|
{ "getnumpieces", &getnumpieces, false, true },
|
||||||
{ "listusernamespartial", &listusernamespartial, false, true },
|
{ "listusernamespartial", &listusernamespartial, false, true },
|
||||||
{ "rescandirectmsgs", &rescandirectmsgs, false, true },
|
{ "rescandirectmsgs", &rescandirectmsgs, false, true },
|
||||||
};
|
};
|
||||||
@ -918,7 +919,7 @@ void JSONRequest::parse(const Value& valRequest)
|
|||||||
throw JSONRPCError(RPC_INVALID_REQUEST, "Method must be a string");
|
throw JSONRPCError(RPC_INVALID_REQUEST, "Method must be a string");
|
||||||
strMethod = valMethod.get_str();
|
strMethod = valMethod.get_str();
|
||||||
if (strMethod != "getwork" && strMethod != "getblocktemplate" &&
|
if (strMethod != "getwork" && strMethod != "getblocktemplate" &&
|
||||||
strMethod != "getlasthave" &&
|
strMethod != "getlasthave" && strMethod != "getnumpieces" &&
|
||||||
strMethod != "getinfo" && strMethod != "getbestblockhash" && strMethod != "getblock")
|
strMethod != "getinfo" && strMethod != "getbestblockhash" && strMethod != "getblock")
|
||||||
printf("ThreadRPCServer method=%s\n", strMethod.c_str());
|
printf("ThreadRPCServer method=%s\n", strMethod.c_str());
|
||||||
|
|
||||||
|
@ -207,6 +207,7 @@ extern json_spirit::Value follow(const json_spirit::Array& params, bool fHelp);
|
|||||||
extern json_spirit::Value unfollow(const json_spirit::Array& params, bool fHelp);
|
extern json_spirit::Value unfollow(const json_spirit::Array& params, bool fHelp);
|
||||||
extern json_spirit::Value getfollowing(const json_spirit::Array& params, bool fHelp);
|
extern json_spirit::Value getfollowing(const json_spirit::Array& params, bool fHelp);
|
||||||
extern json_spirit::Value getlasthave(const json_spirit::Array& params, bool fHelp);
|
extern json_spirit::Value getlasthave(const json_spirit::Array& params, bool fHelp);
|
||||||
|
extern json_spirit::Value getnumpieces(const json_spirit::Array& params, bool fHelp);
|
||||||
extern json_spirit::Value listusernamespartial(const json_spirit::Array& params, bool fHelp);
|
extern json_spirit::Value listusernamespartial(const json_spirit::Array& params, bool fHelp);
|
||||||
extern json_spirit::Value rescandirectmsgs(const json_spirit::Array& params, bool fHelp);
|
extern json_spirit::Value rescandirectmsgs(const json_spirit::Array& params, bool fHelp);
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ torrent_handle startTorrentUser(std::string const &username)
|
|||||||
return m_userTorrent[username];
|
return m_userTorrent[username];
|
||||||
}
|
}
|
||||||
|
|
||||||
int lastPostKfromTorrent(std::string const &username)
|
int torrentLastHave(std::string const &username)
|
||||||
{
|
{
|
||||||
if( !m_userTorrent.count(username) )
|
if( !m_userTorrent.count(username) )
|
||||||
return -1;
|
return -1;
|
||||||
@ -105,6 +105,15 @@ int lastPostKfromTorrent(std::string const &username)
|
|||||||
return status.last_have;
|
return status.last_have;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int torrentNumPieces(std::string const &username)
|
||||||
|
{
|
||||||
|
if( !m_userTorrent.count(username) )
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
torrent_status status = m_userTorrent[username].status();
|
||||||
|
return status.num_pieces;
|
||||||
|
}
|
||||||
|
|
||||||
int saveGlobalData(std::string const& filename)
|
int saveGlobalData(std::string const& filename)
|
||||||
{
|
{
|
||||||
LOCK(cs_twister);
|
LOCK(cs_twister);
|
||||||
@ -1628,7 +1637,25 @@ Value getlasthave(const Array& params, bool fHelp)
|
|||||||
Object ret;
|
Object ret;
|
||||||
LOCK(cs_twister);
|
LOCK(cs_twister);
|
||||||
BOOST_FOREACH(string username, m_users[localUser].m_following) {
|
BOOST_FOREACH(string username, m_users[localUser].m_following) {
|
||||||
ret.push_back(Pair(username,lastPostKfromTorrent(username)));
|
ret.push_back(Pair(username,torrentLastHave(username)));
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
Value getnumpieces(const Array& params, bool fHelp)
|
||||||
|
{
|
||||||
|
if (fHelp || (params.size() != 1))
|
||||||
|
throw runtime_error(
|
||||||
|
"getnumpieces <username>\n"
|
||||||
|
"get number of posts already downloaded for each user user we follow");
|
||||||
|
|
||||||
|
string localUser = params[0].get_str();
|
||||||
|
|
||||||
|
Object ret;
|
||||||
|
LOCK(cs_twister);
|
||||||
|
BOOST_FOREACH(string username, m_users[localUser].m_following) {
|
||||||
|
ret.push_back(Pair(username,torrentNumPieces(username)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
Loading…
Reference in New Issue
Block a user