-
Notifications
You must be signed in to change notification settings - Fork 77
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* added basic WebFinger support * added basic NodeInfo support * fully functional "follow" activity * send new posts to your followers * receive comments from your followers
- Loading branch information
Showing
18 changed files
with
822 additions
and
260 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
<?php | ||
/** | ||
* ActivityPub Post Class | ||
* | ||
* @author Matthias Pfefferle | ||
*/ | ||
class Activitypub_Activity { | ||
private $context = array( 'https://www.w3.org/ns/activitystreams' ); | ||
private $published = ''; | ||
private $id = ''; | ||
private $type = 'Create'; | ||
private $actor = ''; | ||
private $to = array( 'https://www.w3.org/ns/activitystreams#Public' ); | ||
private $cc = array( 'https://www.w3.org/ns/activitystreams#Public' ); | ||
private $object = null; | ||
|
||
const TYPE_SIMPLE = 'simple'; | ||
const TYPE_FULL = 'full'; | ||
const TYPE_NONE = 'none'; | ||
|
||
public function __construct( $type = 'Create', $context = self::TYPE_SIMPLE ) { | ||
if ( 'none' === $context ) { | ||
$this->context = null; | ||
} elseif ( 'full' === $context ) { | ||
$this->context = get_activitypub_context(); | ||
} | ||
|
||
$this->type = ucfirst( $type ); | ||
$this->published = date( 'Y-m-d\TH:i:s\Z', strtotime( 'now' ) ); | ||
} | ||
|
||
public function __call( $method, $params ) { | ||
$var = strtolower( substr( $method, 4 ) ); | ||
|
||
if ( strncasecmp( $method, 'get', 3 ) === 0 ) { | ||
return $this->$var; | ||
} | ||
|
||
if ( strncasecmp( $method, 'set', 3 ) === 0 ) { | ||
$this->$var = $params[0]; | ||
} | ||
} | ||
|
||
public function from_post( $object ) { | ||
$this->object = $object; | ||
$this->published = $object['published']; | ||
$this->actor = $object['attributedTo']; | ||
$this->id = $object['id']; | ||
} | ||
|
||
public function from_comment( $object ) { | ||
|
||
} | ||
|
||
public function to_array() { | ||
$array = get_object_vars( $this ); | ||
|
||
if ( $this->context ) { | ||
$array = array( '@context' => $this->context ) + $array; | ||
} | ||
|
||
unset( $array['context'] ); | ||
|
||
return $array; | ||
} | ||
|
||
public function to_json() { | ||
return wp_json_encode( $this->to_array() ); | ||
} | ||
|
||
public function to_simple_array() { | ||
return array( | ||
'@context' => $this->context, | ||
'type' => $this->type, | ||
'actor' => $this->actor, | ||
'object' => $this->object, | ||
'to' => $this->to, | ||
); | ||
} | ||
|
||
public function to_simple_json() { | ||
return wp_json_encode( $this->to_simple_array() ); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
<?php | ||
/** | ||
* ActivityPub Admin Class | ||
*/ | ||
class Activitypub_Admin { | ||
/** | ||
* Add admin menu entry | ||
*/ | ||
public static function admin_menu() { | ||
$settings_page = add_options_page( | ||
'ActivityPub', | ||
'ActivityPub', | ||
'manage_options', | ||
'activitypub', | ||
array( 'Activitypub_Admin', 'settings_page' ) | ||
); | ||
|
||
add_action( 'load-' . $settings_page, array( 'Activitypub_Admin', 'add_help_tab' ) ); | ||
} | ||
|
||
/** | ||
* Load settings page | ||
*/ | ||
public static function settings_page() { | ||
load_template( dirname( __FILE__ ) . '/../templates/settings-page.php' ); | ||
} | ||
|
||
/** | ||
* Register PubSubHubbub settings | ||
*/ | ||
public static function register_settings() { | ||
register_setting( 'activitypub', 'activitypub_feed_use_excerpt' ); | ||
} | ||
|
||
public static function add_help_tab() { | ||
get_current_screen()->add_help_tab( | ||
array( | ||
'id' => 'overview', | ||
'title' => __( 'Overview', 'activitypub' ), | ||
'content' => | ||
'<p>' . __( 'ActivityPub is a decentralized social networking protocol based on the ActivityStreams 2.0 data format. ActivityPub is an official W3C recommended standard published by the W3C Social Web Working Group. It provides a client to server API for creating, updating and deleting content, as well as a federated server to server API for delivering notifications and subscribing to content.', 'activitypub' ) . '</p>', | ||
) | ||
); | ||
|
||
get_current_screen()->set_help_sidebar( | ||
'<p><strong>' . __( 'For more information:', 'activitypub' ) . '</strong></p>' . | ||
'<p>' . __( '<a href="https://activitypub.rocks/">Test Suite</a>', 'activitypub' ) . '</p>' . | ||
'<p>' . __( '<a href="https://www.w3.org/TR/activitypub/">W3C Spec</a>', 'activitypub' ) . '</p>' . | ||
'<p>' . __( '<a href="https://github.com/pfefferle/wordpress-activitypub/issues">Give us feedback</a>', 'activitypub' ) . '</p>' . | ||
'<hr />' . | ||
'<p>' . __( '<a href="https://notiz.blog/donate">Donate</a>', 'activitypub' ) . '</p>' | ||
); | ||
} | ||
} |
Oops, something went wrong.