Skip to content
David Roden edited this page Nov 30, 2017 · 4 revisions

A plugin for Freenet that implements a social network (modeled after Facebook) on top of Freenet.

Sone requires the Web Of Trust plugin to discover other users, so make sure it is loaded before running Sone. The current version of Sone (0.9.8) requires at least version 1475 of Freenet!

FCP Interface

Since version 0.6.5 Sone features an FCP interface that can be used by arbitrary applications to access Sone. As per usual, FCP requests to a plugin have to be sent using the FCPPluginMessage message, using a PluginName of net.pterodactylus.sone.main.SonePlugin.

All Sone commands require an identifier (using the Identifier field name) that will be sent back in replies to make it possible to associate replies with requests. If a message contains multiple elements of the same sort (e.g. a list of posts), the fields contain a index (subsequently referred to as “n”) that is sequential and starts with 0.

Version

This command does not require any additional parameters.

It returns a message with the name “Version” that contains the following fields:

Version

The version of the Sone plugin, such as “0.6.5”.

ProtocolVersion

The version of the FCP protocol. This version number is used to denote changes in the FCP protocol that require changes in clients using Sone’s FCP interface.

GetLocalSones

Returns all local Sones.

This command does not require any additional parameters.

It returns a message with the name “ListLocalSones” that contains the following fields:

LocalSones.Count

The number of local Sones.

LocalSones.*n*.ID

The ID of the local Sone

LocalSones.*n*.Name

The name of the local Sone.

LocalSones.*n*.NiceName

The formatted name of the local Sone.

LocalSones.*n*.Time

The time (in milliseconds since Jan 1, 1970 UTC) the Sone was last inserted.

GetSones

Returns all known Sones. The Sones are sorted by their formatted name.

This command recognizes the following parameters:

StartSone (optional)

The index of the first Sone to return (starting at 0). Default is 0.

MaxSones (optional)

The number of Sones to return. Default is -1, meaning “all.”

It returns a message with the name “Sones” that contains the following fields:

Count

The number of Sones being returned.

*n*.ID

The ID of the Sone

*n*.Name

The name of the Sone

*n*.NiceName

The formatted name of the Sone

*n*.Time

The time (in milliseconds since Jan 1, 1970 UTC) the Sone was last inserted.

GetSone

This command returns detailed information about a Sone.

It recognizes the following parameters:

Sone

The ID of the Sone to return information about.

LocalSone (optional)

The ID of a local Sone, used to include Sone-specific information.

It returns a message with the name “Sone” containing the following fields:

Name

The name of the Sone.

NiceName

The formatted name of the Sone.

LastUpdated

The time (in milliseconds since Jan 1, 1970 UTC) the Sone was last updated.

Followed (only if LocalSone was given)

true if the given local Sone is following this Sone, false otherwise.

Field.Count

The number of profile fields.

Field.*n*.Name

The name of the profile field

Field.*n*.Value

The value of the profile field

GetPostFeed

This command returns the post of a local Sone, all Sones it follows, and all posts that are directed at the local Sone, in other words, all posts of Sone’s index page. The posts are sorted descending by time (i.e. most recent first) and contain all replies (which are sorted by time).

It recognizes the following parameters:

Sone

The ID of the local Sone to get the post feed for.

StartPost (optional)

The number of the first post to retrieve. Default is 0.

MaxPosts (optional)

The number of posts to retrieve. Default is -1, meaning “all.”

It returns a message with the name PostFeed containing the following fields:

Posts.Count

The number of returned posts.

Posts.*n*.ID

The ID of the post.

Posts.*n*.Sone

The ID of the Sone that wrote the post.

Posts.*n*.Recipient (optional)

The ID of the Sone this post is directed at.

Posts.*n*.Time

The time (in milliseconds since Jan 1, 1970 UTC) this post was created.

Posts.*n*.Text

The text of the post.

Posts.*n*.Likes.Count

The number of likes this post has.

Posts.*n*.Likes.*n*.ID

The ID of a Sone that liked this post.

Posts.*n*.Replies.Count

The number of replies this post has.

Posts.*n*.Replies.*n*.ID

The ID of the reply.

Posts.*n*.Replies.*n*.Sone

The ID of the Sone that wrote the reply.

Posts.*n*.Replies.*n*.Time

The time (in milliseconds since Jan 1, 1970 UTC) the reply was written.

Posts.*n*.Replies.*n*.Text

The text of the reply.

Freenet Links

Sone Homepage

Contains pre-compiled binaries

http://127.0.0.1:8888/USK@nwa8lHa271k2QvJ8aa0Ov7IHAV-DFOCFgmDt3X6BpCI,DuQSUZiI~agF8c-6tjsFFGuZ8eICrzWCILB60nT8KKo,AQACAAE/sone/77/

External Links

Source code

Bug tracker

Clone this wiki locally