mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-11-29 09:43:16 +00:00
commit
48dd65144d
21 changed files with 50 additions and 2310 deletions
|
@ -31,6 +31,9 @@
|
|||
- Updated NetworkTimeline, fix remote comment urls. ([308acc91](https://github.com/pixelfed/pixelfed/commit/308acc91))
|
||||
- Updated Timeline component, abstracted reusable partials. ([858f3f9e](https://github.com/pixelfed/pixelfed/commit/858f3f9e))
|
||||
- Updated Timeline, fix suggested posts. ([3ba5c88c](https://github.com/pixelfed/pixelfed/commit/3ba5c88c))
|
||||
- Updated Timeline, disable new post update checker and hide reaction bar on network timeline. ([1e3d3a69](https://github.com/pixelfed/pixelfed/commit/1e3d3a69))
|
||||
- Updated PublicApiController, improve network timeline perf. ([e5f683fd](https://github.com/pixelfed/pixelfed/commit/e5f683fd))
|
||||
- Updated Network Timeline, use existing Timeline component. ([0deaafc0](https://github.com/pixelfed/pixelfed/commit/0deaafc0))
|
||||
- ([](https://github.com/pixelfed/pixelfed/commit/))
|
||||
|
||||
## [v0.11.0 (2021-06-01)](https://github.com/pixelfed/pixelfed/compare/v0.10.10...v0.11.0)
|
||||
|
|
|
@ -15,7 +15,7 @@ use App\{
|
|||
StatusView,
|
||||
UserFilter
|
||||
};
|
||||
use Auth,Cache;
|
||||
use Auth, Cache;
|
||||
use Carbon\Carbon;
|
||||
use League\Fractal;
|
||||
use App\Transformer\Api\{
|
||||
|
@ -27,6 +27,8 @@ use App\Transformer\Api\{
|
|||
use App\Services\{
|
||||
AccountService,
|
||||
PublicTimelineService,
|
||||
StatusService,
|
||||
SnowflakeService,
|
||||
UserFilterService
|
||||
};
|
||||
use App\Jobs\StatusPipeline\NewStatusPipeline;
|
||||
|
@ -498,6 +500,7 @@ class PublicApiController extends Controller
|
|||
$max = $request->input('max_id');
|
||||
$limit = $request->input('limit') ?? 3;
|
||||
$user = $request->user();
|
||||
$amin = SnowflakeService::byDate(now()->subDays(90));
|
||||
|
||||
$key = 'user:last_active_at:id:'.$user->id;
|
||||
$ttl = now()->addMinutes(5);
|
||||
|
@ -513,61 +516,41 @@ class PublicApiController extends Controller
|
|||
$timeline = Status::select(
|
||||
'id',
|
||||
'uri',
|
||||
'caption',
|
||||
'rendered',
|
||||
'profile_id',
|
||||
'type',
|
||||
'in_reply_to_id',
|
||||
'reblog_of_id',
|
||||
'is_nsfw',
|
||||
'scope',
|
||||
'local',
|
||||
'reply_count',
|
||||
'comments_disabled',
|
||||
'place_id',
|
||||
'likes_count',
|
||||
'reblogs_count',
|
||||
'created_at',
|
||||
'updated_at'
|
||||
)->where('id', $dir, $id)
|
||||
->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
|
||||
->whereNotNull('uri')
|
||||
->whereScope('public')
|
||||
->where('created_at', '>', now()->subMonths(3))
|
||||
->where('id', '>', $amin)
|
||||
->orderBy('created_at', 'desc')
|
||||
->limit($limit)
|
||||
->get();
|
||||
->get()
|
||||
->map(function($s) {
|
||||
return StatusService::get($s->id);
|
||||
});
|
||||
$res = $timeline->toArray();
|
||||
} else {
|
||||
$timeline = Status::select(
|
||||
'id',
|
||||
'uri',
|
||||
'caption',
|
||||
'rendered',
|
||||
'profile_id',
|
||||
'type',
|
||||
'in_reply_to_id',
|
||||
'reblog_of_id',
|
||||
'is_nsfw',
|
||||
'scope',
|
||||
'local',
|
||||
'reply_count',
|
||||
'comments_disabled',
|
||||
'created_at',
|
||||
'place_id',
|
||||
'likes_count',
|
||||
'reblogs_count',
|
||||
'updated_at'
|
||||
)->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
|
||||
->with('profile', 'hashtags', 'mentions')
|
||||
->whereNotNull('uri')
|
||||
->whereScope('public')
|
||||
->where('created_at', '>', now()->subMonths(3))
|
||||
->orderBy('created_at', 'desc')
|
||||
->simplePaginate($limit);
|
||||
$timeline = Status::select(
|
||||
'id',
|
||||
'uri',
|
||||
'type',
|
||||
'scope',
|
||||
'created_at',
|
||||
)->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
|
||||
->whereNotNull('uri')
|
||||
->whereScope('public')
|
||||
->where('id', '>', $amin)
|
||||
->orderBy('created_at', 'desc')
|
||||
->limit($limit)
|
||||
->get()
|
||||
->map(function($s) {
|
||||
return StatusService::get($s->id);
|
||||
});
|
||||
$res = $timeline->toArray();
|
||||
}
|
||||
|
||||
$fractal = new Fractal\Resource\Collection($timeline, new StatusTransformer());
|
||||
$res = $this->fractal->createData($fractal)->toArray();
|
||||
return response()->json($res);
|
||||
}
|
||||
|
||||
|
|
BIN
public/js/network-timeline.js
vendored
BIN
public/js/network-timeline.js
vendored
Binary file not shown.
BIN
public/js/profile-directory.js
vendored
BIN
public/js/profile-directory.js
vendored
Binary file not shown.
BIN
public/js/profile.js
vendored
BIN
public/js/profile.js
vendored
Binary file not shown.
BIN
public/js/quill.js
vendored
BIN
public/js/quill.js
vendored
Binary file not shown.
BIN
public/js/rempos.js
vendored
BIN
public/js/rempos.js
vendored
Binary file not shown.
BIN
public/js/rempro.js
vendored
BIN
public/js/rempro.js
vendored
Binary file not shown.
BIN
public/js/search.js
vendored
BIN
public/js/search.js
vendored
Binary file not shown.
BIN
public/js/status.js
vendored
BIN
public/js/status.js
vendored
Binary file not shown.
BIN
public/js/story-compose.js
vendored
BIN
public/js/story-compose.js
vendored
Binary file not shown.
BIN
public/js/theme-monokai.js
vendored
BIN
public/js/theme-monokai.js
vendored
Binary file not shown.
BIN
public/js/timeline.js
vendored
BIN
public/js/timeline.js
vendored
Binary file not shown.
BIN
public/js/vendor.js
vendored
BIN
public/js/vendor.js
vendored
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load diff
|
@ -105,6 +105,7 @@
|
|||
|
||||
<status-card
|
||||
:status="status"
|
||||
:reaction-bar="reactionBar"
|
||||
v-on:status-delete="deleteStatus"
|
||||
v-on:comment-focus="commentFocus"
|
||||
/>
|
||||
|
@ -707,7 +708,8 @@
|
|||
discover_feed: [],
|
||||
recentFeed: this.scope === 'home' ? true : false,
|
||||
recentFeedMin: null,
|
||||
recentFeedMax: null
|
||||
recentFeedMax: null,
|
||||
reactionBar: this.scope === 'network' ? false : true
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -831,7 +833,8 @@
|
|||
this.fetchHashtagPosts();
|
||||
}
|
||||
// this.fetchStories();
|
||||
this.rtw();
|
||||
// this.rtw();
|
||||
|
||||
setTimeout(function() {
|
||||
document.querySelectorAll('.timeline .card-body .comments .comment-body a').forEach(function(i, e) {
|
||||
i.href = App.util.format.rewriteLinks(i);
|
||||
|
@ -902,10 +905,10 @@
|
|||
if(self.ids.indexOf(d.id) == -1) {
|
||||
self.feed.push(d);
|
||||
self.ids.push(d.id);
|
||||
vids.push({
|
||||
sid: d.id,
|
||||
pid: d.account.id
|
||||
});
|
||||
// vids.push({
|
||||
// sid: d.id,
|
||||
// pid: d.account.id
|
||||
// });
|
||||
}
|
||||
});
|
||||
this.min_id = Math.max(...this.ids).toString();
|
||||
|
@ -913,9 +916,9 @@
|
|||
this.page += 1;
|
||||
$state.loaded();
|
||||
this.loading = false;
|
||||
axios.post('/api/status/view', {
|
||||
'_v': vids,
|
||||
});
|
||||
// axios.post('/api/status/view', {
|
||||
// '_v': vids,
|
||||
// });
|
||||
} else {
|
||||
$state.complete();
|
||||
}
|
||||
|
|
|
@ -74,7 +74,7 @@
|
|||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<div class="reactions my-1 pb-2">
|
||||
<div v-if="reactionBar" class="reactions my-1 pb-2">
|
||||
<h3 v-if="status.favourited" class="fas fa-heart text-danger pr-3 m-0 cursor-pointer" title="Like" v-on:click="likeStatus(status, $event);"></h3>
|
||||
<h3 v-else class="far fa-heart pr-3 m-0 like-btn text-dark cursor-pointer" title="Like" v-on:click="likeStatus(status, $event);"></h3>
|
||||
<h3 v-if="!status.comments_disabled" class="far fa-comment text-dark pr-3 m-0 cursor-pointer" title="Comment" v-on:click="commentFocus(status, $event)"></h3>
|
||||
|
@ -140,6 +140,11 @@
|
|||
recommended: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
|
||||
reactionBar: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
}
|
||||
},
|
||||
|
||||
|
|
49
resources/assets/js/network-timeline.js
vendored
49
resources/assets/js/network-timeline.js
vendored
|
@ -1,49 +0,0 @@
|
|||
Vue.component(
|
||||
'notification-card',
|
||||
require('./components/NotificationCard.vue').default
|
||||
);
|
||||
|
||||
Vue.component(
|
||||
'photo-presenter',
|
||||
require('./components/presenter/PhotoPresenter.vue').default
|
||||
);
|
||||
|
||||
Vue.component(
|
||||
'video-presenter',
|
||||
require('./components/presenter/VideoPresenter.vue').default
|
||||
);
|
||||
|
||||
Vue.component(
|
||||
'photo-album-presenter',
|
||||
require('./components/presenter/PhotoAlbumPresenter.vue').default
|
||||
);
|
||||
|
||||
Vue.component(
|
||||
'video-album-presenter',
|
||||
require('./components/presenter/VideoAlbumPresenter.vue').default
|
||||
);
|
||||
|
||||
Vue.component(
|
||||
'mixed-album-presenter',
|
||||
require('./components/presenter/MixedAlbumPresenter.vue').default
|
||||
);
|
||||
|
||||
Vue.component(
|
||||
'post-menu',
|
||||
require('./components/PostMenu.vue').default
|
||||
);
|
||||
|
||||
Vue.component(
|
||||
'network-timeline',
|
||||
require('./components/NetworkTimeline.vue').default
|
||||
);
|
||||
|
||||
Vue.component(
|
||||
'announcements-card',
|
||||
require('./components/AnnouncementsCard.vue').default
|
||||
);
|
||||
|
||||
Vue.component(
|
||||
'story-component',
|
||||
require('./components/StoryTimelineComponent.vue').default
|
||||
);
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
@section('content')
|
||||
|
||||
<network-timeline></network-timeline>
|
||||
<timeline scope="network"></timeline>
|
||||
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script type="text/javascript" src="{{ mix('js/network-timeline.js') }}"></script>
|
||||
<script type="text/javascript" src="{{ mix('js/timeline.js') }}"></script>
|
||||
<script type="text/javascript" src="{{ mix('js/compose.js') }}"></script>
|
||||
<script type="text/javascript">window.App.boot();</script>
|
||||
@endpush
|
||||
|
|
8
webpack.mix.js
vendored
8
webpack.mix.js
vendored
|
@ -27,18 +27,10 @@ mix.js('resources/assets/js/app.js', 'public/js')
|
|||
.js('resources/assets/js/collections.js', 'public/js')
|
||||
.js('resources/assets/js/profile-directory.js', 'public/js')
|
||||
.js('resources/assets/js/story-compose.js', 'public/js')
|
||||
// .js('resources/assets/js/embed.js', 'public')
|
||||
.js('resources/assets/js/direct.js', 'public/js')
|
||||
.js('resources/assets/js/admin.js', 'public/js')
|
||||
// .js('resources/assets/js/micro.js', 'public/js')
|
||||
.js('resources/assets/js/rempro.js', 'public/js')
|
||||
.js('resources/assets/js/rempos.js', 'public/js')
|
||||
//.js('resources/assets/js/timeline_next.js', 'public/js')
|
||||
// .js('resources/assets/js/memoryprofile.js', 'public/js')
|
||||
// .js('resources/assets/js/my2020.js', 'public/js')
|
||||
.js('resources/assets/js/network-timeline.js', 'public/js')
|
||||
// .js('resources/assets/js/drive.js', 'public/js')
|
||||
// .js('resources/assets/js/register.js', 'public/js')
|
||||
|
||||
.extract([
|
||||
'lodash',
|
||||
|
|
Loading…
Reference in a new issue