commit
a85e018d33
|
@ -6,7 +6,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="./s/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="navbar"><a href="/">f0ck.me</a> | <a href="/how">how to</a> | <a href="/contact">Contact</a> | <span id="themes"></span></div>
|
||||
<div class="navbar"><a href="/">f0ck.me</a> | <a href="/how">how to</a> | <a href="/contact">Contact</a> | <span id="themes"></span></div>
|
||||
<ul id="posts" data-last="{{ last }}">
|
||||
{% for item in items %}<li class="post"><a href="./{{ item.id }}" title="{{ item.mime }}"><img class="thumb" src="./t/{{ item.id }}.png" /></a></li>
|
||||
{% endfor %}
|
||||
|
|
|
@ -10,11 +10,11 @@
|
|||
<div class="return"><a href="/" title="return to main">f0ck.me</a></div>
|
||||
<div class="controls">
|
||||
{% if next != null %}
|
||||
<a id="next" href="/{{ next }}"><<-</a> |
|
||||
<a id="next" href="/{{ next }}"><<-</a> |
|
||||
{% endif %}
|
||||
<a id="random" href="/random">random</a>
|
||||
<a id="random" href="/random">random</a>
|
||||
{% if prev != null %}
|
||||
| <a id="prev" href="/{{ prev }}">->></a>
|
||||
| <a id="prev" href="/{{ prev }}">->></a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
var load = false;
|
||||
$(()=>{
|
||||
$(window).scroll(()=>{
|
||||
if($(window).scrollTop() + $(window).height() >= $(document).height() - 130 && !load) {
|
||||
load = true;
|
||||
$.getJSON('./api/p/'+$('#posts').data('last'), (msg) => {
|
||||
var html = "";
|
||||
for(var i = 0; i < msg.items.length; i++)
|
||||
if(msg.items[i].id)
|
||||
html += "<li class=\"post\"><a href=\"./"+msg.items[i].id+"\" title=\""+msg.items[i].mime+"\"><img class=\"thumb\" src=\"./t/"+msg.items[i].id+".png\" /></a></li>\n";
|
||||
$('#posts').append(html);
|
||||
$('#posts').data('last', msg.last);
|
||||
load = false;
|
||||
});
|
||||
}
|
||||
});
|
||||
var load = false;
|
||||
$(()=>{
|
||||
$(window).scroll(()=>{
|
||||
if($(window).scrollTop() + $(window).height() >= $(document).height() - 130 && !load) {
|
||||
load = true;
|
||||
$.getJSON('./api/p/'+$('#posts').data('last'), (msg) => {
|
||||
var html = "";
|
||||
for(var i = 0; i < msg.items.length; i++)
|
||||
if(msg.items[i].id)
|
||||
html += "<li class=\"post\"><a href=\"./"+msg.items[i].id+"\" title=\""+msg.items[i].mime+"\"><img class=\"thumb\" src=\"./t/"+msg.items[i].id+".png\" /></a></li>\n";
|
||||
$('#posts').append(html);
|
||||
$('#posts').data('last', msg.last);
|
||||
load = false;
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
53
s/shit.js
53
s/shit.js
|
@ -1,29 +1,26 @@
|
|||
function arrowKeys(e) {
|
||||
switch(e.keyCode) {
|
||||
case 39:
|
||||
var prev = document.getElementById('prev');
|
||||
if(prev) prev.click();
|
||||
break;
|
||||
case 37:
|
||||
var next = document.getElementById('next');
|
||||
if(next) next.click();
|
||||
break;
|
||||
}
|
||||
function arrowKeys(e) {
|
||||
switch(e.keyCode) {
|
||||
case 39:
|
||||
var prev = document.getElementById('prev');
|
||||
if(prev) prev.click();
|
||||
break;
|
||||
case 37:
|
||||
var next = document.getElementById('next');
|
||||
if(next) next.click();
|
||||
break;
|
||||
}
|
||||
if(document.readyState == 'complete' || document.readyState == 'loaded')
|
||||
document.addEventListener('keydown', arrowKeys);
|
||||
else {
|
||||
if(/Chrome/i.test(navigator.userAgent))
|
||||
window.addEventListener('load', function () {
|
||||
document.addEventListener('keydown', arrowKeys);
|
||||
});
|
||||
else
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
document.addEventListener('keydown', arrowKeys);
|
||||
});
|
||||
}
|
||||
|
||||
var x = document.getElementById("player");
|
||||
if(x) {
|
||||
x.volume = 0.3;
|
||||
}
|
||||
}
|
||||
if(document.readyState == 'complete' || document.readyState == 'loaded')
|
||||
document.addEventListener('keydown', arrowKeys);
|
||||
else {
|
||||
if(/Chrome/i.test(navigator.userAgent))
|
||||
window.addEventListener('load', function () {
|
||||
document.addEventListener('keydown', arrowKeys);
|
||||
});
|
||||
else
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
document.addEventListener('keydown', arrowKeys);
|
||||
});
|
||||
}
|
||||
if(x = document.getElementById("player"))
|
||||
x.volume = 0.3;
|
135
s/theme.js
135
s/theme.js
|
@ -1,5 +1,4 @@
|
|||
/* Thanks to StephenLynx, I modified his Theme Changer from the Penumbra Lynx Frontend for the Lynxchan Software https://gitgud.io/LynxChan/LynxChan and reused it to make f0ck a nicer place. */
|
||||
|
||||
var themes = [ {
|
||||
file : 'cyber.css',
|
||||
label : 'Cyber',
|
||||
|
@ -13,109 +12,69 @@ var themes = [ {
|
|||
label : 'TERM',
|
||||
id : 'TERM'
|
||||
}];
|
||||
|
||||
var customCss;
|
||||
var addedTheme;
|
||||
|
||||
function updateCss() {
|
||||
|
||||
if (addedTheme) {
|
||||
addedTheme.parentNode.removeChild(addedTheme);
|
||||
addedTheme = null;
|
||||
}
|
||||
|
||||
for (var i = 0; i < themes.length; i++) {
|
||||
var theme = themes[i];
|
||||
|
||||
if (theme.id === localStorage.selectedTheme) {
|
||||
addedTheme = theme.element;
|
||||
document.head.insertBefore(theme.element, customCss);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (var i = 0; i < document.head.children.length; i++) {
|
||||
var element = document.head.children[i];
|
||||
|
||||
if (element.rel === 'stylesheet'
|
||||
&& element.href.indexOf('/custom.css') > -1) {
|
||||
|
||||
customCss = element;
|
||||
break;
|
||||
for (var i = 0; i < document.head.children.length; i++) {
|
||||
var element = document.head.children[i];
|
||||
if (element.rel === 'stylesheet' && element.href.indexOf('/custom.css') > -1) {
|
||||
customCss = element;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < themes.length; i++) {
|
||||
themes[i].element = document.createElement('link');
|
||||
themes[i].element.type = 'text/css';
|
||||
themes[i].element.rel = 'stylesheet';
|
||||
themes[i].element.href = './s/' + themes[i].file;
|
||||
}
|
||||
updateCss();
|
||||
var postingLink = document.getElementById('themes');
|
||||
if (postingLink) {
|
||||
var divider = document.createElement('span');
|
||||
divider.innerHTML = '';
|
||||
var referenceNode = postingLink.nextSibling;
|
||||
postingLink.parentNode.insertBefore(divider, referenceNode);
|
||||
var themeSelector = document.createElement('select');
|
||||
themeSelector.id = 'themeSelector';
|
||||
var vanillaOption = document.createElement('option');
|
||||
vanillaOption.innerHTML = 'Default';
|
||||
themeSelector.appendChild(vanillaOption);
|
||||
for (i = 0; i < themes.length; i++) {
|
||||
var theme = themes[i];
|
||||
var themeOption = document.createElement('option');
|
||||
themeOption.innerHTML = theme.label;
|
||||
if (theme.id === localStorage.selectedTheme) {
|
||||
themeOption.selected = true;
|
||||
}
|
||||
|
||||
themeSelector.appendChild(themeOption);
|
||||
}
|
||||
|
||||
for (var i = 0; i < themes.length; i++) {
|
||||
themes[i].element = document.createElement('link');
|
||||
themes[i].element.type = 'text/css';
|
||||
themes[i].element.rel = 'stylesheet';
|
||||
themes[i].element.href = './s/' + themes[i].file;
|
||||
}
|
||||
|
||||
updateCss();
|
||||
|
||||
var postingLink = document.getElementById('themes');
|
||||
|
||||
if (postingLink) {
|
||||
|
||||
var divider = document.createElement('span');
|
||||
divider.innerHTML = '';
|
||||
|
||||
var referenceNode = postingLink.nextSibling;
|
||||
|
||||
postingLink.parentNode.insertBefore(divider, referenceNode);
|
||||
|
||||
var themeSelector = document.createElement('select');
|
||||
themeSelector.id = 'themeSelector';
|
||||
|
||||
var vanillaOption = document.createElement('option');
|
||||
vanillaOption.innerHTML = 'Default';
|
||||
themeSelector.appendChild(vanillaOption);
|
||||
|
||||
for (i = 0; i < themes.length; i++) {
|
||||
|
||||
var theme = themes[i];
|
||||
|
||||
var themeOption = document.createElement('option');
|
||||
themeOption.innerHTML = theme.label;
|
||||
|
||||
if (theme.id === localStorage.selectedTheme) {
|
||||
themeOption.selected = true;
|
||||
themeSelector.onchange = function() {
|
||||
if (!themeSelector.selectedIndex) {
|
||||
if (localStorage.selectedTheme) {
|
||||
delete localStorage.selectedTheme;
|
||||
updateCss();
|
||||
}
|
||||
|
||||
themeSelector.appendChild(themeOption);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
themeSelector.onchange = function() {
|
||||
|
||||
if (!themeSelector.selectedIndex) {
|
||||
|
||||
if (localStorage.selectedTheme) {
|
||||
|
||||
delete localStorage.selectedTheme;
|
||||
|
||||
updateCss();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var selectedTheme = themes[themeSelector.selectedIndex - 1];
|
||||
|
||||
if (selectedTheme.id === localStorage.selectedTheme) {
|
||||
return;
|
||||
}
|
||||
|
||||
localStorage.selectedTheme = selectedTheme.id;
|
||||
|
||||
updateCss();
|
||||
|
||||
};
|
||||
|
||||
postingLink.parentNode.insertBefore(themeSelector, referenceNode);
|
||||
|
||||
}
|
||||
|
||||
var selectedTheme = themes[themeSelector.selectedIndex - 1];
|
||||
if (selectedTheme.id === localStorage.selectedTheme) {
|
||||
return;
|
||||
}
|
||||
localStorage.selectedTheme = selectedTheme.id;
|
||||
updateCss();
|
||||
};
|
||||
postingLink.parentNode.insertBefore(themeSelector, referenceNode);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user