X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Ffcp%2Fplugin%2FWebOfTrustPlugin.java;h=6c96f50555e2f4baa43611594bb655c1243a04f5;hb=7fc5d7a8393938648722b2762a23218161bf22fc;hp=194952795eeb593bb27093651ed6de666180b4c4;hpb=9be110e698b59932cb5818cb473653c367b8cad0;p=jFCPlib.git diff --git a/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java b/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java index 1949527..6c96f50 100644 --- a/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java +++ b/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java @@ -173,6 +173,82 @@ public class WebOfTrustPlugin { return new IdentityTrust(trust, score, rank); } + /** + * Adds a new identity by its request URI. + * + * @param requestUri + * The request URI of the identity to add + * @return The added identity + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public Identity addIdentity(String requestUri) throws IOException, FcpException { + Map replies = fcpClient.sendPluginMessage("plugins.WoT.WoT", createParameters("Message", "AddIdentity", "RequestURI", requestUri)); + if (!replies.get("Message").equals("IdentityAdded")) { + throw new FcpException("WebOfTrust Plugin did not reply with “IdentityAdded” message!"); + } + String identifier = replies.get("ID"); + String nickname = replies.get("Nickname"); + return new Identity(identifier, nickname, requestUri); + } + + /** + * Returns identities by the given score. + * + * @param ownIdentity + * The own identity + * @param context + * The context to get the identities for + * @param positive + * {@code null} to return neutrally trusted identities, {@code + * true} to return positively trusted identities, {@code false} + * for negatively trusted identities + * @return The trusted identites + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public Set getIdentitesByScore(OwnIdentity ownIdentity, String context, Boolean positive) throws IOException, FcpException { + Map replies = fcpClient.sendPluginMessage("plugins.WoT.WoT", createParameters("Message", "GetIdentitesByScore", "TreeOwner", ownIdentity.getIdentifier(), "Context", context, "Selection", ((positive == null) ? "0" : (positive ? "+" : "-")))); + if (!replies.get("Message").equals("Identities")) { + throw new FcpException("WebOfTrust Plugin did not reply with “Identities” message!"); + } + Set identities = new HashSet(); + for (int identityIndex = 1; replies.containsKey("Identity" + identityIndex); identityIndex++) { + String identifier = replies.get("Identity" + identityIndex); + String nickname = replies.get("Nickname" + identityIndex); + String requestUri = replies.get("RequestURI" + identityIndex); + identities.add(new Identity(identifier, nickname, requestUri)); + } + return identities; + } + + /** + * Sets the trust given to the given identify by the given own identity. + * + * @param ownIdentity + * The identity that gives the trust + * @param identity + * The identity that receives the trust + * @param trust + * The trust value (ranging from {@code -100} to {@code 100} + * @param comment + * The comment for setting the trust + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public void setTrust(OwnIdentity ownIdentity, Identity identity, byte trust, String comment) throws IOException, FcpException { + Map replies = fcpClient.sendPluginMessage("plugins.WoT.WoT", createParameters("Message", "SetTrust", "Truster", ownIdentity.getIdentifier(), "Trustee", identity.getIdentifier(), "Value", String.valueOf(trust), "Comment", comment)); + if (!replies.get("Message").equals("TrustSet")) { + throw new FcpException("WebOfTrust Plugin did not reply with “TrustSet” message!"); + } + } + // // PRIVATE METHODS //