Switch between pictures,full-height pictures in timeline,remove duplicated threads,many small bugfixes

This commit is contained in:
nipos 2019-03-01 16:17:03 +01:00
parent 1a3f6a3ddf
commit 068546b84e
11 changed files with 171 additions and 42 deletions

View File

@ -26,6 +26,7 @@ We moved our instances list to a wiki page: https://notabug.org/halcyon-suite/ha
or read our new documentation pages to install it manually: https://www.halcyon.social/documentation.php?page=install or read our new documentation pages to install it manually: https://www.halcyon.social/documentation.php?page=install
## Blog ## Blog
- Release of Version 2.2.4 - Easily switch between pictures in overlay,show pictures in full height in timeline,duplicated threads removed,many smaller bugfixes
- Release of Version 2.2.3 - Fixed login with Pleroma,fixed compatibility with Pawoo (older Mastodon),added support for prefers-color-scheme,some more fixes - Release of Version 2.2.3 - Fixed login with Pleroma,fixed compatibility with Pawoo (older Mastodon),added support for prefers-color-scheme,some more fixes
- Our new information website [halcyon.social](https://www.halcyon.social) came online - Our new information website [halcyon.social](https://www.halcyon.social) came online
- Release of Version 2.2.2 - Fix autocomplete,fix double scrollbars in overlay,add emojis at cursor position,confirm when closing compose window,add czech translation - Release of Version 2.2.2 - Fix autocomplete,fix double scrollbars in overlay,add emojis at cursor position,confirm when closing compose window,add czech translation

View File

@ -872,6 +872,10 @@ position: relative;
box-sizing: border-box; box-sizing: border-box;
border: 1px solid #DCDFE1; border: 1px solid #DCDFE1;
} }
.media_views.media_full_height {
height:auto;
min-height:336px;
}
.media_views .media_attachment { .media_views .media_attachment {
overflow: hidden; overflow: hidden;
width: 100%; width: 100%;
@ -955,6 +959,21 @@ height: calc( 100% / 3 );
.media_views[media_length="4"] .media_attachments_right .media_attachment[mediacount="3"] { .media_views[media_length="4"] .media_attachments_right .media_attachment[mediacount="3"] {
padding-bottom: 0; padding-bottom: 0;
} }
.media_backward,.media_forward {
color:#CCCCCC;
position:absolute;
top:50%;
cursor:pointer;
}
.media_backward {
left:-50px;
}
.media_forward {
right:-50px;
}
.media_backward:hover,.media_forward:hover {
color:#FFFFFF;
}
.timeline .notice_entry { .timeline .notice_entry {
padding: 10px 12px 10px 70px; padding: 10px 12px 10px 70px;
font-size: 14px; font-size: 14px;
@ -2258,7 +2277,6 @@ padding: 12px;
.toot_entry.descendants_status .toot_entry_body::after { .toot_entry.descendants_status .toot_entry_body::after {
content: ""; content: "";
display: block; display: block;
border: 2px solid #76BFEC;
position: absolute; position: absolute;
border-radius: 2px; border-radius: 2px;
position: absolute; position: absolute;
@ -2266,6 +2284,10 @@ left: 62px;
height: calc(100% - 57px); height: calc(100% - 57px);
top: 68px; top: 68px;
} }
.toot_entry.ancestors_status .toot_entry_body::after,
.toot_entry.descendants_status.direct_answer .toot_entry_body::after {
border: 2px solid #76BFEC;
}
.toot_entry.ancestors_status.default_padding .toot_entry_body::after, .toot_entry.ancestors_status.default_padding .toot_entry_body::after,
.toot_entry.descendants_status.default_padding .toot_entry_body::after { .toot_entry.descendants_status.default_padding .toot_entry_body::after {
left: 35px; left: 35px;

View File

@ -207,6 +207,12 @@ $("#setting_show_content_warning")[0].checked = true;
if(localStorage.setting_show_nsfw == "true") { if(localStorage.setting_show_nsfw == "true") {
$("#setting_show_nsfw")[0].checked = true; $("#setting_show_nsfw")[0].checked = true;
} }
if(localStorage.setting_full_height == "true") {
$("#setting_full_height")[0].checked = true;
}
if(localStorage.setting_thread_view == "true") {
$("#setting_thread_view")[0].checked = true;
}
}); });
$(document).on('change',".post_streaming_wrap input[name='post_streaming']:checked", function(e) { $(document).on('change',".post_streaming_wrap input[name='post_streaming']:checked", function(e) {
localStorage.setItem("setting_post_stream", $(this).val()); localStorage.setItem("setting_post_stream", $(this).val());
@ -330,6 +336,26 @@ localStorage.setItem("setting_show_nsfw","false");
putMessage(__("NSFW content hidden")); putMessage(__("NSFW content hidden"));
} }
}); });
$("#setting_full_height").change(function() {
if(this.checked) {
localStorage.setItem("setting_full_height","true");
putMessage(__("Pictures shown in full height"));
}
else {
localStorage.setItem("setting_full_height","false");
putMessage(__("Pictures shown in default height"));
}
});
$("#setting_thread_view").change(function() {
if(this.checked) {
localStorage.setItem("setting_thread_view","true");
putMessage(__("Threads shown in thread view"));
}
else {
localStorage.setItem("setting_thread_view","false");
putMessage(__("Threads shown in chronological order"));
}
});
} }
else if(window.location.pathname == "/settings/filters") { else if(window.location.pathname == "/settings/filters") {
$('#js-settings_nav_filters').toggleClass('view'); $('#js-settings_nav_filters').toggleClass('view');

View File

@ -1,18 +1,24 @@
function mediaattachments_template(status) { function mediaattachments_template(status) {
let media_views = ""; let media_views = "";
var border = ""; var border = "";
var mvfullheight = "";
var dsplength = status.media_attachments.length;
if(status.media_attachments[0].remote_url != null) { if(status.media_attachments[0].remote_url != null) {
status.media_attachments[0].url = status.media_attachments[0].remote_url; status.media_attachments[0].url = status.media_attachments[0].remote_url;
} }
if(status.media_attachments[0].type === "video" && localStorage.setting_play_video != "false") border = ' style="border:0;border-radius:0"'; if(status.media_attachments[0].type === "video" && localStorage.setting_play_video != "false") border = ' style="border:0;border-radius:0"';
if(localStorage.setting_full_height == "true") {
mvfullheight = " media_full_height";
dsplength = "1";
}
if(status.media_attachments[0].url === "/files/original/missing.png") { if(status.media_attachments[0].url === "/files/original/missing.png") {
return ""; return "";
} }
else if(!status.sensitive || localStorage.setting_show_nsfw == "true") { else if(!status.sensitive || localStorage.setting_show_nsfw == "true") {
media_views = `<div class='media_views' sid="${status.id}" media_length='${status.media_attachments.length}'${border}>`; media_views = `<div class='media_views${mvfullheight}' sid="${status.id}" media_length='${dsplength}'${border}>`;
} }
else { else {
media_views = `<div class='media_views sensitive' media_length='${status.media_attachments.length}'${border}> media_views = `<div class='media_views sensitive${mvfullheight}' media_length='${dsplength}'${border}>
<div class='sensitive_alart'> <div class='sensitive_alart'>
<span class="text1">${__('Sensitive content')}</span> <span class="text1">${__('Sensitive content')}</span>
<span class="text2">${__('Click to view')}</span> <span class="text2">${__('Click to view')}</span>
@ -1202,7 +1208,7 @@ const html=$(`
<div class="icon_box"> <div class="icon_box">
<img src="${status.reblog.account.avatar}"> <img src="${status.reblog.account.avatar}">
</div> </div>
<a href="${status_account_link}"> <a href="${status_reblog_account_link}">
<span class="displayname emoji_poss"> <span class="displayname emoji_poss">
${status.reblog.account.display_name} ${status.reblog.account.display_name}
</span> </span>
@ -1341,21 +1347,34 @@ html.find(".toot_article").append(media_views);
return html return html
} }
} }
function media_template(status, mediaURL) { function media_template(status,media) {
if ( !status ) { if(!status) {
const html = (` const html = (`
<div class="media_detail"> <div class="media_detail">
<div class="media_box"> <div class="media_box">
<img src="${mediaURL}" /> <img src="${media}">
</div> </div>
</div>`); </div>`);
return $(html) return $(html)
} else { }
else {
var pictures = new Array;
var hidebackward = "";
var hideforward ="";
for(var i=0;i<status.media_attachments.length;i++) {
if(status.media_attachments[i].remote_url != null) {
status.media_attachments[i].url = status.media_attachments[i].remote_url;
pictures.push(status.media_attachments[i].url);
}
}
if(media == 0) hidebackward = " style='display:none'";
if(media == status.media_attachments.length-1) hideforward = " style='display:none'";
const status_template = timeline_template(status).html(), const status_template = timeline_template(status).html(),
html = (` html = (`<div class="media_detail" pictures='${JSON.stringify(pictures)}' cid="${media}">
<div class="media_detail">
<div class="media_box"> <div class="media_box">
<img src="${mediaURL}" /> <span class="media_backward"${hidebackward}><i class="fa fa-2x fa-chevron-left"></i></span>
<img src="${status.media_attachments[media].url}">
<span class="media_forward"${hideforward}><i class="fa fa-2x fa-chevron-right"></i></span>
</div> </div>
<div class="toot_entry" sid="${status.id}"> <div class="toot_entry" sid="${status.id}">
${status_template} ${status_template}

View File

@ -281,7 +281,7 @@ if(load_options === undefined) {
var load_options = []; var load_options = [];
} }
api.get(level, load_options, function(statuses) { api.get(level, load_options, function(statuses) {
let reply_sources = {}; timeline_hide_status = new Array;
for(let i in statuses) { for(let i in statuses) {
var filterstatus = false; var filterstatus = false;
for(var a=0;a<current_filters.length;a++) { for(var a=0;a<current_filters.length;a++) {
@ -297,25 +297,31 @@ if(statuses[i].content.match(new RegExp("[^a-zA-Z1-9]"+current_filters[a].phrase
if(filterstatus == false && !(show_replies == "false" && statuses[i].in_reply_to_id) && !(localStorage.setting_show_bots == "false" && statuses[i].account.bot == true && !level.match(/accounts\/\d+\/statuses/)) && !(statuses[i].visibility == "direct" && level == "timelines/home")) { if(filterstatus == false && !(show_replies == "false" && statuses[i].in_reply_to_id) && !(localStorage.setting_show_bots == "false" && statuses[i].account.bot == true && !level.match(/accounts\/\d+\/statuses/)) && !(statuses[i].visibility == "direct" && level == "timelines/home")) {
timeline_template(statuses[i]).appendTo("#js-timeline"); timeline_template(statuses[i]).appendTo("#js-timeline");
if(statuses[i].in_reply_to_id && level === "timelines/home" | level === "timelines/public") { if(statuses[i].in_reply_to_id && level === "timelines/home" | level === "timelines/public") {
if(!reply_sources[statuses[i].in_reply_to_id] & !$(".toot_entry[sid='"+statuses[i].in_reply_to_id+"']").length) { if(localStorage.setting_thread_view == "true") {
reply_sources[statuses[i].in_reply_to_id] = statuses[i].id; (function(this_id) {
api.get('statuses/'+statuses[i].in_reply_to_id, function(in_reply_statuses) { api.get('statuses/'+statuses[i].id+"/context", function(context) {
console.log(this_id);
for(var b=0;b<context.ancestors.length;b++) {
var filterreplystatus = false; var filterreplystatus = false;
for(var a=0;a<current_filters.length;a++) { for(var a=0;a<current_filters.length;a++) {
if(current_filters[a].context.indexOf("thread") != -1) { if(current_filters[a].context.indexOf("thread") != -1) {
if(current_filters[a].whole_word == false) { if(current_filters[a].whole_word == false) {
if(in_reply_statuses.content.match(new RegExp(current_filters[a].phrase))) filterreplystatus = true; if(context.ancestors[b].content.match(new RegExp(current_filters[a].phrase))) filterreplystatus = true;
} }
else { else {
if(in_reply_statuses.content.match(new RegExp("[^a-zA-Z1-9]"+current_filters[a].phrase+"[^a-zA-Z1-9]"))) filterreplystatus = true; if(context.ancestors[b].content.match(new RegExp("[^a-zA-Z1-9]"+current_filters[a].phrase+"[^a-zA-Z1-9]"))) filterreplystatus = true;
} }
} }
} }
if(filterreplystatus == false) { if(filterreplystatus == false) {
$("#js-timeline .toot_entry[sid='"+reply_sources[in_reply_statuses.id]+"']").before(context_template(in_reply_statuses, 'ancestors_status default_padding')); $("#js-timeline .toot_entry[sid='"+context.ancestors[b].id+"']").remove();
$("#js-timeline .toot_entry[sid='"+this_id+"']").before(context_template(context.ancestors[b], 'ancestors_status default_padding'));
timeline_hide_status.push(context.ancestors[b].id);
replace_emoji(); replace_emoji();
} }
}
}); });
})(statuses[i].id);
} }
} }
} }
@ -335,7 +341,6 @@ isSyncing = true;
load_options.unshift( {name:"max_id",data:links['next'].match(/max_id=(.+)&?/)[1]} ); load_options.unshift( {name:"max_id",data:links['next'].match(/max_id=(.+)&?/)[1]} );
api.get(level, load_options, function(statuses) { api.get(level, load_options, function(statuses) {
if (statuses.length) { if (statuses.length) {
let reply_sources = {};
for(let i in statuses) { for(let i in statuses) {
var filterstatus = false; var filterstatus = false;
for(var a=0;a<current_filters.length;a++) { for(var a=0;a<current_filters.length;a++) {
@ -348,28 +353,34 @@ if(statuses[i].content.match(new RegExp("[^a-zA-Z1-9]"+current_filters[a].phrase
} }
} }
} }
if(filterstatus == false && !(show_replies == "false" && statuses[i].in_reply_to_id) && !(localStorage.setting_show_bots == "false" && statuses[i].account.bot == true && !level.match(/accounts\/\d+\/statuses/)) && !(statuses[i].visibility == "direct" && level == "timelines/home")) { if(filterstatus == false && timeline_hide_status.indexOf(statuses[i]) == -1 && !(show_replies == "false" && statuses[i].in_reply_to_id) && !(localStorage.setting_show_bots == "false" && statuses[i].account.bot == true && !level.match(/accounts\/\d+\/statuses/)) && !(statuses[i].visibility == "direct" && level == "timelines/home")) {
timeline_template(statuses[i]).appendTo("#js-timeline"); timeline_template(statuses[i]).appendTo("#js-timeline");
if(statuses[i].in_reply_to_id && level === "timelines/home" | level === "timelines/public") { if(statuses[i].in_reply_to_id && level === "timelines/home" | level === "timelines/public") {
if(!reply_sources[statuses[i].in_reply_to_id] & !$(".toot_entry[sid='"+statuses[i].in_reply_to_id+"']").length) { if(localStorage.setting_thread_view == "true") {
reply_sources[statuses[i].in_reply_to_id] = statuses[i].id; (function(this_id) {
api.get('statuses/'+statuses[i].in_reply_to_id, function(in_reply_statuses) { api.get('statuses/'+statuses[i].id+"/context", function(context) {
console.log(this_id);
for(var b=0;b<context.ancestors.length;b++) {
var filterreplystatus = false; var filterreplystatus = false;
for(var a=0;a<current_filters.length;a++) { for(var a=0;a<current_filters.length;a++) {
if(current_filters[a].context.indexOf("thread") != -1) { if(current_filters[a].context.indexOf("thread") != -1) {
if(current_filters[a].whole_word == false) { if(current_filters[a].whole_word == false) {
if(in_reply_statuses.content.match(new RegExp(current_filters[a].phrase))) filterreplystatus = true; if(context.ancestors[b].content.match(new RegExp(current_filters[a].phrase))) filterreplystatus = true;
} }
else { else {
if(in_reply_statuses.content.match(new RegExp("[^a-zA-Z1-9]"+current_filters[a].phrase+"[^a-zA-Z1-9]"))) filterreplystatus = true; if(context.ancestors[b].content.match(new RegExp("[^a-zA-Z1-9]"+current_filters[a].phrase+"[^a-zA-Z1-9]"))) filterreplystatus = true;
} }
} }
} }
if(filterreplystatus == false) { if(filterreplystatus == false) {
$("#js-timeline .toot_entry[sid='"+reply_sources[in_reply_statuses.id]+"']").before(context_template(in_reply_statuses, 'ancestors_status default_padding')); $("#js-timeline .toot_entry[sid='"+context.ancestors[b].id+"']").remove();
$("#js-timeline .toot_entry[sid='"+this_id+"']").before(context_template(context.ancestors[b], 'ancestors_status default_padding'));
timeline_hide_status.push(context.ancestors[b].id);
replace_emoji(); replace_emoji();
} }
}
}); });
})(statuses[i].id);
} }
} }
} }
@ -1120,7 +1131,12 @@ if(status.descendants[i].content.match(new RegExp("[^a-zA-Z1-9]"+current_filters
} }
} }
} }
if(filterreplystatus == false) context_template(status.descendants[i], 'descendants_status').appendTo("#js-overlay_content .temporary_object .toot_detail_wrap"); if(filterreplystatus == false) {
if(i < status.descendants.length-1 && status.descendants[i].id == status.descendants[parseInt(i)+1].in_reply_to_id) {
context_template(status.descendants[i], 'descendants_status direct_answer').appendTo("#js-overlay_content .temporary_object .toot_detail_wrap");
}
else context_template(status.descendants[i], 'descendants_status').appendTo("#js-overlay_content .temporary_object .toot_detail_wrap");
}
} }
} }
replaceInternalLink(); replaceInternalLink();
@ -1140,18 +1156,19 @@ $(document).on('click','.toot_entry', function(e) {
setOverlayStatus($(this).attr('sid')); setOverlayStatus($(this).attr('sid'));
}); });
}) })
function setOverlayMedia(sid,url) { function setOverlayMedia(sid,mediacount) {
$("#js-overlay_content .temporary_object").empty(); $("#js-overlay_content .temporary_object").empty();
$('#js-overlay_content_wrap').addClass('view'); $('#js-overlay_content_wrap').addClass('view');
$('#js-overlay_content_wrap').addClass('black_08'); $('#js-overlay_content_wrap').addClass('black_08');
$('#js-overlay_content .temporary_object').addClass('visible'); $('#js-overlay_content .temporary_object').addClass('visible');
api.get("statuses/"+sid, function(status) { api.get("statuses/"+sid, function(status) {
if ( !status.reblog ) { if(!status.reblog) {
media_template(status, url).appendTo("#js-overlay_content .temporary_object"); media_template(status,mediacount).appendTo("#js-overlay_content .temporary_object");
replaceInternalLink(); replaceInternalLink();
replace_emoji(); replace_emoji();
} else { }
media_template(status.reblog, url).appendTo("#js-overlay_content .temporary_object"); else {
media_template(status.reblog,mediacount).appendTo("#js-overlay_content .temporary_object");
replaceInternalLink(); replaceInternalLink();
replace_emoji(); replace_emoji();
} }
@ -1160,7 +1177,7 @@ replace_emoji();
$(function() { $(function() {
$(document).on('click','.media_attachment[otype="image"]', function(e) { $(document).on('click','.media_attachment[otype="image"]', function(e) {
e.stopPropagation(); e.stopPropagation();
setOverlayMedia($(this).attr('sid'),$(this).attr('url')); setOverlayMedia($(this).attr('sid'),$(this).attr('mediacount'));
$('.media_detail .toot_entry .media_views').addClass('invisible'); $('.media_detail .toot_entry .media_views').addClass('invisible');
}); });
}) })
@ -1471,7 +1488,9 @@ $('#header_status_form .status_textarea textarea').trigger({"type":"keyup","key"
} }
$('#header_status_form .status_bottom').removeClass('invisible'); $('#header_status_form .status_bottom').removeClass('invisible');
$('#header_status_form .submit_status_label').addClass('active_submit_button'); $('#header_status_form .submit_status_label').addClass('active_submit_button');
$('#header_status_form .character_count').html(current_instance_charlimit); const textCount = $('#header_status_form textarea').val().length + $('#header_status_form .status_spoiler').val().length;
let textLen = (current_instance_charlimit - textCount);
$('#header_status_form .character_count').html(textLen);
$('#header_status_emoji').lsxEmojiPicker({ $('#header_status_emoji').lsxEmojiPicker({
closeOnSelect:true, closeOnSelect:true,
twemoji:!checkEmojiSupport(), twemoji:!checkEmojiSupport(),
@ -1601,7 +1620,9 @@ $('#reply_status_form .status_textarea textarea').trigger({"type":"keyup","key":
$('#reply_status_form .status_bottom').removeClass('invisible'); $('#reply_status_form .status_bottom').removeClass('invisible');
$('#reply_status_form .submit_status_label').addClass('active_submit_button'); $('#reply_status_form .submit_status_label').addClass('active_submit_button');
$('#reply_status_form textarea').val(replyto); $('#reply_status_form textarea').val(replyto);
$('#reply_status_form .character_count').html(current_instance_charlimit); const textCount = $('#reply_status_form textarea').val().length + $('#reply_status_form .status_spoiler').val().length;
let textLen = (current_instance_charlimit - textCount);
$('#reply_status_form .character_count').html(textLen);
$('label[for=reply_status_emoji]').click(function(e) {$('#reply_status_emoji').trigger('click',e)}); $('label[for=reply_status_emoji]').click(function(e) {$('#reply_status_emoji').trigger('click',e)});
$('#reply_status_emoji').lsxEmojiPicker({ $('#reply_status_emoji').lsxEmojiPicker({
closeOnSelect:true, closeOnSelect:true,
@ -1787,7 +1808,9 @@ $('#single_reply_status_form .expand_privacy_menu_button > i').attr('class', "fa
$('#single_reply_status_form').attr('tid',sid); $('#single_reply_status_form').attr('tid',sid);
$('.single_reply_status .single_reply_status_header span').addClass("emoji_poss").html(__("Reply to")+" "+display_name); $('.single_reply_status .single_reply_status_header span').addClass("emoji_poss").html(__("Reply to")+" "+display_name);
$('#single_reply_status_form textarea').val(replyto); $('#single_reply_status_form textarea').val(replyto);
$('#single_reply_status_form .character_count').html(current_instance_charlimit); const textCount = $('#single_reply_status_form textarea').val().length + $('#single_reply_status_form .status_spoiler').val().length;
let textLen = (current_instance_charlimit - textCount);
$('#single_reply_status_form .character_count').html(textLen);
$('#single_reply_status_emoji').lsxEmojiPicker({ $('#single_reply_status_emoji').lsxEmojiPicker({
closeOnSelect:true, closeOnSelect:true,
twemoji:!checkEmojiSupport(), twemoji:!checkEmojiSupport(),
@ -2126,6 +2149,18 @@ $("#js-overlay_content_wrap").attrchange(function(attr) {
if(attr == "class" && $("#js-overlay_content_wrap").hasClass("view")) $(document.body).css("overflow-y","hidden"); if(attr == "class" && $("#js-overlay_content_wrap").hasClass("view")) $(document.body).css("overflow-y","hidden");
else $(document.body).css("overflow-y","auto"); else $(document.body).css("overflow-y","auto");
}); });
$(document).on("click",".media_detail .media_backward",function() {
$(".media_detail").attr("cid",$(".media_detail").attr("cid")-1);
if($(".media_detail").attr("cid") == 0) $(".media_detail .media_backward").fadeOut();
$(".media_detail .media_forward").fadeIn();
$(".media_detail .media_box img").attr("src",JSON.parse($(".media_detail").attr("pictures"))[$(".media_detail").attr("cid")]);
});
$(document).on("click",".media_detail .media_forward",function() {
$(".media_detail").attr("cid",parseInt($(".media_detail").attr("cid"))+1);
if($(".media_detail").attr("cid") == JSON.parse($(".media_detail").attr("pictures")).length-1) $(".media_detail .media_forward").fadeOut();
$(".media_detail .media_backward").fadeIn();
$(".media_detail .media_box img").attr("src",JSON.parse($(".media_detail").attr("pictures"))[$(".media_detail").attr("cid")]);
});
shortcut.add("n",function() { shortcut.add("n",function() {
$("#creat_status").click(); $("#creat_status").click();
},{ },{

View File

@ -19,7 +19,8 @@ $this->instances[$domain] = $res['html'];
file_put_contents($this->datadir."/".substr($domain,8).".txt",json_encode(array("client_id" => $res['html']['client_id'],"client_secret" => $res['html']['client_secret']))); file_put_contents($this->datadir."/".substr($domain,8).".txt",json_encode(array("client_id" => $res['html']['client_id'],"client_secret" => $res['html']['client_secret'])));
} }
else { else {
throw new Exception("Invalid instance"); header("Location: /login/?cause=domain");
die();
} }
} }
public function selectInstance($domain) { public function selectInstance($domain) {

View File

@ -44,6 +44,8 @@ localStorage.setItem('setting_show_replies', 'true');
localStorage.setItem('setting_show_bots', 'true'); localStorage.setItem('setting_show_bots', 'true');
localStorage.setItem('setting_show_content_warning', 'false'); localStorage.setItem('setting_show_content_warning', 'false');
localStorage.setItem('setting_show_nsfw', 'false'); localStorage.setItem('setting_show_nsfw', 'false');
localStorage.setItem('setting_full_height', 'false');
localStorage.setItem('setting_thread_view', 'true');
localStorage.setItem('setting_compose_autocomplete', 'true'); localStorage.setItem('setting_compose_autocomplete', 'true');
localStorage.setItem('setting_play_gif','true'); localStorage.setItem('setting_play_gif','true');
localStorage.setItem('setting_play_video','true'); localStorage.setItem('setting_play_video','true');

View File

@ -209,7 +209,7 @@ var cause = "<?= htmlspecialchars((string)filter_input(INPUT_GET, 'cause'), ENT_
if(cause === "domain") { if(cause === "domain") {
$('.login_form_main').addClass('error'); $('.login_form_main').addClass('error');
$('.session_aleart').removeClass('invisible'); $('.session_aleart').removeClass('invisible');
$('.session_aleart > span').text('This instance does not exsist.'); $('.session_aleart > span').text('This instance does not exist.');
} }
}); });
$(document).on('click','.login_form_main', function(e) { $(document).on('click','.login_form_main', function(e) {

View File

@ -59,7 +59,7 @@ private $itag_ext = array(
function __construct(){ function __construct(){
$this->cache_dir = dirname(__FILE__).'/.cache'; $this->cache_dir = dirname(__FILE__).'/.cache';
$this->cookie_dir = sys_get_temp_dir(); $this->cookie_dir = sys_get_temp_dir();
if(!file_exists($this->cache_dir)) { if(!file_exists($this->cache_dir) && is_writeable(dirname(__FILE__))) {
mkdir($this->cache_dir,0755); mkdir($this->cache_dir,0755);
} }
} }
@ -95,7 +95,7 @@ $vInfo['ChannelName'] = $videoData['author'];
$vInfo['ChannelId'] = $videoData['ucid']; $vInfo['ChannelId'] = $videoData['ucid'];
$vInfo['Thumbnail'] = str_replace('default', 'maxresdefault', $videoData['thumbnail_url']); $vInfo['Thumbnail'] = str_replace('default', 'maxresdefault', $videoData['thumbnail_url']);
$vInfo['Duration'] = $videoData['length_seconds']; $vInfo['Duration'] = $videoData['length_seconds'];
$vInfo['Rating'] = $videoData['avg_rating']; //$vInfo['Rating'] = $videoData['avg_rating'];
} }
if (isset($videoData['url_encoded_fmt_stream_map']) && isset($videoData['adaptive_fmts'])) { if (isset($videoData['url_encoded_fmt_stream_map']) && isset($videoData['adaptive_fmts'])) {
$draft1 = explode(',',$videoData['url_encoded_fmt_stream_map']); $draft1 = explode(',',$videoData['url_encoded_fmt_stream_map']);
@ -177,6 +177,7 @@ return unserialize(file_get_contents($cache_player));
$js_code = $this->curlGet($playerLink); $js_code = $this->curlGet($playerLink);
$instructions = $this->sig_js_decode($js_code); $instructions = $this->sig_js_decode($js_code);
if($instructions){ if($instructions){
if(file_exists($this->cache_dir) && is_writeable($this->cache_dir))
file_put_contents($cache_player, serialize($instructions)); file_put_contents($cache_player, serialize($instructions));
return $instructions; return $instructions;
} }
@ -252,4 +253,4 @@ return $r[0];
} }
return ''; return '';
} }
} }

View File

@ -101,6 +101,28 @@
</div> </div>
</div> </div>
</div> </div>
<div style="float:left;width:50%;text-align:right;margin-top:16px">
<h3><?=_('Show pictures in full height')?></h3>
</div>
<div class="full_height_wrap" style="float:left;width:50%">
<div class="switch">
<input type="checkbox" id="setting_full_height">
<div class="switch-btn">
<span></span>
</div>
</div>
</div>
<div style="float:left;width:50%;text-align:right;margin-top:16px">
<h3><?=_('Show threads in thread view in timeline')?></h3>
</div>
<div class="thread_view_wrap" style="float:left;width:50%">
<div class="switch">
<input type="checkbox" id="setting_thread_view">
<div class="switch-btn">
<span></span>
</div>
</div>
</div>
<span style="visibility:hidden">-</span> <span style="visibility:hidden">-</span>
</div> </div>
</article> </article>

View File

@ -1 +1 @@
2.2.3 2.2.4