document.addEventListener("DOMContentLoaded",function(event){document.getElementById('themeToggle').addEventListener('click',function(e){e.preventDefault();toggleDarkMode();});if(typeof(Storage)!=='undefined'&&localStorage.getItem('theme')==='dark') document.body.classList.add('dark');});$(document).on('change',':file',function(){var input=$(this),numFiles=input.get(0).files?input.get(0).files.length:1,label=input.val().replace(/\\/g,'/').replace(/.*\//,'');input.trigger('fileselect',[numFiles,label]);});$(document).ready(function(){var dropZone=$('#upload-drop-zone'),fileWarning=$('
').html('Invalid file selected. Please select a torrent file.').css({id:'file-warning',class:'alert alert-warning text-center',role:'alert',width:$('.form-group:first').width()+'px'}).hide().insertAfter(dropZone);$('#torrent_file:file').on('fileselect',function(event,numFiles,label){var input=$(this).parent().parent().find('input:text'),log=numFiles>1?numFiles+' files selected':label;if(label.endsWith('.torrent')){fileWarning.fadeOut('fast');}else{fileWarning.fadeIn('fast');input.val('');return false;} if(input.length){input.val(log);}else{if(log)alert(log);}});$('#image_file:file').on('fileselect',function(event,numFiles,label){var input=$(this).parent().parent().find('input:text');input.val(label);});$('body').on('dragenter',function(event){event.preventDefault();dropZone.css({'visibility':'visible','opacity':1});});dropZone.on('dragleave',function(event){event.preventDefault();$(this).css({'visibility':'hidden','opacity':0});});dropZone.on('dragover',function(event){event.preventDefault();});dropZone.on('drop dragdrop',function(event){event.preventDefault();var files=event.originalEvent.dataTransfer.files;var torrent_file_input=$('#torrent_file');torrent_file_input[0].files=files;torrent_file_input.trigger('fileselect',[files?files.length:0,torrent_file_input.val().replace(/\\/g,'/').replace(/.*\//,'')]);$(this).css({'visibility':'hidden','opacity':0});});$('.torrent-file-list a.folder').click(function(e){e.preventDefault();$(this).blur().children('i').toggleClass('fa-folder-open fa-folder');$(this).next().stop().slideToggle(250);});$('.edit-comment').click(function(e){e.preventDefault();$(this).closest('.comment').toggleClass('is-editing');});$('[data-until]').each(function(){var $this=$(this),text=$(this).text(),until=$this.data('until');var displayTimeRemaining=function(){var diff=Math.max(0,until-(Date.now()/1000)|0),min=Math.floor(diff/60),sec=diff%60;$this.text(text+' ('+min+':'+('00'+sec).slice(-2)+')');};displayTimeRemaining();setInterval(displayTimeRemaining,1000);});$('.edit-comment-box').submit(function(e){e.preventDefault();var $this=$(this),$submitButton=$this.find('[type=submit]').attr('disabled','disabled'),$waitIndicator=$this.find('.edit-waiting').show() $errorStatus=$this.find('.edit-error').empty();$.ajax({type:$this.attr('method'),url:$this.attr('action'),data:$this.serialize()}).done(function(data){var $comment=$this.closest('.comment');$comment.find('.comment-content').html(markdown.render(data.comment));$comment.toggleClass('is-editing');}).fail(function(xhr){var error=xhr.responseJSON&&xhr.responseJSON.error||'An unknown error occurred.';$errorStatus.text(error);}).always(function(){$submitButton.removeAttr('disabled');if(window.grecaptcha){window.grecaptcha.reset();} $waitIndicator.hide();});})});function _format_time_difference(seconds){var units=[["year",365*24*60*60],["month",30*24*60*60],["week",7*24*60*60],["day",24*60*60],["hour",60*60],["minute",60],["second",1]];var suffix=" ago";var prefix="";if(seconds<0){suffix="";prefix="After ";seconds=-seconds;}else if(Math.abs(seconds)<15){return"Just now"} var parts=[];for(var i=0;i0){parts.push(m.toString()+" "+scale[0]+(m==1?"":"s"));seconds-=m*scale[1];}} parts=parts.slice(0,3);return prefix+parts.join(" ")+suffix;} function _format_date(date,show_seconds){var pad=function(n){return("00"+n).slice(-2);} var ymd=date.getFullYear()+"-"+pad(date.getMonth()+1)+"-"+pad(date.getDate());var hm=pad(date.getHours())+":"+pad(date.getMinutes());var s=show_seconds?":"+pad(date.getSeconds()):"" return ymd+" "+hm+s;} document.addEventListener("DOMContentLoaded",function(event){var now_timestamp=(Date.now()/1000)|0;var timestamp_targets=document.querySelectorAll('[data-timestamp]');for(var i=0;i';} var defaultRender=markdown.renderer.rules.link_open||function(tokens,idx,options,env,self){return self.renderToken(tokens,idx,options);};markdown.renderer.rules.link_open=function(tokens,idx,options,env,self){tokens[idx].attrPush(['rel','noopener nofollow noreferrer']);return defaultRender(tokens,idx,options,env,self);} const defaultImageRender=markdown.renderer.rules.image||function(tokens,idx,options,env,self){return self.renderToken(tokens,idx,options);};markdown.renderer.rules.image=function(tokens,idx,options,env,self){function getPhotonURL(inURL){let hash=0;for(let i=0;i