mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-12-26 01:36:43 +00:00
commit
e5a164f065
8 changed files with 145 additions and 10 deletions
|
@ -23,6 +23,7 @@
|
||||||
- Add Blurhash encoder ([fad102bf](https://github.com/pixelfed/pixelfed/commit/fad102bf))
|
- Add Blurhash encoder ([fad102bf](https://github.com/pixelfed/pixelfed/commit/fad102bf))
|
||||||
- Add autospam feature ([b892bcf0](https://github.com/pixelfed/pixelfed/commit/b892bcf0))
|
- Add autospam feature ([b892bcf0](https://github.com/pixelfed/pixelfed/commit/b892bcf0))
|
||||||
- Add hCaptcha ([082c1ccb](https://github.com/pixelfed/pixelfed/commit/082c1ccb))
|
- Add hCaptcha ([082c1ccb](https://github.com/pixelfed/pixelfed/commit/082c1ccb))
|
||||||
|
- Add StatusView model to store views for discover algorithm ([7a68ee94](https://github.com/pixelfed/pixelfed/commit/7a68ee94))
|
||||||
|
|
||||||
### Updated
|
### Updated
|
||||||
- Updated PostComponent, fix remote urls ([42716ccc](https://github.com/pixelfed/pixelfed/commit/42716ccc))
|
- Updated PostComponent, fix remote urls ([42716ccc](https://github.com/pixelfed/pixelfed/commit/42716ccc))
|
||||||
|
|
|
@ -43,6 +43,15 @@ class LikeController extends Controller
|
||||||
if($like->wasRecentlyCreated == true) {
|
if($like->wasRecentlyCreated == true) {
|
||||||
$count++;
|
$count++;
|
||||||
$status->likes_count = $count;
|
$status->likes_count = $count;
|
||||||
|
$like->status_profile_id = $status->profile_id;
|
||||||
|
$like->is_comment = in_array($status->type, [
|
||||||
|
'photo',
|
||||||
|
'photo:album',
|
||||||
|
'video',
|
||||||
|
'video:album',
|
||||||
|
'photo:video:album'
|
||||||
|
]) == false;
|
||||||
|
$like->save();
|
||||||
$status->save();
|
$status->save();
|
||||||
LikePipeline::dispatch($like);
|
LikePipeline::dispatch($like);
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,20 +62,16 @@ class SiteController extends Controller
|
||||||
|
|
||||||
public function about()
|
public function about()
|
||||||
{
|
{
|
||||||
return Cache::remember('site:about', now()->addHours(12), function() {
|
|
||||||
app()->setLocale('en');
|
|
||||||
$page = Page::whereSlug('/site/about')->whereActive(true)->first();
|
$page = Page::whereSlug('/site/about')->whereActive(true)->first();
|
||||||
$stats = [
|
$stats = Cache::remember('site:about:stats-v1', now()->addHours(12), function() {
|
||||||
'posts' => Status::whereLocal(true)->count(),
|
return [
|
||||||
|
'posts' => Status::count(),
|
||||||
'users' => User::whereNull('status')->count(),
|
'users' => User::whereNull('status')->count(),
|
||||||
'admin' => User::whereIsAdmin(true)->first()
|
'admin' => User::whereIsAdmin(true)->first()
|
||||||
];
|
];
|
||||||
if($page) {
|
|
||||||
return View::make('site.about-custom')->with(compact('page', 'stats'))->render();
|
|
||||||
} else {
|
|
||||||
return View::make('site.about')->with(compact('stats'))->render();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
$path = $page ? 'site.about-custom' : 'site.about';
|
||||||
|
return view($path, compact('page', 'stats'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function language()
|
public function language()
|
||||||
|
|
|
@ -10,6 +10,7 @@ use App\AccountInterstitial;
|
||||||
use App\Media;
|
use App\Media;
|
||||||
use App\Profile;
|
use App\Profile;
|
||||||
use App\Status;
|
use App\Status;
|
||||||
|
use App\StatusView;
|
||||||
use App\Transformer\ActivityPub\StatusTransformer;
|
use App\Transformer\ActivityPub\StatusTransformer;
|
||||||
use App\Transformer\ActivityPub\Verb\Note;
|
use App\Transformer\ActivityPub\Verb\Note;
|
||||||
use App\User;
|
use App\User;
|
||||||
|
@ -59,6 +60,14 @@ class StatusController extends Controller
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($request->user() && $request->user()->profile_id != $status->profile_id) {
|
||||||
|
StatusView::firstOrCreate([
|
||||||
|
'status_id' => $status->id,
|
||||||
|
'status_profile_id' => $status->profile_id,
|
||||||
|
'profile_id' => $request->user()->profile_id
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
if ($request->wantsJson() && config('federation.activitypub.enabled')) {
|
if ($request->wantsJson() && config('federation.activitypub.enabled')) {
|
||||||
return $this->showActivityPub($request, $status);
|
return $this->showActivityPub($request, $status);
|
||||||
}
|
}
|
||||||
|
|
17
app/StatusView.php
Normal file
17
app/StatusView.php
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class StatusView extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'status_id',
|
||||||
|
'status_profile_id',
|
||||||
|
'profile_id'
|
||||||
|
];
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class CreateStatusViewsTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('status_views', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->bigInteger('status_id')->unsigned()->nullable()->index();
|
||||||
|
$table->bigInteger('status_profile_id')->unsigned()->nullable()->index();
|
||||||
|
$table->bigInteger('profile_id')->unsigned()->nullable()->index();
|
||||||
|
$table->unique(['status_id', 'profile_id']);
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('status_views');
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class AddStatusProfileIdToLikesTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::table('likes', function (Blueprint $table) {
|
||||||
|
$table->bigInteger('status_profile_id')->nullable()->unsigned()->index()->after('status_id');
|
||||||
|
$table->boolean('is_comment')->nullable()->index()->after('status_profile_id');
|
||||||
|
$table->dropColumn('flagged');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::table('likes', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('status_profile_id');
|
||||||
|
$table->dropColumn('is_comment');
|
||||||
|
$table->boolean('flagged')->default(false);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class AddTextColumnToMediaTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::table('media', function (Blueprint $table) {
|
||||||
|
$table->text('cdn_url')->nullable()->change();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::table('media', function (Blueprint $table) {
|
||||||
|
$table->string('cdn_url')->nullable()->change();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue