wtf frontend
All checks were successful
fetch npm modules / f0ck the f0cker (push) Successful in 15s
All checks were successful
fetch npm modules / f0ck the f0cker (push) Successful in 15s
This commit is contained in:
parent
63bd1104b7
commit
fbf03bfbb4
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,9 @@
|
||||
@include(snippets/header)
|
||||
<div class="about">
|
||||
<div id="main">
|
||||
<div class="about">
|
||||
<div>
|
||||
<a href="//f0ck.me/48908"><img src="//f0ck.me/s/img/loool.webp" /></a>
|
||||
<p>thanks to our turkish fellow lol@n0xy/#f0ck for this gif <3</p>
|
||||
<a href="//f0ck.me/48908"><img src="//f0ck.me/s/img/loool.webp" /></a>
|
||||
<p>thanks to our turkish fellow lol@n0xy/#f0ck for this gif <3</p>
|
||||
</div>
|
||||
<h5>f0ck Contact</h5>
|
||||
<p>Whatever it is, we might have a answer, even though it might not be the one you were looking for: <a href="mailto:admin@f0ck.me">admin@f0ck.me</a></p>
|
||||
@ -14,24 +15,24 @@
|
||||
<h4>#f0ck on n0xy.net</h4>
|
||||
<p>You can invite f0ck to your channel on the following supported networks by simply typing<br><code>/invite f0ck</code></p>
|
||||
<ul>
|
||||
<li><a href="https://n0xy.net">n0xy.net</a></li>
|
||||
<li><a href="https://www.rizon.net/">rizon.net</a></li>
|
||||
<li><a href="https://libera.chat/">libera.chat</a></li>
|
||||
<li><a href="https://n0xy.net">n0xy.net</a></li>
|
||||
<li><a href="https://www.rizon.net/">rizon.net</a></li>
|
||||
<li><a href="https://libera.chat/">libera.chat</a></li>
|
||||
</ul>
|
||||
<p>To start f0cking the shit out of something simply add a <code>!f0ck</code> behind the url you want to f0ck, that's it</p>
|
||||
<p>#f0ck specific: to have f0ck ignore a link add <code>!ignore</code> at the end <br>Example: <a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ" target="_blank">https://www.youtube.com/watch?v=dQw4w9WgXcQ</a> !ignore</p>
|
||||
<p>f0ck supports a variety of websites, in fact all websites supported by <code>yt-dlp</code> are supported by f0ck aswell!</p>
|
||||
<h5>f0ck Rules</h5>
|
||||
<ul>
|
||||
<li>You must be 18 years or older to visit or post</li>
|
||||
<li>You shall not post animal cruelty, we like our animals alive and well, living a happy life until they are ready for our Schnitzel!</li>
|
||||
<li>You shall not post under <b>ANY</b> circumstances: Snuff, Beastiality, Rape, Terrorist stuff (Beheadings, First person shootings, warcrimes), Childporn, Childmodeling</li>
|
||||
<li>You must be 18 years or older to visit or post</li>
|
||||
<li>You shall not post animal cruelty, we like our animals alive and well, living a happy life until they are ready for our Schnitzel!</li>
|
||||
<li>You shall not post under <b>ANY</b> circumstances: Snuff, Beastiality, Rape, Terrorist stuff (Beheadings, First person shootings, warcrimes), Childporn, Childmodeling</li>
|
||||
</ul>
|
||||
<h5>f0cked up?</h5>
|
||||
<p>To have something removed in case you accidentally f0cked something that actually shouldn't be f0cked you can always contact the admins either via IRC or Email</p>
|
||||
<ul>
|
||||
<li>irc.n0xy.net #f0ck</li>
|
||||
<li>admin@f0ck.me</li>
|
||||
<li>irc.n0xy.net #f0ck</li>
|
||||
<li>admin@f0ck.me</li>
|
||||
</ul>
|
||||
<h5>Compatibility</h5>
|
||||
<p>f0ck is developed and tested for Firefox and Chromium in their latest versions</p>
|
||||
@ -45,5 +46,6 @@
|
||||
<h5>f0ck Privacy?</h5>
|
||||
<p>Cookies: Yes, we set 1 cookie for your prefered stylesheet, this is a optional cookie and not required for the site to function, simply cosmetics, you can block this cookie and the site will still work as intended and will default to the default f0ck theme called "f0ck"</p>
|
||||
<p>Logs: We do not log users accessing our website.</p>
|
||||
</div>
|
||||
</div>
|
||||
@include(snippets/footer)
|
||||
@include(snippets/footer)
|
||||
|
@ -1,18 +1,20 @@
|
||||
@include(snippets/header)
|
||||
<div class="container">
|
||||
<div id="main">
|
||||
<div class="container">
|
||||
<div class="_error_wrapper">
|
||||
<div class="err">
|
||||
<div class="_error_topbar">
|
||||
<span>x.x</span>
|
||||
</div>
|
||||
<div class="_error_content">
|
||||
<img src="/s/img/favicon.gif" alt="f0ck?!">
|
||||
<div class="_error_message">
|
||||
<span>Error</span>
|
||||
<code>{{ message }}</code>
|
||||
</div>
|
||||
</div>
|
||||
<div class="err">
|
||||
<div class="_error_topbar">
|
||||
<span>x.x</span>
|
||||
</div>
|
||||
<div class="_error_content">
|
||||
<img src="/s/img/favicon.gif" alt="f0ck?!">
|
||||
<div class="_error_message">
|
||||
<span>Error</span>
|
||||
<code>{{ message }}</code>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@include(snippets/footer)
|
||||
@include(snippets/footer)
|
@ -1,15 +1,17 @@
|
||||
<div class="pagewrapper">
|
||||
@include(snippets/header)
|
||||
<div class="index-container">
|
||||
@if(tmp.user)<h2>user: {!! tmp.user.toLowerCase() !!}@if(tmp.mime) ({{ tmp.mime }}s)@else (all)@endif</h2>@endif
|
||||
@if(tmp.tag)<h2>tag: @if(session)<a href="/search?tag={!! tmp.tag.toLowerCase() !!}" target="_blank">{!! tmp.tag.toLowerCase() !!}</a>@else{!! tmp.tag.toLowerCase() !!}@endif@if(tmp.mime) ({{ tmp.mime }}s)@else (all)@endif</h2>@endif
|
||||
<div class="posts">
|
||||
@each(items as item)
|
||||
<a href="{{ link.main }}{{ item.id }}" data-mime="{{ item.mime }}" data-mode="{{ item.tag_id ? ['','sfw','nsfw'][item.tag_id] : 'null' }}" style="background-image: url('/t/{{ item.id }}.webp')"><p></p></a>
|
||||
@endeach
|
||||
</div>
|
||||
<div id="footbar">
|
||||
▼
|
||||
<div class="pagewrapper">
|
||||
<div id="main">
|
||||
<div class="index-container">
|
||||
@if(tmp.user)<h2>user: {!! tmp.user.toLowerCase() !!}@if(tmp.mime) ({{ tmp.mime }}s)@else (all)@endif</h2>@endif
|
||||
@if(tmp.tag)<h2>tag: @if(session)<a href="/search?tag={!! tmp.tag.toLowerCase() !!}" target="_blank">{!! tmp.tag.toLowerCase() !!}</a>@else{!! tmp.tag.toLowerCase() !!}@endif@if(tmp.mime) ({{ tmp.mime }}s)@else (all)@endif</h2>@endif
|
||||
<div class="posts">
|
||||
@each(items as item)
|
||||
<a href="{{ link.main }}{{ item.id }}" data-mime="{{ item.mime }}" data-mode="{{ item.tag_id ? ['','sfw','nsfw'][item.tag_id] : 'null' }}" style="background-image: url('/t/{{ item.id }}.webp')"><p></p></a>
|
||||
@endeach
|
||||
</div>
|
||||
<div id="footbar">
|
||||
▼
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
192
views/item.html
192
views/item.html
@ -1,105 +1,107 @@
|
||||
<div class="wrapper">
|
||||
@include(snippets/header)
|
||||
<div class="container">
|
||||
<div class="_204863">
|
||||
<div class="imageDoor" style="--hover-image: url('/t/{{ item.id }}.webp');">
|
||||
<img src="/t/{{ item.id }}.webp" alt="" />
|
||||
</div>
|
||||
<div class="gapLeft">
|
||||
<span class="populateME"><b>f0ck</b> - {{ item.id }}</span>
|
||||
</div>
|
||||
@if(session)
|
||||
<div class="gapRight">
|
||||
<svg class="iconset" id="a_favo"><use href="/s/img/iconset.svg#heart_{{ Object.values(item.favorites).filter(u => u.user == session.user)[0] ? 'solid' : 'regular' }}"></use></svg>
|
||||
<svg class="iconset" id="a_delete"><use href="/s/img/iconset.svg#cross"></use></svg>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="next-post">
|
||||
@if(pagination.prev)
|
||||
<div class="arrow-next">
|
||||
<a id="next" href="{{ link.main }}{{ pagination.prev }}"></a>
|
||||
<div class="wrapper">
|
||||
<div id="main">
|
||||
<div class="container">
|
||||
<div class="_204863">
|
||||
<div class="imageDoor" style="--hover-image: url('/t/{{ item.id }}.webp');">
|
||||
<img src="/t/{{ item.id }}.webp" alt="" />
|
||||
</div>
|
||||
@else
|
||||
<div class="arrow-next">
|
||||
<a id="next" href="#" style="color: #ccc !important;"></a>
|
||||
<div class="gapLeft">
|
||||
<span class="populateME"><b>f0ck</b> - {{ item.id }}</span>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
<div class="media-object">
|
||||
@if(item.mime.startsWith("video"))
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
<video id="my-video" class="embed-responsive-item" width="640" height="360" src="{{ item.dest }}" preload="auto" autoplay controls loop playsinline></video>
|
||||
</div>
|
||||
@elseif(item.mime.startsWith("audio"))
|
||||
<div class="embed-responsive embed-responsive-16by9" style="background: url('@if(item.coverart)//f0ck.me{{ item.coverart }}@else/s/img/200.gif@endif') no-repeat center / contain black;">
|
||||
<audio id="my-video" class="embed-responsive-item" autoplay controls loop src="{{ item.dest }}" data-setup="{}" poster="@if(item.coverart){{ item.coverart }}@else/s/img/200.gif@endif" type="{{ item.mime }}"></audio>
|
||||
</div>
|
||||
@elseif(item.mime.startsWith("image"))
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
<div class="embed-responsive-image" id="image-scroll">
|
||||
<a href="{{ item.dest }}" id="elfe" target="_blank"><img id="f0ck-image" class="img-fluid" src="{{ item.dest }}" loading="lazy" decoding="async"/></a>
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<h1>404 - Not f0cked</h1>
|
||||
@endif
|
||||
</div>
|
||||
<div class="previous-post">
|
||||
@if(pagination.next)
|
||||
<div class="arrow-prev">
|
||||
<a id="prev" href="{{ link.main }}{{ pagination.next }}"></a>
|
||||
</div>
|
||||
@else
|
||||
<div class="arrow-prev">
|
||||
<a id="prev" href="#" style="color: #ccc !important;"></a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="metadata">
|
||||
<span class="badge badge-dark">
|
||||
<a href="/{{ item.id }}" class="id-link">{{ item.id }}</a>
|
||||
@if(session)
|
||||
(<a id="a_username" href="/user/{{ user.name.toLowerCase() }}/f0cks@if(tmp.mime)/{{ tmp.mime }}@endif">{{ user.name }}</a>)
|
||||
<div class="gapRight">
|
||||
<svg class="iconset" id="a_favo"><use href="/s/img/iconset.svg#heart_{{ Object.values(item.favorites).filter(u => u.user == session.user)[0] ? 'solid' : 'regular' }}"></use></svg>
|
||||
<svg class="iconset" id="a_delete"><use href="/s/img/iconset.svg#cross"></use></svg>
|
||||
</div>
|
||||
@endif
|
||||
</span>
|
||||
<span class="badge badge-dark">{{ user.network }} / {{ user.channel }}</span>
|
||||
<span class="badge badge-dark image-source">
|
||||
@if(item.src.long.length)
|
||||
<a href="{{ item.src.long }}" target="_blank">{{ item.src.short }}</a>
|
||||
@else
|
||||
hidden
|
||||
@endif
|
||||
</span>
|
||||
<span class="badge badge-dark"><a class="dest-link" href="{{ item.dest }}" target="_blank">{{ item.mime }}</a> / {{ item.size }}</span>
|
||||
<span class="badge badge-dark"><time class="timeago" tooltip="{{ item.timestamp.timefull }}">{{ item.timestamp.timeago }}</time></span>
|
||||
<span class="badge badge-dark">{{ phrase }}</span>
|
||||
<span class="badge badge-dark" id="tags">
|
||||
@if(typeof item.tags !== "undefined")
|
||||
@each(item.tags as tag)
|
||||
<span @if(session)tooltip="{{ tag.user }}"@endif class="badge {{ tag.badge }} mr-2">
|
||||
<a href="/tag/{{ tag.tag }}">{!! tag.tag !!}</a>@if(session) <a class="removetag" href="#">×</a>@endif
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="next-post">
|
||||
@if(pagination.prev)
|
||||
<div class="arrow-next">
|
||||
<a id="next" href="{{ link.main }}{{ pagination.prev }}"></a>
|
||||
</div>
|
||||
@else
|
||||
<div class="arrow-next">
|
||||
<a id="next" href="#" style="color: #ccc !important;"></a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
<div class="media-object">
|
||||
@if(item.mime.startsWith("video"))
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
<video id="my-video" class="embed-responsive-item" width="640" height="360" src="{{ item.dest }}" preload="auto" autoplay controls loop playsinline></video>
|
||||
</div>
|
||||
@elseif(item.mime.startsWith("audio"))
|
||||
<div class="embed-responsive embed-responsive-16by9" style="background: url('@if(item.coverart)//f0ck.me{{ item.coverart }}@else/s/img/200.gif@endif') no-repeat center / contain black;">
|
||||
<audio id="my-video" class="embed-responsive-item" autoplay controls loop src="{{ item.dest }}" data-setup="{}" poster="@if(item.coverart){{ item.coverart }}@else/s/img/200.gif@endif" type="{{ item.mime }}"></audio>
|
||||
</div>
|
||||
@elseif(item.mime.startsWith("image"))
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
<div class="embed-responsive-image" id="image-scroll">
|
||||
<a href="{{ item.dest }}" id="elfe" target="_blank"><img id="f0ck-image" class="img-fluid" src="{{ item.dest }}" loading="lazy" decoding="async"/></a>
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<h1>404 - Not f0cked</h1>
|
||||
@endif
|
||||
</div>
|
||||
<div class="previous-post">
|
||||
@if(pagination.next)
|
||||
<div class="arrow-prev">
|
||||
<a id="prev" href="{{ link.main }}{{ pagination.next }}"></a>
|
||||
</div>
|
||||
@else
|
||||
<div class="arrow-prev">
|
||||
<a id="prev" href="#" style="color: #ccc !important;"></a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="metadata">
|
||||
<span class="badge badge-dark">
|
||||
<a href="/{{ item.id }}" class="id-link">{{ item.id }}</a>
|
||||
@if(session)
|
||||
(<a id="a_username" href="/user/{{ user.name.toLowerCase() }}/f0cks@if(tmp.mime)/{{ tmp.mime }}@endif">{{ user.name }}</a>)
|
||||
@endif
|
||||
</span>
|
||||
<span class="badge badge-dark">{{ user.network }} / {{ user.channel }}</span>
|
||||
<span class="badge badge-dark image-source">
|
||||
@if(item.src.long.length)
|
||||
<a href="{{ item.src.long }}" target="_blank">{{ item.src.short }}</a>
|
||||
@else
|
||||
hidden
|
||||
@endif
|
||||
</span>
|
||||
<span class="badge badge-dark"><a class="dest-link" href="{{ item.dest }}" target="_blank">{{ item.mime }}</a> / {{ item.size }}</span>
|
||||
<span class="badge badge-dark"><time class="timeago" tooltip="{{ item.timestamp.timefull }}">{{ item.timestamp.timeago }}</time></span>
|
||||
<span class="badge badge-dark">{{ phrase }}</span>
|
||||
<span class="badge badge-dark" id="tags">
|
||||
@if(typeof item.tags !== "undefined")
|
||||
@each(item.tags as tag)
|
||||
<span @if(session)tooltip="{{ tag.user }}"@endif class="badge {{ tag.badge }} mr-2">
|
||||
<a href="/tag/{{ tag.tag }}">{!! tag.tag !!}</a>@if(session) <a class="removetag" href="#">×</a>@endif
|
||||
</span>
|
||||
@endeach
|
||||
@endif
|
||||
@if(session)
|
||||
<a href="#" id="a_addtag">add tag</a> - <a href="#" id="a_toggle">toggle</a>
|
||||
<datalist id="testlist"></datalist>
|
||||
@endif
|
||||
</span>
|
||||
<span class="badge" id="favs"@if(!item.favorites.length || !session) hidden@endif>
|
||||
@if(item.favorites.length && session)
|
||||
@each(item.favorites as fav)
|
||||
<a href="/user/{{ fav.user.toLowerCase() }}/favs" tooltip="{{ fav.user }}" flow="up"><img src="@if(fav.avatar)/t/{{ fav.avatar }}.webp@else/s/img/default.png@endif" style="height: 32px; width: 32px" /></a>
|
||||
@endeach
|
||||
@endif
|
||||
@if(session)
|
||||
<a href="#" id="a_addtag">add tag</a> - <a href="#" id="a_toggle">toggle</a>
|
||||
<datalist id="testlist"></datalist>
|
||||
@endif
|
||||
</span>
|
||||
<span class="badge" id="favs"@if(!item.favorites.length || !session) hidden@endif>
|
||||
@if(item.favorites.length && session)
|
||||
@each(item.favorites as fav)
|
||||
<a href="/user/{{ fav.user.toLowerCase() }}/favs" tooltip="{{ fav.user }}" flow="up"><img src="@if(fav.avatar)/t/{{ fav.avatar }}.webp@else/s/img/default.png@endif" style="height: 32px; width: 32px" /></a>
|
||||
@endeach
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
<div class="random">
|
||||
<a href="/random"></a>
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
<div class="random">
|
||||
<a href="/random"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@include(snippets/footer)
|
||||
</div>
|
@ -1,42 +1,44 @@
|
||||
@include(snippets/header)
|
||||
<div class="topf0ckers">
|
||||
<h3>Top f0ckers of all time <br>- Ranking -</h3>
|
||||
</div>
|
||||
<div class="ranking">
|
||||
<div class="by-user">
|
||||
<h3>Biggest taggers</h3>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
@for(let i = 0; i < list.length; i++)
|
||||
<tr>
|
||||
<td>{{ i + 1 }}</td>
|
||||
<td><a href="/{{ list[i].avatar }}"><img class="avatar" src="/t/{{ list[i].avatar }}.webp" /></a></td>
|
||||
<td><a href="/user/{!! list[i].user !!}">{!! list[i].user !!}</a></td>
|
||||
<td>{{ list[i].count }}</td>
|
||||
</tr>
|
||||
@endfor
|
||||
</tbody>
|
||||
</table>
|
||||
<div id="main">
|
||||
<div class="topf0ckers">
|
||||
<h3>Top f0ckers of all time <br>- Ranking -</h3>
|
||||
</div>
|
||||
<div class="by-hoster">
|
||||
<h3>Top {{ hoster.length }} hoster</h3>
|
||||
<table class="table">
|
||||
@each(hoster as host)
|
||||
<tr><td>{{ host.part.length ? host.part : "Telegram" }}</td><td>{{ host.c }}</td></tr>
|
||||
@endeach
|
||||
</table>
|
||||
</div>
|
||||
<div class="by-stats">
|
||||
<h3>Tag stats</h3>
|
||||
<table class="table">
|
||||
<tr><td>total</td><td>{{ stats.total }}</td></tr>
|
||||
<tr><td>tagged</td><td>{{ stats.tagged }}</td></tr>
|
||||
<tr><td>untagged</td><td>{{ stats.untagged }}</td></tr>
|
||||
<tr><td>SFW</td><td>{{ stats.sfw }}</td></tr>
|
||||
<tr><td>NSFW</td><td>{{ stats.nsfw }}</td></tr>
|
||||
<tr><td>deleted</td><td>{{ stats.deleted }}</td></tr>
|
||||
<tr><td>missing ids</td><td>{{ stats.untracked }}</td></tr>
|
||||
</table>
|
||||
<div class="ranking">
|
||||
<div class="by-user">
|
||||
<h3>Biggest taggers</h3>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
@for(let i = 0; i < list.length; i++)
|
||||
<tr>
|
||||
<td>{{ i + 1 }}</td>
|
||||
<td><a href="/{{ list[i].avatar }}"><img class="avatar" src="/t/{{ list[i].avatar }}.webp" /></a></td>
|
||||
<td><a href="/user/{!! list[i].user !!}">{!! list[i].user !!}</a></td>
|
||||
<td>{{ list[i].count }}</td>
|
||||
</tr>
|
||||
@endfor
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="by-hoster">
|
||||
<h3>Top {{ hoster.length }} hoster</h3>
|
||||
<table class="table">
|
||||
@each(hoster as host)
|
||||
<tr><td>{{ host.part.length ? host.part : "Telegram" }}</td><td>{{ host.c }}</td></tr>
|
||||
@endeach
|
||||
</table>
|
||||
</div>
|
||||
<div class="by-stats">
|
||||
<h3>Tag stats</h3>
|
||||
<table class="table">
|
||||
<tr><td>total</td><td>{{ stats.total }}</td></tr>
|
||||
<tr><td>tagged</td><td>{{ stats.tagged }}</td></tr>
|
||||
<tr><td>untagged</td><td>{{ stats.untagged }}</td></tr>
|
||||
<tr><td>SFW</td><td>{{ stats.sfw }}</td></tr>
|
||||
<tr><td>NSFW</td><td>{{ stats.nsfw }}</td></tr>
|
||||
<tr><td>deleted</td><td>{{ stats.deleted }}</td></tr>
|
||||
<tr><td>missing ids</td><td>{{ stats.untracked }}</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@include(snippets/footer)
|
||||
|
@ -1,37 +1,39 @@
|
||||
@include(snippets/header)
|
||||
<div class="f0ckgle">
|
||||
<h1 style="text-align: center">f0ckgle</h1>
|
||||
<form action="/search" class="admin-search">
|
||||
<input type="text" name="tag" value="{!! searchstring || '' !!}" /><button type="submit"><b>f0ck</b></button>
|
||||
</form>
|
||||
<div class="results">
|
||||
@if(result)
|
||||
<h2>{{ count }} f0cks given (page {{ pagination.page }} of {{ pagination.end }}):</h2>
|
||||
<table style="width: 100%" class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Thumbnail</th>
|
||||
<th>ID</th>
|
||||
<th>Tag</th>
|
||||
<th>Mime</th>
|
||||
<th>Username</th>
|
||||
<th>Score</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@each(result as line)
|
||||
<tr>
|
||||
<td style="width: 128px;"><a href="/tag/{!! line.tag !!}/{{ line.id }}" target="_blank"><img src="/t/{{ line.id }}.webp" /></a></td>
|
||||
<td><span class="mview_desc">ID:</span><a href="/tag/{!! line.tag !!}/{{ line.id }}" target="_blank">{{ line.id }}</a></td>
|
||||
<td><span class="mview_desc">Tag:</span><a href="/tag/{!! line.tag !!}">{!! line.tag !!}</a></td>
|
||||
<td><span class="mview_desc">Mime:</span>{{ line.mime }}</td>
|
||||
<td><span class="mview_desc">User:</span><a href="/user/{!! line.username !!}/f0cks/{{ line.id }}">{!! line.username !!}</a></td>
|
||||
<td><span class="mview_desc">Score:</span>{{ line.score?.toFixed(2) }}</td>
|
||||
</tr>
|
||||
@endeach
|
||||
</tbody>
|
||||
</table>
|
||||
@endif
|
||||
<div id="main">
|
||||
<div class="f0ckgle">
|
||||
<h1 style="text-align: center">f0ckgle</h1>
|
||||
<form action="/search" class="admin-search">
|
||||
<input type="text" name="tag" value="{!! searchstring || '' !!}" /><button type="submit"><b>f0ck</b></button>
|
||||
</form>
|
||||
<div class="results">
|
||||
@if(result)
|
||||
<h2>{{ count }} f0cks given (page {{ pagination.page }} of {{ pagination.end }}):</h2>
|
||||
<table style="width: 100%" class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Thumbnail</th>
|
||||
<th>ID</th>
|
||||
<th>Tag</th>
|
||||
<th>Mime</th>
|
||||
<th>Username</th>
|
||||
<th>Score</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@each(result as line)
|
||||
<tr>
|
||||
<td style="width: 128px;"><a href="/tag/{!! line.tag !!}/{{ line.id }}" target="_blank"><img src="/t/{{ line.id }}.webp" /></a></td>
|
||||
<td><span class="mview_desc">ID:</span><a href="/tag/{!! line.tag !!}/{{ line.id }}" target="_blank">{{ line.id }}</a></td>
|
||||
<td><span class="mview_desc">Tag:</span><a href="/tag/{!! line.tag !!}">{!! line.tag !!}</a></td>
|
||||
<td><span class="mview_desc">Mime:</span>{{ line.mime }}</td>
|
||||
<td><span class="mview_desc">User:</span><a href="/user/{!! line.username !!}/f0cks/{{ line.id }}">{!! line.username !!}</a></td>
|
||||
<td><span class="mview_desc">Score:</span>{{ line.score?.toFixed(2) }}</td>
|
||||
</tr>
|
||||
@endeach
|
||||
</tbody>
|
||||
</table>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@include(snippets/footer)
|
||||
@include(snippets/footer)
|
||||
|
@ -1,52 +1,54 @@
|
||||
@include(snippets/header)
|
||||
<h1>Settings</h1>
|
||||
@if(session.avatar)<a href="/{{ session.avatar }}"><img id="img_avatar" src="/t/{{ session.avatar }}.webp" /></a>@endif
|
||||
<h2>Account</h2>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>UserID</td>
|
||||
<td>{{ session.id }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>level</td>
|
||||
<td>{{ session.level }}/100</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>username</td>
|
||||
<td>{!! session.user !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>avatar</td>
|
||||
<td><input type="text" class="input" name="i_avatar" value="{{ session.avatar }}" /><input type="submit" id="s_avatar" value="save" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2>Sessions</h2>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th>id</th>
|
||||
<th> </th>
|
||||
<th>last action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@each(sessions as sess)
|
||||
<tr@if(sess.id === session.sess_id) style="background-color: rgb(0, 89, 0)"@endif>
|
||||
<td>{{ sess.kmsi ? '⚓' : '' }}</td>
|
||||
<td tooltip="{{ sess.browser }}" flow="right">
|
||||
<p>{{ sess.id }}</p>
|
||||
<p><a href="#" onclick="alert('not yet implemented!');">logout</a></p>
|
||||
</td>
|
||||
<td>
|
||||
<p>last_used: {{ new Date(sess.last_used * 1e3).toLocaleString("de-DE") }}</p>
|
||||
<p>created_at: {{ new Date(sess.created_at * 1e3).toLocaleString("de-DE") }}</p>
|
||||
</td>
|
||||
<td><a href="{{ sess.last_action }}" target="_blank">{{ sess.last_action }}</a></td>
|
||||
</tr>
|
||||
@endeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div id="main">
|
||||
<h1>Settings</h1>
|
||||
@if(session.avatar)<a href="/{{ session.avatar }}"><img id="img_avatar" src="/t/{{ session.avatar }}.webp" /></a>@endif
|
||||
<h2>Account</h2>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>UserID</td>
|
||||
<td>{{ session.id }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>level</td>
|
||||
<td>{{ session.level }}/100</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>username</td>
|
||||
<td>{!! session.user !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>avatar</td>
|
||||
<td><input type="text" class="input" name="i_avatar" value="{{ session.avatar }}" /><input type="submit" id="s_avatar" value="save" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2>Sessions</h2>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th>id</th>
|
||||
<th> </th>
|
||||
<th>last action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@each(sessions as sess)
|
||||
<tr@if(sess.id === session.sess_id) style="background-color: rgb(0, 89, 0)"@endif>
|
||||
<td>{{ sess.kmsi ? '⚓' : '' }}</td>
|
||||
<td tooltip="{{ sess.browser }}" flow="right">
|
||||
<p>{{ sess.id }}</p>
|
||||
<p><a href="#" onclick="alert('not yet implemented!');">logout</a></p>
|
||||
</td>
|
||||
<td>
|
||||
<p>last_used: {{ new Date(sess.last_used * 1e3).toLocaleString("de-DE") }}</p>
|
||||
<p>created_at: {{ new Date(sess.created_at * 1e3).toLocaleString("de-DE") }}</p>
|
||||
</td>
|
||||
<td><a href="{{ sess.last_action }}" target="_blank">{{ sess.last_action }}</a></td>
|
||||
</tr>
|
||||
@endeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@include(snippets/footer)
|
||||
|
@ -1,5 +1,4 @@
|
||||
@if(session)<!--<div style="position: fixed; bottom: 0; z-index: 998; background-color: var(--bg); width: 100%; height: 29px; border-top: 1px solid var(--accent)">{{ JSON.stringify(session) }}</div>-->@endif
|
||||
</div>
|
||||
<script async src="/s/js/theme.js?v=@mtime(/public/s/js/theme.js)"></script>
|
||||
<script src="/s/js/v0ck.js?v=@mtime(/public/s/js/v0ck.js)"></script>
|
||||
<script src="/s/js/f0ck.js?v=@mtime(/public/s/js/f0ck.js)"></script>
|
||||
|
@ -12,4 +12,3 @@
|
||||
</head>
|
||||
<body>
|
||||
@include(snippets/navbar)
|
||||
<div id="main">
|
@ -1,28 +1,29 @@
|
||||
@include(snippets/header)
|
||||
<h1>{{ user.user }}</h1>
|
||||
<div id="main">
|
||||
<h1>{{ user.user }}</h1>
|
||||
|
||||
<h2>f0cks:</h2>
|
||||
@if('items' in f0cks)
|
||||
<div class="posts">
|
||||
@each(f0cks.items as item)
|
||||
<a href="{{ f0cks.link.main }}{{ item.id }}" data-mime="{{ item.mime }}" data-mode="{{ item.tag_id ? ['','sfw','nsfw'][item.tag_id] : 'null' }}" style="background-image: url('/t/{{ item.id }}.webp')"><p></p></a>
|
||||
@endeach
|
||||
<h2>f0cks:</h2>
|
||||
@if('items' in f0cks)
|
||||
<div class="posts">
|
||||
@each(f0cks.items as item)
|
||||
<a href="{{ f0cks.link.main }}{{ item.id }}" data-mime="{{ item.mime }}" data-mode="{{ item.tag_id ? ['','sfw','nsfw'][item.tag_id] : 'null' }}" style="background-image: url('/t/{{ item.id }}.webp')"><p></p></a>
|
||||
@endeach
|
||||
</div>
|
||||
<a href="{{ f0cks.link.main }}">show all f0cks</a>
|
||||
@else
|
||||
no f0cks given
|
||||
@endif
|
||||
|
||||
<h2>favs:</h2>
|
||||
@if('items' in favs)
|
||||
<div class="posts">
|
||||
@each(favs.items as item)
|
||||
<a href="{{ favs.link.main }}{{ item.id }}" data-mime="{{ item.mime }}" data-mode="{{ item.tag_id ? ['','sfw','nsfw'][item.tag_id] : 'null' }}" style="background-image: url('/t/{{ item.id }}.webp')"><p></p></a>
|
||||
@endeach
|
||||
</div>
|
||||
<a href="{{ favs.link.main }}">show all favs</a>
|
||||
@else
|
||||
no favorites
|
||||
@endif
|
||||
</div>
|
||||
<a href="{{ f0cks.link.main }}">show all f0cks</a>
|
||||
@else
|
||||
no f0cks given
|
||||
@endif
|
||||
|
||||
<h2>favs:</h2>
|
||||
@if('items' in favs)
|
||||
<div class="posts">
|
||||
@each(favs.items as item)
|
||||
<a href="{{ favs.link.main }}{{ item.id }}" data-mime="{{ item.mime }}" data-mode="{{ item.tag_id ? ['','sfw','nsfw'][item.tag_id] : 'null' }}" style="background-image: url('/t/{{ item.id }}.webp')"><p></p></a>
|
||||
@endeach
|
||||
</div>
|
||||
<a href="{{ favs.link.main }}">show all favs</a>
|
||||
@else
|
||||
no favorites
|
||||
@endif
|
||||
|
||||
@include(snippets/footer)
|
||||
@include(snippets/footer)
|
||||
|
Loading…
Reference in New Issue
Block a user