mirror of https://github.com/pixelfed/pixelfed
commit
45abeb62e2
@ -1,33 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Status;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class StatusLabelService
|
||||
{
|
||||
const CACHE_KEY = 'pf:services:status_label:_v0:';
|
||||
|
||||
public static function get(Status $status)
|
||||
{
|
||||
if (config('instance.label.covid.enabled') == false || ! $status) {
|
||||
return [
|
||||
'covid' => false,
|
||||
];
|
||||
}
|
||||
|
||||
return Cache::remember(self::CACHE_KEY.$status->id, now()->addDays(7), function () use ($status) {
|
||||
if (! $status->caption) {
|
||||
return [
|
||||
'covid' => false,
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
'covid' => Str::of(strtolower($status->caption))->contains(['covid', 'corona', 'coronavirus', 'vaccine', 'vaxx', 'vaccination', 'plandemic']),
|
||||
];
|
||||
});
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
(()=>{"use strict";var e,r,o,a={},t={};function n(e){var r=t[e];if(void 0!==r)return r.exports;var o=t[e]={id:e,loaded:!1,exports:{}};return a[e].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.m=a,e=[],n.O=(r,o,a,t)=>{if(!o){var c=1/0;for(f=0;f<e.length;f++){for(var[o,a,t]=e[f],d=!0,s=0;s<o.length;s++)(!1&t||c>=t)&&Object.keys(n.O).every(e=>n.O[e](o[s]))?o.splice(s--,1):(d=!1,t<c&&(c=t));if(d){e.splice(f--,1);var i=a();void 0!==i&&(r=i)}}return r}t=t||0;for(var f=e.length;f>0&&e[f-1][2]>t;f--)e[f]=e[f-1];e[f]=[o,a,t]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var o in r)n.o(r,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((r,o)=>(n.f[o](e,r),r),[])),n.u=e=>"js/"+{529:"groups-page",1179:"daci.chunk",1240:"discover~myhashtags.chunk",1645:"profile~following.bundle",2156:"dms.chunk",2822:"group.create",2966:"discover~hashtag.bundle",3688:"discover~serverfeed.chunk",4951:"home.chunk",6250:"discover~settings.chunk",6438:"groups-page-media",6535:"discover.chunk",6740:"discover~memories.chunk",6791:"groups-page-members",7206:"groups-page-topics",7342:"groups-post",7399:"dms~message.chunk",7413:"error404.bundle",7521:"discover~findfriends.chunk",7744:"notifications.chunk",8087:"profile.chunk",8119:"i18n.bundle",8257:"groups-page-about",8408:"post.chunk",8977:"profile~followers.bundle",9124:"compose.chunk",9231:"groups-profile",9919:"changelog.bundle"}[e]+"."+{529:"2826b7d8bc08bf22",1179:"4e7adc83fb3e6c26",1240:"b1170e28d46614b1",1645:"30a324bbbe437db7",2156:"13a1bf15db918fb7",2822:"82affc4a7b5983b0",2966:"43d7fefd51744728",3688:"b46e1b4180b850db",4951:"478a11db7f8bcc5b",6250:"a99d878b83352bea",6438:"f3be2d8b0ca59cdf",6535:"0a3c5b36cedbad42",6740:"3da68f4ee0598a4c",6791:"a2d12bc765ad0f38",7206:"7bee36f3edc0de92",7342:"aca9f85bd8b36f70",7399:"ca55c5d89171edc4",7413:"c408e3fce0f80bcb",7521:"271194c07b172af4",7744:"d2559e00a1a30220",8087:"0edce32375cf0e7a",8119:"9ffc0aacc1ff49e5",8257:"dfb2744b2a28d4c5",8408:"d974a3aee1468f5f",8977:"8381cac06885ce77",9124:"2c9141ff4969e238",9231:"924132e02f73d082",9919:"f97c6c2fdd203b90"}[e]+".js",n.miniCssF=e=>({2305:"css/portfolio",2540:"css/landing",3364:"css/admin",4370:"css/profile",6952:"css/appdark",8252:"css/app",8759:"css/spa"}[e]+".css"),n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},o="pixelfed:",n.l=(e,a,t,c)=>{if(r[e])r[e].push(a);else{var d,s;if(void 0!==t)for(var i=document.getElementsByTagName("script"),f=0;f<i.length;f++){var l=i[f];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==o+t){d=l;break}}d||(s=!0,(d=document.createElement("script")).charset="utf-8",n.nc&&d.setAttribute("nonce",n.nc),d.setAttribute("data-webpack",o+t),d.src=e),r[e]=[a];var u=(o,a)=>{d.onerror=d.onload=null,clearTimeout(b);var t=r[e];if(delete r[e],d.parentNode&&d.parentNode.removeChild(d),t&&t.forEach(e=>e(a)),o)return o(a)},b=setTimeout(u.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=u.bind(null,d.onerror),d.onload=u.bind(null,d.onload),s&&document.head.appendChild(d)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="/",(()=>{var e={461:0,6952:0,8252:0,2305:0,3364:0,2540:0,4370:0,8759:0};n.f.j=(r,o)=>{var a=n.o(e,r)?e[r]:void 0;if(0!==a)if(a)o.push(a[2]);else if(/^((69|82)52|2305|2540|3364|4370|461|8759)$/.test(r))e[r]=0;else{var t=new Promise((o,t)=>a=e[r]=[o,t]);o.push(a[2]=t);var c=n.p+n.u(r),d=new Error;n.l(c,o=>{if(n.o(e,r)&&(0!==(a=e[r])&&(e[r]=void 0),a)){var t=o&&("load"===o.type?"missing":o.type),c=o&&o.target&&o.target.src;d.message="Loading chunk "+r+" failed.\n("+t+": "+c+")",d.name="ChunkLoadError",d.type=t,d.request=c,a[1](d)}},"chunk-"+r,r)}},n.O.j=r=>0===e[r];var r=(r,o)=>{var a,t,[c,d,s]=o,i=0;if(c.some(r=>0!==e[r])){for(a in d)n.o(d,a)&&(n.m[a]=d[a]);if(s)var f=s(n)}for(r&&r(o);i<c.length;i++)t=c[i],n.o(e,t)&&e[t]&&e[t][0](),e[t]=0;return n.O(f)},o=self.webpackChunkpixelfed=self.webpackChunkpixelfed||[];o.forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o))})(),n.nc=void 0})();
|
||||
(()=>{"use strict";var e,r,o,a={},t={};function c(e){var r=t[e];if(void 0!==r)return r.exports;var o=t[e]={id:e,loaded:!1,exports:{}};return a[e].call(o.exports,o,o.exports,c),o.loaded=!0,o.exports}c.m=a,e=[],c.O=(r,o,a,t)=>{if(!o){var n=1/0;for(f=0;f<e.length;f++){for(var[o,a,t]=e[f],d=!0,s=0;s<o.length;s++)(!1&t||n>=t)&&Object.keys(c.O).every(e=>c.O[e](o[s]))?o.splice(s--,1):(d=!1,t<n&&(n=t));if(d){e.splice(f--,1);var i=a();void 0!==i&&(r=i)}}return r}t=t||0;for(var f=e.length;f>0&&e[f-1][2]>t;f--)e[f]=e[f-1];e[f]=[o,a,t]},c.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return c.d(r,{a:r}),r},c.d=(e,r)=>{for(var o in r)c.o(r,o)&&!c.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce((r,o)=>(c.f[o](e,r),r),[])),c.u=e=>"js/"+{529:"groups-page",1179:"daci.chunk",1240:"discover~myhashtags.chunk",1645:"profile~following.bundle",2156:"dms.chunk",2822:"group.create",2966:"discover~hashtag.bundle",3688:"discover~serverfeed.chunk",4951:"home.chunk",6250:"discover~settings.chunk",6438:"groups-page-media",6535:"discover.chunk",6740:"discover~memories.chunk",6791:"groups-page-members",7206:"groups-page-topics",7342:"groups-post",7399:"dms~message.chunk",7413:"error404.bundle",7521:"discover~findfriends.chunk",7744:"notifications.chunk",8087:"profile.chunk",8119:"i18n.bundle",8257:"groups-page-about",8408:"post.chunk",8977:"profile~followers.bundle",9124:"compose.chunk",9231:"groups-profile",9919:"changelog.bundle"}[e]+"."+{529:"2826b7d8bc08bf22",1179:"4e7adc83fb3e6c26",1240:"b1170e28d46614b1",1645:"30a324bbbe437db7",2156:"13a1bf15db918fb7",2822:"82affc4a7b5983b0",2966:"43d7fefd51744728",3688:"b46e1b4180b850db",4951:"478a11db7f8bcc5b",6250:"a99d878b83352bea",6438:"f3be2d8b0ca59cdf",6535:"0a3c5b36cedbad42",6740:"3da68f4ee0598a4c",6791:"a2d12bc765ad0f38",7206:"7bee36f3edc0de92",7342:"aca9f85bd8b36f70",7399:"ca55c5d89171edc4",7413:"c408e3fce0f80bcb",7521:"271194c07b172af4",7744:"d2559e00a1a30220",8087:"0edce32375cf0e7a",8119:"9ffc0aacc1ff49e5",8257:"dfb2744b2a28d4c5",8408:"57be46e07bc9aee6",8977:"8381cac06885ce77",9124:"2c9141ff4969e238",9231:"924132e02f73d082",9919:"f97c6c2fdd203b90"}[e]+".js",c.miniCssF=e=>({2305:"css/portfolio",2540:"css/landing",3364:"css/admin",4370:"css/profile",6952:"css/appdark",8252:"css/app",8759:"css/spa"}[e]+".css"),c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},o="pixelfed:",c.l=(e,a,t,n)=>{if(r[e])r[e].push(a);else{var d,s;if(void 0!==t)for(var i=document.getElementsByTagName("script"),f=0;f<i.length;f++){var l=i[f];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==o+t){d=l;break}}d||(s=!0,(d=document.createElement("script")).charset="utf-8",c.nc&&d.setAttribute("nonce",c.nc),d.setAttribute("data-webpack",o+t),d.src=e),r[e]=[a];var u=(o,a)=>{d.onerror=d.onload=null,clearTimeout(b);var t=r[e];if(delete r[e],d.parentNode&&d.parentNode.removeChild(d),t&&t.forEach(e=>e(a)),o)return o(a)},b=setTimeout(u.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=u.bind(null,d.onerror),d.onload=u.bind(null,d.onload),s&&document.head.appendChild(d)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),c.p="/",(()=>{var e={461:0,6952:0,8252:0,2305:0,3364:0,2540:0,4370:0,8759:0};c.f.j=(r,o)=>{var a=c.o(e,r)?e[r]:void 0;if(0!==a)if(a)o.push(a[2]);else if(/^((69|82)52|2305|2540|3364|4370|461|8759)$/.test(r))e[r]=0;else{var t=new Promise((o,t)=>a=e[r]=[o,t]);o.push(a[2]=t);var n=c.p+c.u(r),d=new Error;c.l(n,o=>{if(c.o(e,r)&&(0!==(a=e[r])&&(e[r]=void 0),a)){var t=o&&("load"===o.type?"missing":o.type),n=o&&o.target&&o.target.src;d.message="Loading chunk "+r+" failed.\n("+t+": "+n+")",d.name="ChunkLoadError",d.type=t,d.request=n,a[1](d)}},"chunk-"+r,r)}},c.O.j=r=>0===e[r];var r=(r,o)=>{var a,t,[n,d,s]=o,i=0;if(n.some(r=>0!==e[r])){for(a in d)c.o(d,a)&&(c.m[a]=d[a]);if(s)var f=s(c)}for(r&&r(o);i<n.length;i++)t=n[i],c.o(e,t)&&e[t]&&e[t][0](),e[t]=0;return c.O(f)},o=self.webpackChunkpixelfed=self.webpackChunkpixelfed||[];o.forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o))})(),c.nc=void 0})();
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,130 +0,0 @@
|
||||
<template>
|
||||
<div class="w-100 h-100">
|
||||
<div v-if="loading" style="min-height: 400px;" class="d-flex justify-content-center align-items-center">
|
||||
<img src="/img/pixelfed-icon-grey.svg" class="">
|
||||
</div>
|
||||
<div v-else>
|
||||
<div class="mb-4">
|
||||
<p class="text-center">
|
||||
<!-- <a :class="[tab == 'popular'? 'btn font-weight-bold py-0 btn-success' : 'btn font-weight-bold py-0 btn-outline-success']" href="#" @click.prevent="setTab('popular')">Popular</a> -->
|
||||
<a :class="[tab == 'new'? 'btn font-weight-bold py-0 btn-success' : 'btn font-weight-bold py-0 btn-outline-success']" href="#" @click.prevent="setTab('new')">New</a>
|
||||
<!-- <a :class="[tab == 'random'? 'btn font-weight-bold py-0 btn-success' : 'btn font-weight-bold py-0 btn-outline-success']" href="#" @click.prevent="setTab('random')">Random</a> -->
|
||||
<a :class="[tab == 'about'? 'btn font-weight-bold py-0 btn-success' : 'btn font-weight-bold py-0 btn-outline-success']" href="#" @click.prevent="setTab('about')">About</a>
|
||||
</p>
|
||||
</div>
|
||||
<div v-if="tab != 'about'" class="row loops-container">
|
||||
<div class="col-12 col-md-4 mb-3" v-for="(loop, index) in loops">
|
||||
<div class="card border border-success">
|
||||
<div class="embed-responsive embed-responsive-1by1">
|
||||
<video class="embed-responsive-item" :src="videoSrc(loop)" preload="none" width="100%" height="100%" loop @click="toggleVideo(loop, $event)" :poster="posterSrc(loop)"></video>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p class="username font-weight-bolder lead d-flex justify-content-between">
|
||||
<a :href="loop.account.url" :title="loop.account.acct">{{truncate(loop.account.acct)}}</a>
|
||||
<a :href="loop.url">{{timestamp(loop)}}</a></p>
|
||||
<p class="small text-muted text-truncate" v-html="getTitle(loop)"></p>
|
||||
<div class="small text-muted d-flex justify-content-between mb-0">
|
||||
<span>{{loop.favourites_count}} Likes</span>
|
||||
<span>{{loop.reblogs_count}} Shares</span>
|
||||
<span>{{loop.reply_count}} Comments</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<p class="lead text-center mb-0">Loops are an exciting new way to explore short videos on Pixelfed.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style type="text/css">
|
||||
.loops-container .card {
|
||||
box-shadow: none;
|
||||
}
|
||||
.loops-container .card .card-img-top{
|
||||
border-radius: 0;
|
||||
}
|
||||
.loops-container a {
|
||||
color: #343a40;
|
||||
}
|
||||
a.hashtag,
|
||||
.loops-container .card-body a:hover {
|
||||
color: #28a745 !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script type="text/javascript">
|
||||
Object.defineProperty(HTMLMediaElement.prototype, 'playing', {
|
||||
get: function(){
|
||||
return !!(this.currentTime > 0 && !this.paused && !this.ended && this.readyState > 2);
|
||||
}
|
||||
})
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loading: true,
|
||||
version: 1,
|
||||
loops: [],
|
||||
tab: 'new'
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
axios.get('/api/v2/loops')
|
||||
.then(res => {
|
||||
this.loops = res.data;
|
||||
this.loading = false;
|
||||
})
|
||||
},
|
||||
|
||||
methods: {
|
||||
videoSrc(loop) {
|
||||
return loop.media_attachments[0].url;
|
||||
},
|
||||
posterSrc(loop) {
|
||||
return loop.media_attachments[0].preview_url;
|
||||
},
|
||||
setTab(tab) {
|
||||
this.tab = tab;
|
||||
},
|
||||
toggleVideo(loop, $event) {
|
||||
let el = $event.target;
|
||||
$('video').each(function() {
|
||||
if(el.src != $(this)[0].src) {
|
||||
$(this)[0].pause();
|
||||
}
|
||||
});
|
||||
if(!el.playing) {
|
||||
el.play();
|
||||
//this.incrementLoop(loop);
|
||||
} else {
|
||||
el.pause();
|
||||
}
|
||||
},
|
||||
incrementLoop(loop) {
|
||||
// axios.post('/api/v2/loops/watch', {
|
||||
// id: loop.id
|
||||
// }).then(res => {
|
||||
// console.log(res.data);
|
||||
// });
|
||||
},
|
||||
timestamp(loop) {
|
||||
let ts = new Date(loop.created_at);
|
||||
return ts.toLocaleDateString();
|
||||
},
|
||||
getTitle(loop) {
|
||||
let content = loop.content ? loop.content : 'Untitled';
|
||||
return content.trim();
|
||||
},
|
||||
truncate(str, len = 15) {
|
||||
return _.truncate(str, {length: len});
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@ -1,4 +0,0 @@
|
||||
Vue.component(
|
||||
'loops-component',
|
||||
require('./components/LoopComponent.vue').default
|
||||
);
|
||||
@ -1,43 +0,0 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-primary">
|
||||
<p class="text-center text-white mb-0 py-3 font-weight-bold">
|
||||
<i class="fas fa-exclamation-triangle fa-lg mr-2"></i> This feature has been deprecated and will be removed in a future version.
|
||||
</p>
|
||||
</div>
|
||||
<div class="profile-header">
|
||||
<div class="container pt-5">
|
||||
<div class="profile-details text-center">
|
||||
<div class="username-bar text-dark">
|
||||
<p class="display-4 font-weight-bold mb-0"><span class="text-success">Loops</span> <sup class="lead">BETA</sup></p>
|
||||
<p class="lead font-weight-lighter">Short looping videos</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="loop-page container mt-5">
|
||||
<section>
|
||||
<loops-component></loops-component>
|
||||
</section>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('styles')
|
||||
<style type="text/css">
|
||||
@media (min-width: 1200px) {
|
||||
.loop-page.container {
|
||||
max-width: 1035px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
@push('scripts')
|
||||
<script type="text/javascript" src="{{ mix('js/loops.js') }}"></script>
|
||||
<script type="text/javascript" src="{{ mix('js/compose.js') }}"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
new Vue({el: '#content'});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
Loading…
Reference in New Issue