server ver

This commit is contained in:
2021-06-20 13:49:07 +00:00
parent 36a8c92dec
commit 8877c0bad0
975 changed files with 555 additions and 6596 deletions

View File

@@ -1,25 +0,0 @@
@extends('layout')
@section('content')
<div class="page-header">
<h3>About</h3>
</div>
<h4>What is w0bm.com about?</h4>
<ul>
<li>w0bm.com is a modern open source WebM sharing platform.</li>
<li>We collect random videos from the internet.</li>
</ul>
<h4>Following shortcuts are available:</h4>
<ul class="strong-colored">
<li>Press: <strong>R</strong> for random</li>
<li>Press: <strong></strong>, <strong>D</strong> or <strong>L</strong> for next</li>
<li>Press: <strong></strong>, <strong>A</strong> or <strong>H</strong> for prev</li>
<li>Press: <strong></strong> or <strong>W</strong> for volume up</li>
<li>Press: <strong></strong> or <strong>S</strong> for volume down</li>
<li>Press: <strong>F</strong> for fav</li>
<li>Scroll with your mouse up and down to trigger next or prev</li>
</ul>
<p>Inspiriert durch <a href="http://z0r.de">z0r.de</a></p>
@endsection

View File

@@ -1,21 +0,0 @@
@extends('layout')
@section('content')
<div class="page-header">
<h1>Categories</h1>
</div>
<div class="row" id="categories">
@foreach($categories as $category)
<div class="col-sm-6 col-md-4 category">
<div class="thumbnail">
<img src="{{ asset('/asbach/images/cat/' . $category->shortname . '.png') }}" alt="{{$category->name}}">
<div class="caption">
<h3>{{$category->name}} <small>{{$category->videos()->count()}}</small></h3>
<p>{{$category->description}}</p>
<p><a href="{{$category->shortname}}" class="btn btn-primary" role="button">View</a></p>
</div>
</div>
</div>
@endforeach
</div>
@endsection

View File

@@ -1,8 +0,0 @@
@extends('layout')
@section('content')
<center>
<h1>404</h1>
<img src="/404.gif">
<br><a href="/1422">:3</a></br>
</center>
@endsection

View File

@@ -1,90 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="robots" content="noindex,nofollow" />
<style>
html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}input,textarea,select{*font-size:100%;}legend{color:#000;}
html { background: #eee; padding: 10px }
img { border: 0; }
#sf-resetcontent { width:970px; margin:0 auto; }
.sf-reset { font: 11px Verdana, Arial, sans-serif; color: #333 }
.sf-reset .clear { clear:both; height:0; font-size:0; line-height:0; }
.sf-reset .clear_fix:after { display:block; height:0; clear:both; visibility:hidden; }
.sf-reset .clear_fix { display:inline-block; }
.sf-reset * html .clear_fix { height:1%; }
.sf-reset .clear_fix { display:block; }
.sf-reset, .sf-reset .block { margin: auto }
.sf-reset abbr { border-bottom: 1px dotted #000; cursor: help; }
.sf-reset p { font-size:14px; line-height:20px; color:#868686; padding-bottom:20px }
.sf-reset strong { font-weight:bold; }
.sf-reset a { color:#6c6159; cursor: default; }
.sf-reset a img { border:none; }
.sf-reset a:hover { text-decoration:underline; }
.sf-reset em { font-style:italic; }
.sf-reset h1, .sf-reset h2 { font: 20px Georgia, "Times New Roman", Times, serif }
.sf-reset .exception_counter { background-color: #fff; color: #333; padding: 6px; float: left; margin-right: 10px; float: left; display: block; }
.sf-reset .exception_title { margin-left: 3em; margin-bottom: 0.7em; display: block; }
.sf-reset .exception_message { display: block; }
.sf-reset .traces li { font-size:12px; padding: 2px 4px; list-style-type:decimal; margin-left:20px; }
.sf-reset .block { background-color:#FFFFFF; padding:10px 28px; margin-bottom:20px;
-webkit-border-bottom-right-radius: 16px;
-webkit-border-bottom-left-radius: 16px;
-moz-border-radius-bottomright: 16px;
-moz-border-radius-bottomleft: 16px;
border-bottom-right-radius: 16px;
border-bottom-left-radius: 16px;
border-bottom:1px solid #ccc;
border-right:1px solid #ccc;
border-left:1px solid #ccc;
word-wrap: break-word;
}
.sf-reset .block pre { overflow: auto; }
.sf-reset .block_exception { background-color:#ddd; color: #333; padding:20px;
-webkit-border-top-left-radius: 16px;
-webkit-border-top-right-radius: 16px;
-moz-border-radius-topleft: 16px;
-moz-border-radius-topright: 16px;
border-top-left-radius: 16px;
border-top-right-radius: 16px;
border-top:1px solid #ccc;
border-right:1px solid #ccc;
border-left:1px solid #ccc;
overflow: hidden;
word-wrap: break-word;
}
.sf-reset a { background:none; color:#868686; text-decoration:none; }
.sf-reset a:hover { background:none; color:#313131; text-decoration:underline; }
.sf-reset ol { padding: 10px 0; }
.sf-reset h1 { background-color:#FFFFFF; padding: 15px 28px; margin-bottom: 20px;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
border: 1px solid #ccc;
}
</style>
</head>
<body>
<div id="sf-resetcontent" class="sf-reset">
<h1>Whoops, looks like something went wrong.</h1>
<h2 class="block_exception clear_fix">
<span class="exception_message">Please send the following text to an admin</span>
</h2>
<?php
$iv = openssl_random_pseudo_bytes(16);
?>
@if(!env('APP_DEBUG'))
<div class="block">
{{bin2hex($iv)}}<br>
{{openssl_encrypt($exception, 'aes128', env('APP_KEY'), 0, $iv)}}
</div>
@else
<div class="block">
<pre>{{$exception}}</pre>
</div>
@endif
</div>
</body>
</html>

View File

@@ -1,47 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Please Stand By we are just fucking this up</title>
<link href="https://fonts.googleapis.com/css?family=Lato:100" rel="stylesheet" type="text/css">
<style>
html, body {
height: 100%;
}
body {
margin: 0;
padding: 0;
width: 100%;
color: #B0BEC5;
display: table;
font-weight: 100;
font-family: 'Lato';
background-color: #161618;
}
.container {
text-align: center;
display: table-cell;
vertical-align: middle;
}
.content {
text-align: center;
display: inline-block;
}
.title {
font-size: 72px;
margin-bottom: 40px;
}
</style>
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Don't worry, we will be right back!</div>
</div>
</div>
</body>
</html>

View File

@@ -1,11 +0,0 @@
@extends('layout')
@section('content')
<h4>Impressum</h4>
<img src="/traurig.gif" height="25%" width="25%" style="float: right;">
<ul>
<li>Inhaber: Ashrat Mughdi</li>
<li>Anschrift: Kartäusergasse 9-11, 50678 Köln</li>
<li>Netzpostadresse: bka [at] tfwno [dot] gf</li>
<li>Für anderweitigen Kontakt stehe ich per <a href="/irc">IRC</a> zur Verfügung!</li>
</ul>
@endsection

View File

@@ -1,32 +0,0 @@
@extends('layout')
@section('content')
<div class="page-header">
<h1>Songindex</h1>
</div>
<table class="table table-hover table-condensed">
<thead>
<tr>
<th>ID</th>
<th>Interpret</th>
<th>Songtitle</th>
<th>Video Source</th>
<th>Category</th>
</tr>
</thead>
<tbody>
@foreach($videos as $video)
<tr>
<td><a href="{{url($video->id)}}">{{$video->id}}</a></td>
<td>{{$video->interpret or ''}}</td>
<td>{{$video->songtitle or ''}}</td>
<td>{{$video->imgsource or ''}}</td>
<td><a href="{{url($video->category->shortname)}}">{{$video->category->name}}</a></td>
</tr>
@endforeach
</tbody>
</table>
<div class="pull-right">
{!! $videos->render() !!}
</div>
@endsection

View File

@@ -1,8 +0,0 @@
@extends('layout')
@section('content')
<div class="page-header">
<h1>IRC</h1>
</div>
<h3>irc.n0xy.net +6697 #w0bm</h3>
@endsection

View File

@@ -1,297 +0,0 @@
<!doctype html>
<html lang="de">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport"
content="width=device-width,initial-scale=1">
<meta charset="UTF-8">
<meta name="_token" content="{{csrf_token()}}">
<link rel="icon" href="/asbach/favicon.png">
<title>w0bm.com - WebMs with sound!</title>
<link rel="stylesheet" href="/asbach/css/style.css">
<link rel="stylesheet" href="//cdn.jsdelivr.net/jquery.mcustomscrollbar/3.0.6/jquery.mCustomScrollbar.min.css">
<link rel="favicon"
type="image/ico"
href="favicon.ico" />
<link href="//fonts.googleapis.com/css?family=Oswald" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
<link rel="stylesheet" href="/asbach/css/w0bmcustom.css">
</head>
<body>
<canvas id="bg" @if(!Session::get('background', true)) style="display: none;"@endif></canvas>
@include('partials.navigation')
<div class="wrapper">
@yield('aside')
<div style="width: auto; overflow: hidden; position: relative;">
<div class="container">
@yield('content')
</div>
@include('partials.flash')
</div>
</div>
<script src="/js/jquery.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
<script src="/js/jquery.mCustomScrollbar.concat.min.js"></script>
<script src="/js/isotope.pkgd.min.js"></script>
<script src="/js/imagesloaded.pkgd.min.js"></script>
<script>
function flash(type, message) {
var html = '<div class="alert alert-:TYPE: alert-dismissable" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>:REPLACE:</div>';
var alerts = $('.flashcontainer > .container');
if(type === 'error') type = 'danger';
alerts.append(html.replace(/:TYPE:/, type).replace(/:REPLACE:/, message));
alertrm(jQuery);
}
window.requestAnimFrame = (function(){
return window.requestAnimationFrame
|| window.webkitRequestAnimationFrame
|| window.mozRequestAnimationFrame
|| function(callback) { window.setTimeout(callback, 1000 / 60);};
})();
var video = document.getElementById('video');
if(video !== null) {
video.volume = 0.3;
if (typeof localStorage != "undefined") {
video.volume = localStorage.getItem("volume") || 0.3;
video.addEventListener("volumechange", function () {
localStorage.setItem("volume", video.volume);
});
}
var canvas = document.getElementById('bg');
var context = canvas.getContext('2d');
var cw = canvas.width = canvas.clientWidth|0;
var ch = canvas.height = canvas.clientHeight|0;
function animationLoop() {
if(video.paused || video.ended)
return false;
context.drawImage(video, 0, 0, cw, ch);
window.requestAnimFrame(animationLoop);
}
video.addEventListener('play', function() {
animationLoop();
});
if(video.autoplay)
animationLoop();
} else {
var canvas = document.getElementById('bg');
canvas.parentNode.removeChild(canvas);
}
//temporary fix for scrolling not working on other pages
var regex = /w0bm.com\/(?:.+\/)?(\d+)/i;
if(regex.test(window.location.href) && $('video').length) {
$('html').on('keydown', function(e) {
if(e.defaultPrevented || e.target.nodeName.match(/\b(input|textarea)\b/i)) {
return;
}
else if(e.keyCode == 39) {
get_next();
}
else if(e.keyCode == 37) {
get_prev();
}
else if(e.keyCode == 82) {
get_random();
}
else if(e.keyCode == 70) {
to_favs();
}
});
$('.wrapper > div').on('DOMMouseScroll mousewheel', function(e) {
e.deltaY < 0 ? get_next() : get_prev();
return false;
});
if(navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {
$('video').on('click', function() {
$(this).get(0).paused ? $(this).get(0).play() : $(this).get(0).pause();
});
}
}
function get_next() {
if($('#next').css('visibility') != 'hidden') {
$('#next').get(0).click();
}
}
function get_prev() {
if($('#prev').css('visibility') != 'hidden') {
$('#prev').get(0).click();
}
}
function get_random() {
$('#prev').next().get(0).click();
}
function to_favs() {
$('#fav').get(0).click();
}
(function ($) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
}
});
var commentform = $('#commentForm');
commentform.on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: commentform.attr('action'),
data: commentform.serialize()
}).done(function (data) {
flash('success', 'Comment saved successfully');
$('.nocomments').remove();
$('.commentwrapper').append(data);
var textarea = commentform.find('textarea').val('');
textarea.blur();
}).fail(function(data){
flash('error', 'Error saving comment');
flash('error', data);
});
});
})(jQuery);
(function ($) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
}
});
var favBtn = $('#fav');
favBtn.on('click touchdown', function (e) {
e.preventDefault();
$.ajax({
type: 'GET',
url: favBtn.attr('href')
}).done(function (data) {
flash('success', data);
var icon = favBtn.find('i');
if(icon.hasClass('fa-heart-o')) {
icon.removeClass('fa-heart-o');
icon.addClass('fa-heart');
} else {
icon.removeClass('fa-heart');
icon.addClass('fa-heart-o');
}
});
})
})(jQuery);
(function ($) {
$('#togglebg').on('click touchdown', function (e) {
e.preventDefault();
$.ajax({
dataType: 'json',
url: $(this).attr('href'),
data: {}
}).done(function () {
$('#bg').toggle();
});
});
})(jQuery);
(function ($) {
$(':not(form)[data-confirm]').on('click touchdown', function () {
return confirm($(this).data('confirm'));
});
})(jQuery);
(function ($) {
$(".comments").mCustomScrollbar({
axis: 'y',
theme: 'minimal',
scrollInertia: 0
});
})(jQuery);
var alertrm = function ($) {
$('.alert').each(function (index) {
$(this).delay(3000 + index * 1000).slideUp(300);
});
};
alertrm(jQuery);
$('#categories').imagesLoaded(function () {
$('#categories').isotope({
itemSelector: '.category',
percentPosition: true,
layoutMode: 'masonry'
});
});
$(function() {
$('[data-toggle="popover"]').popover({
html: true
});
});
/* bye bye kadse D: greetz gz
(function() {
new Image().src = "/images/catfart/cutf.png";
var n = document.createElement("div");
var a = new Audio();
a.addEventListener("pause", function () {
n.setAttribute("class", "catfart");
});
a.addEventListener("play", function () {
n.setAttribute("class", "catfart farting");
});
n.addEventListener("mouseover", function () {
if (!a.paused) return;
a.src = "/images/catfart/pupsi" + (Math.random()*28|0) + ".mp3";
a.play();
});
n.setAttribute("class", "catfart");
document.body.appendChild(n);
})();*/
(function() {
var v = document.getElementById("video");
if (typeof v == "undefined") return;
var p = v.parentNode;
p.style.marginBottom = "1px";
var bar = document.createElement("div");
var outerBar = document.createElement("div");
outerBar.appendChild(bar);
p.appendChild(outerBar);
$(outerBar).css({
height: "1px", width: "100%",
overflow: "hidden", willChange: "transform",
position: "absolute", bottom: "0"
});
$(bar).css({
height: "inherit", width: "inherit",
position: "absolute", transform: "translateX(-100%)",
backgroundColor: "rgba(31, 178, 176, 0.4)"
});
var update = function () {
requestAnimationFrame(update);
if (v.paused) return;
var perc = 100 / v.duration * v.currentTime;
bar.style.transform = "translateX("+(-100 + perc)+"%)";
};
update();
})();
</script>
</body>
</html>

View File

@@ -1,100 +0,0 @@
<style type="text/css">
* {margin: 0; padding: 0}
body {background: #000;overflow:hidden;}
canvas {display: block;}
.matrix {
position: absolute;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
text-align: center;
font-family: monospace;
}
.matrix > .inner {
position: absolute;
color: white;
top: 40%;
}
.inner {
background: #000000b5;
padding: 5px;
}
#bluepill a {
width: 26px;
height: 10px;
display: inline-block;
color: blue;
background: blue;
border-radius: 5px;
}
#redpill a {
width: 26px;
height: 10px;
display: inline-block;
color: red;
background: red;
border-radius: 5px;
}
</style>
<div class="matrix">
<div class="inner">
<h3><p><b><i>You are a slave {{Auth::user()->username}}</i></b></p></h3>
<br>
<p>Take control over your chats, leave Discord for good!</p>
<p>Join [matrix] today!</p>
<p>Why should you consider either running a [matrix] synapse yourself or start using someone elses:</p>
<p>Discord is evil, it took away the freedom you and I deserve, it makes you a slave to their services,<br> makes you obey their rules, includes you in a unwanted botnet where you have no freedom at all!</p>
<p>It's time to break free {{Auth::user()->username}}</p>
<p>Choose your fate</p>
<span id="bluepill"><a href="https://discordapp.com/app"></a></span> <span id="redpill"><a href="https://github.com/matrix-org/synapse" target="_blank"></a></span>
<p><code>#!w0bm:f0ck.it</code></p>
<br>
<p><small>We are happy to help if you have any trouble setting up your synapse</small></p>
</div>
</div>
<canvas></canvas>
<audio src="/clubbed.mp3" autoplay loop></audio>
<script type="text/javascript">
// Initialising the canvas
var canvas = document.querySelector('canvas'),
ctx = canvas.getContext('2d');
// Setting the width and height of the canvas
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
// Setting up the letters
var letters = 'ABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZ';
letters = letters.split('');
// Setting up the columns
var fontSize = 10,
columns = canvas.width / fontSize;
// Setting up the drops
var drops = [];
for (var i = 0; i < columns; i++) {
drops[i] = 1;
}
// Setting up the draw function
function draw() {
ctx.fillStyle = 'rgba(0, 0, 0, .1)';
ctx.fillRect(0, 0, canvas.width, canvas.height);
for (var i = 0; i < drops.length; i++) {
var text = letters[Math.floor(Math.random() * letters.length)];
ctx.fillStyle = '#0f0';
ctx.fillText(text, i * fontSize, drops[i] * fontSize);
drops[i]++;
if (drops[i] * fontSize > canvas.height && Math.random() > .95) {
drops[i] = 0;
}
}
}
// Loop the animation
setInterval(draw, 33);
</script>

View File

@@ -1,2 +0,0 @@
<h3><a href="{{url('user/' . $user->username)}}">{{$user->username}}</a> mentioned you in a comment.</h3>
<p><a href="{{url('user/' . $user->username)}}">{{$user->username}}</a> mentioned you in a comment on the following video: <a href="{{url($video->id)}}">/{{$video->id}}</a></p>

View File

@@ -1,2 +0,0 @@
<h3>New comment on your video <a href="{{url($video->id)}}">/{{$video->id}}</a></h3>
<p><a href="{{url('user/' . $user->username)}}">{{$user->username}}</a> made a comment on your video.</p>

View File

@@ -1,14 +0,0 @@
<div class="panel @if($del = !is_null($comment->deleted_at)) panel-danger @else panel-default @endif">
<div class="panel-body">
@simplemd($comment->content)
</div>
<div class="panel-footer">by <a href="/user/{{$comment->user->username}}">{{$comment->user->username}}</a> <small>{{$comment->created_at->diffForHumans()}}</small>
@if($mod)
@if($del)
<a href="{{url('comment/' . $comment->id . '/restore')}}" class="btn btn-success">Restore</a>
@else
<a data-confirm="Do you really want to delete that comment?" class="btn btn-danger" href="{{url('comment/' . $comment->id . '/delete')}}">Delete</a>
@endif
@endif
</div>
</div>

View File

@@ -1,9 +0,0 @@
<form id="commentForm" action="{{action('CommentController@store', ['id' => $video->id])}}" method="post">
{!! csrf_field() !!}
<div class="panel panel-default">
<div class="panel-body">
{!! Form::textarea('comment', null, ['placeholder' => 'Write comment...', 'class' => 'form-control', 'required' => 'required']) !!}
</div>
<div class="panel-footer"><button type="submit" class="btn btn-primary btn-sm">Send</button></div>
</div>
</form>

View File

@@ -1,26 +0,0 @@
<aside class="comments hidden-xs">
@if(Auth::check())
@if($video->id == '30186')
@include('partials.thread_closed')
@else
@include('partials.commentform')
@endif
@endif
<div class="commentwrapper">
<?php
if($mod = (Auth::check() && Auth::user()->can('delete_comment'))) $comments = $video->comments()->withTrashed()->get();
else $comments = $video->comments;
?>
@if(count($comments) > 0)
@foreach($comments as $comment)
@include('partials.comment', ['comment' => $comment, 'mod' => $mod])
@endforeach
@else
<div class="panel panel-default nocomments">
<div class="panel-body">
No comments yet.
</div>
</div>
@endif
</div>
</aside>

View File

@@ -1,36 +0,0 @@
<div class="flashcontainer">
<div class="container">
@if($errors->count() > 0)
@foreach($errors->all() as $error)
<div class="alert alert-danger alert-dismissable" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
{{ $error }}
</div>
@endforeach
@endif
@if(Session::has('error'))
<div class="alert alert-danger alert-dismissable" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
{{ session('error') }}
</div>
@endif
@if(Session::has('success'))
<div class="alert alert-success alert-dismissable" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
{{ session('success') }}
</div>
@endif
@if(Session::has('info'))
<div class="alert alert-info alert-dismissable" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
{{ session('info') }}
</div>
@endif
@if(Session::has('warning'))
<div class="alert alert-warning alert-dismissable" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
{{ session('warning') }}
</div>
@endif
</div>
</div>

View File

@@ -1,43 +0,0 @@
<nav class="navbar navbar-inverse navbar-static-top">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/"><img src="/asbach/logo.png"></a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-left">
<li><a href="{{url('categories')}}"><i class="fa fa-bars"></i> Categories</a></li>
<li><a href="{{url('index')}}"><i class="fa fa-music"></i> Songindex</a></li>
<li><a href="{{url('irc')}}"><i class="fa fa-comment"></i> IRC</a></li>
<li><a href="{{url('togglebackground')}}" id="togglebg"><i class="fa fa-power-off"></i> Background</a></li>
<li><a href="{{url('about')}}"><i class="fa fa-exclamation"></i> About</a></li>
</ul>
@if(Auth::check())
<ul class="nav navbar-nav navbar-right">
<li><a href="{{url('upload')}}"><i class="fa fa-cloud-upload"></i> Upload</a></li>
<li><a href="{{url('user', Auth::user()->username)}}"><i class="fa fa-user"></i> {{Auth::user()->username}}</a></li>
<li><a href="{{url('logout')}}"><i class="fa fa-times"></i> Logout</a></li>
</ul>
@else
<form action="{{action('UserController@login')}}" method="post" class="navbar-form navbar-right">
{!! csrf_field() !!}
<div class="form-group">
<input type="text" name="identifier" placeholder="Username/Email" class="form-control">
<input type="password" name="password" placeholder="Password" class="form-control">
<input type="checkbox" name="remember">
<button type="submit" class="btn btn-primary">Login</button>
<a href="{{url('register')}}" class="btn btn-success">Register</a>
</div>
</form>
@endif
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>

View File

@@ -1,3 +0,0 @@
<div class="thread_closed">
<span>Thread closed! ;__;</span>
</div>

View File

@@ -1,65 +0,0 @@
@extends('layout')
@section('content')
<div class="page-header">
<h1>{{$user->username}} <small><i class="fa fa-cloud-upload"></i> {{ $user->videos()->count() }} Uploads <i class="fa fa-commenting"></i> {{ $user->comments()->count() }} Comments</small>@if($user->is('Moderator')) <span class="pull-right" style="
color: #1FB2B0;
"><i class="fa fa-bolt"></i></span> @endif</h1>
</div>
<div class="row">
<div class="col-md-6">
<h2>Uploads</h2>
<table class="table table-hover table-condensed">
<thead>
<tr>
<th>ID</th>
<th>Interpret</th>
<th>Songtitle</th>
<th>Video Source</th>
<th>Category</th>
</tr>
</thead>
<tbody>
@foreach($user->videos as $video)
<tr>
<td><a href="{{url($video->id)}}">{{$video->id}}</a></td>
<td>{{$video->interpret or ''}}</td>
<td>{{$video->songtitle or ''}}</td>
<td>{{$video->imgsource or ''}}</td>
<td><a href="{{url($video->category->shortname)}}">{{$video->category->name}}</a></td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="col-md-6">
<h2>Favorites</h2>
<table class="table table-hover table-condensed">
<thead>
<tr>
<th>ID</th>
<th>Interpret</th>
<th>Songtitle</th>
<th>Video Source</th>
<th>Category</th>
</tr>
</thead>
<tbody>
@foreach($user->favs as $video)
<tr>
<td><a href="{{url($video->id)}}">{{$video->id}}</a></td>
<td>{{$video->interpret or ''}}</td>
<td>{{$video->songtitle or ''}}</td>
<td>{{$video->imgsource or ''}}</td>
<td><a href="{{url($video->category->shortname)}}">{{$video->category->name}}</a></td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection

View File

@@ -1,17 +0,0 @@
@extends('layout')
@section('content')
<h4>Layouts</h4>
<div class="box">
<h5>Change how you experience w0bm.com</h5>
<ul class="layout-ul">
<li><a class="nav-link layout1" style="font-size: 10px;" href="/api/user/layout?layout=1">w0bm</a>The default look</li>
<li><a class="nav-link layout2" style="font-size: 10px;" href="/api/user/layout?layout=2">Njum</a>Alternative approach</li>
<li><a class="nav-link layout3" style="font-size: 10px;" href="/api/user/layout?layout=3">z0mb</a>z0r.de layout + theme</li>
<li><a class="nav-link layout3" style="font-size: 10px;" href="/api/user/layout?layout=4">nojs</a>The nojs layout (broken)</li>
<li><a class="nav-link layout3" style="font-size: 10px;" href="/api/user/layout?layout=5">Mobile</a>The mobile optimized default layout</li>
<li><a class="nav-link layout3" style="font-size: 10px;" href="/api/user/layout?layout=6">Marderchen</a>This is marders Layout, it has no async js</li>
<li><a class="nav-link layout3" style="font-size: 10px;" href="/api/user/layout?layout=7">2017</a>The layout from 2017</li>
<li><a class="nav-link layout3" style="font-size: 10px;" href="/api/user/layout?layout=8">2015</a>The OG w0bm</li>
</ul>
</div>
@endsection

View File

@@ -1,67 +0,0 @@
@extends('layout')
@section('content')
<div class="page-header">
<h1>Upload</h1>
</div>
<div class="row">
<div class="col-md-9">
<div class="row">
<form class="form-horizontal" method="post" action="/api/video/upload" enctype="multipart/form-data">
{!! csrf_field() !!}
<div class="form-group">
<label for="interpret" class="col-sm-2 control-label">Interpret</label>
<div class="col-sm-10">
{!! Form::text('interpret', null, ['class' => 'form-control', 'placeholder' => 'Interpret']) !!}
</div>
</div>
<div class="form-group">
<label for="songtitle" class="col-sm-2 control-label">Song title</label>
<div class="col-sm-10">
{!! Form::text('songtitle', null, ['class' => 'form-control', 'placeholder' => 'Song Title']) !!}
</div>
</div>
<div class="form-group">
<label for="imgsource" class="col-sm-2 control-label">Video source</label>
<div class="col-sm-10">
{!! Form::text('imgsource', null, ['class' => 'form-control', 'placeholder' => 'Video Source']) !!}
</div>
</div>
<div class="form-group">
<label for="category" class="col-sm-2 control-label">Category</label>
<div class="col-sm-10">
<?php
$categories = [];
foreach(App\Models\Category::all() as $cat) {
$categories[$cat->id] = $cat->name;
}
?>
{!! Form::select('category', $categories, 8, ['class' => 'form-control']) !!}
</div>
</div>
<div class="form-group">
<label for="file" class="col-sm-2 control-label">File</label>
<div class="col-sm-10">
{!! Form::file('file', ['class' => 'form-control', 'placeholder' => 'Select file']) !!}
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">Upload</button> Vor dem hochladen bitte die <a href="/about">AGB</a> lesen.
</div>
</div>
</form>
</div>
</div>
<div class="col-md-3">
<div class="panel panel-primary">
<div class="panel-heading">Das Regelwerk</div>
<ul class="list-group">
<li class="list-group-item">1. WebMs müssen Ton haben!</li>
<li class="list-group-item list-group-item-danger">2. Keine Videos mit Minderjährigen die gerade ordentlich geweitet werden. Keep it legal! ;)</li>
<li class="list-group-item">3. Sei kein Hurensohn!</li>
</ul>
<div class="panel-body">Du kannst täglich 20 WebMs scheißeposten mit einer maximalen Dateigröße von 10MB.</div>
</div>
</div>
</div>
@endsection

View File

@@ -1,95 +0,0 @@
@extends('layout')
@section('content')
<?php $category = isset($category) ? $category : false ?>
<div class="vertical-align">
<div class="wrapper">
<div class="embed-responsive embed-responsive-16by9">
<video id="video" controls loop autoplay src="//w0bm.com/b/{{ $video->file }}"></video>
</div>
@if($category)
<div class="text-center" style="position: unset;">
@if(($prev = $video->getPrev(true)) === null)
<a class="first" href="#" style="visibility: hidden;">← first</a>
<a id="prev" href="#" style="visibility: hidden;">Prev</a> |
@else
<a class="first" href="{{url($video->category->shortname, $video::whereCategoryId($video->category->id)->first()->id)}}">← first</a>
<a id="prev" href="{{url($video->category->shortname, [$prev->id])}}">Prev</a> |
@endif
<a href="{{url($video->category->shortname)}}">{{$video->category->name}}</a>
@if(($next = $video->getNext(true)) === null)
| <a id="next" href="#" style="visibility: hidden;">Next</a>
<a class="last" href="#" style="visibility: hidden;">last →</a>
@else
| <a id="next" href="{{url($video->category->shortname, [$next->id])}}">Next</a>
<a class="last" href="{{url($video->category->shortname, $video::whereCategoryId($video->category->id)->max('id'))}}">last →</a>
@endif
<br><span class="videoinfo">
@if(auth()->check())
@if(auth()->user()->hasFaved($video->id))
<a id="fav" href="{{url($video->id . '/fav')}}"><i class="fa fa-heart"></i></a>
@else
<a id="fav" href="{{url($video->id . '/fav')}}"><i class="fa fa-heart-o"></i></a>
@endif
@else
<a href="{{url($video->id . '/fav')}}"><i class="fa fa-heart-o"></i></a>
@endif
<i class="fa fa-info-circle"
style="cursor: pointer"
data-toggle="popover"
data-placement="top"
data-trigger="hover"
title="Information"
data-content="
@if($video->interpret) <em>Interpret:</em> {{$video->interpret}}<br>@endif
@if($video->songtitle) <em>Songtitle:</em> {{$video->songtitle}}<br>@endif
@if($video->imgsource) <em>Video Source:</em> {{$video->imgsource}}<br>@endif
<em>Category:</em> {{$video->category->name}}"></i> uploaded by <i style="color: rgb(233, 233, 233);"><a href="{{ url('user/' . $video->user->username) }}">{{ $video->user->username }}@if($video->user->is('Moderator')) <i class="fa fa-bolt"></i>@endif</a></i>&nbsp {{ $video->created_at->diffForHumans() }}@if(auth()->check() && auth()->user()->can('delete_video')) <a data-confirm="Do you really want to delete this video?" class="btn btn-danger" href="{{url($video->id . '/delete')}}">Delete</a>@endif</span>
</div>
@else
<div class="text-center" style="position: unset;">
@if(($prev = $video->getPrev()) === null)
<a class="first" href="#" style="visibility: hidden;">← first</a>
<a id="prev" href="#" style="visibility: hidden;">← prev</a> |
@else
<a class="first" href="{{url($video->first()->id)}}">← first</a>
<a id="prev" href="{{url($prev->id)}}">← prev</a> |
@endif
<a href="{{url('/')}}">random</a>
@if(($next = $video->getNext()) === null)
| <a id="next" href="#" style="visibility: hidden;">next →</a>
<a class="last" href="#" style="visibility: hidden;">last →</a>
@else
| <a id="next" href="{{url($next->id)}}">next →</a>
<a class="last" href="{{url($video->max('id'))}}">last →</a>
@endif
<br><span class="videoinfo">
@if(auth()->check())
@if(auth()->user()->hasFaved($video->id))
<a id="fav" href="{{url($video->id . '/fav')}}"><i class="fa fa-heart"></i></a>
@else
<a id="fav" href="{{url($video->id . '/fav')}}"><i class="fa fa-heart-o"></i></a>
@endif
@else
<a href="{{url($video->id . '/fav')}}"><i class="fa fa-heart-o"></i></a>
@endif
<i class="fa fa-info-circle"
style="cursor: pointer"
data-toggle="popover"
data-placement="top"
data-trigger="hover"
title="Information"
data-content="
@if($video->interpret) <em>Interpret:</em> {{$video->interpret}}<br>@endif
@if($video->songtitle) <em>Songtitle:</em> {{$video->songtitle}}<br>@endif
@if($video->imgsource) <em>Video Source:</em> {{$video->imgsource}}<br>@endif
<em>Category:</em> {{$video->category->name}}"></i> uploaded by <i style="color: rgb(233, 233, 233);"><a href="{{ url('user/' . $video->user->username) }}">{{ $video->user->username }}@if($video->user->is('Moderator')) <i class="fa fa-bolt"></i>@endif</a></i>&nbsp {{ $video->created_at->diffForHumans() }}@if(auth()->check() && auth()->user()->can('delete_video')) <a data-confirm="Do you really want to delete this video?" class="btn btn-danger" href="{{url($video->id . '/delete')}}">Delete</a>@endif</span>
</div>
@endif
</div>
</div>
@endsection
@section('aside')
@include('partials.comments')
@endsection