added nodeinfo
This commit is contained in:
parent
61b272625b
commit
554eb0b972
@ -1,4 +1,6 @@
|
||||
APP_NAME=Laravel
|
||||
APP_VERSION=0.1
|
||||
APP_DESCRIPTION=OurSpace is a MySpace clone with ActivityPub support.
|
||||
APP_ENV=local
|
||||
APP_KEY=
|
||||
APP_DEBUG=true
|
||||
|
2
TODO.md
2
TODO.md
@ -20,7 +20,7 @@
|
||||
- [ ] Local mentions
|
||||
- [ ] Private post
|
||||
- [ ] Pinned Posts
|
||||
- [ ] Nodeinfo
|
||||
- [x] Nodeinfo
|
||||
- [ ] Notifications
|
||||
|
||||
- [-] Social features
|
||||
|
66
app/Http/Controllers/AP/APNodeInfoController.php
Normal file
66
app/Http/Controllers/AP/APNodeInfoController.php
Normal file
@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\AP;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Models\Note;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class APNodeInfoController extends Controller
|
||||
{
|
||||
public function wk_nodeinfo ()
|
||||
{
|
||||
$response = [
|
||||
"links" => [
|
||||
"rel" => "self",
|
||||
"type" => "http://nodeinfo.diaspora.software/ns/schema/2.1",
|
||||
"href" => env ("APP_URL") . "/.well-known/nodeinfo/2.1"
|
||||
]
|
||||
];
|
||||
|
||||
return response ()->json ($response);
|
||||
}
|
||||
|
||||
public function nodeinfo ()
|
||||
{
|
||||
$total_users = User::count ();
|
||||
$active_month_users = User::where ("last_seen_at", ">=", now ()->subMonth ())->count ();
|
||||
$active_half_year_users = User::where ("last_seen_at", ">=", now ()->subMonths (6))->count ();
|
||||
$local_posts = Note::where ("private_id", "!=", null)->count ();
|
||||
|
||||
$response = [
|
||||
"version" => "2.1",
|
||||
"software" => [
|
||||
"name" => "OurSpace",
|
||||
"version" => env ("APP_VERSION"),
|
||||
"repository" => "https://github.com/0xd011f4ce/OurSpace"
|
||||
],
|
||||
"protocols" => [
|
||||
"activitypub"
|
||||
],
|
||||
"services" => [
|
||||
"inbound",
|
||||
"outbound"
|
||||
],
|
||||
"openRegistrations" => true,
|
||||
"usage" => [
|
||||
"users" => [
|
||||
"total" => $total_users,
|
||||
"activeMonth" => $active_month_users,
|
||||
"activeHalfYear" => $active_half_year_users
|
||||
],
|
||||
"localPosts" => $local_posts
|
||||
],
|
||||
"metadata" => [
|
||||
"nodeName" => env ("APP_NAME"),
|
||||
"nodeDescription" => env ("APP_DESCRIPTION"),
|
||||
"spdx" => "GPL-3.0",
|
||||
]
|
||||
];
|
||||
|
||||
return response ()->json ($response);
|
||||
}
|
||||
}
|
@ -4,14 +4,18 @@ use Illuminate\Support\Facades\Route;
|
||||
|
||||
use App\Http\Controllers\AP\APActorController;
|
||||
use App\Http\Controllers\AP\APGeneralController;
|
||||
|
||||
use App\Http\Controllers\AP\APOutboxController;
|
||||
use App\Http\Controllers\AP\APInboxController;
|
||||
|
||||
use App\Http\Controllers\AP\APInstanceInboxController;
|
||||
|
||||
use App\Http\Controllers\AP\APOutboxController;
|
||||
use App\Http\Controllers\AP\APWebfingerController;
|
||||
use App\Http\Controllers\AP\APNodeInfoController;
|
||||
|
||||
Route::get ("/.well-known/webfinger", [ APWebfingerController::class, "webfinger" ])->name ("ap.webfinger");
|
||||
Route::get ("/.well-known/nodeinfo", [ APNodeInfoController::class, "wk_nodeinfo" ])->name ("ap.nodeinfo");
|
||||
Route::get ("/.well-known/nodeinfo/2.1", [ APNodeInfoController::class, "nodeinfo" ])->name ("ap.nodeinfo");
|
||||
|
||||
Route::prefix ("/ap/v1")->group (function () {
|
||||
// users
|
||||
|
Loading…
x
Reference in New Issue
Block a user