added nodeinfo
This commit is contained in:
parent
61b272625b
commit
554eb0b972
@ -1,4 +1,6 @@
|
|||||||
APP_NAME=Laravel
|
APP_NAME=Laravel
|
||||||
|
APP_VERSION=0.1
|
||||||
|
APP_DESCRIPTION=OurSpace is a MySpace clone with ActivityPub support.
|
||||||
APP_ENV=local
|
APP_ENV=local
|
||||||
APP_KEY=
|
APP_KEY=
|
||||||
APP_DEBUG=true
|
APP_DEBUG=true
|
||||||
|
2
TODO.md
2
TODO.md
@ -20,7 +20,7 @@
|
|||||||
- [ ] Local mentions
|
- [ ] Local mentions
|
||||||
- [ ] Private post
|
- [ ] Private post
|
||||||
- [ ] Pinned Posts
|
- [ ] Pinned Posts
|
||||||
- [ ] Nodeinfo
|
- [x] Nodeinfo
|
||||||
- [ ] Notifications
|
- [ ] Notifications
|
||||||
|
|
||||||
- [-] Social features
|
- [-] 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\APActorController;
|
||||||
use App\Http\Controllers\AP\APGeneralController;
|
use App\Http\Controllers\AP\APGeneralController;
|
||||||
|
|
||||||
|
use App\Http\Controllers\AP\APOutboxController;
|
||||||
use App\Http\Controllers\AP\APInboxController;
|
use App\Http\Controllers\AP\APInboxController;
|
||||||
|
|
||||||
use App\Http\Controllers\AP\APInstanceInboxController;
|
use App\Http\Controllers\AP\APInstanceInboxController;
|
||||||
|
|
||||||
use App\Http\Controllers\AP\APOutboxController;
|
|
||||||
use App\Http\Controllers\AP\APWebfingerController;
|
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/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 () {
|
Route::prefix ("/ap/v1")->group (function () {
|
||||||
// users
|
// users
|
||||||
|
Loading…
x
Reference in New Issue
Block a user