Topic: [Feature] Get rid of "Popular" section

Posted under Site Bug Reports & Feature Requests

Requested feature overview description.
Get rid of all the "Popular" sections.

Possibly bring up "advanced" search page, similar to something like google. This would then still allow users to search this content with ease without knowing how to use metatags to full extend. I'm certain this can teach users to use search function better and many find it easier to use mouse driven interface.

Or alternatively simply forward the thing to order:score date:today search directly instead.

Why would it be useful?
This part of the site is plain bad.

Because the page is reset at the exact time every day, this means there are users and artists who deliberately try to aim to this time window to get their posts bumped higher up. This to me has always felt like taking advantage of the system.

Only aspect what determines popularity is the amount of votes. Favorites, comments, views or anything else doesn't contribute to the post being popular. Because of this, the page becomes order:score date:* where we come to full list of issues:

  • There's 32 results in total. There's no button to see more or to get to page with search results. That means that if the post was 33th, then tough luck you aren't seeing it in any way.
  • No way to refine the aspects of the page to what you want or don't want. Have female blacklisted? Even if Jasonafex did say that majority here are gay and that's why everyone got mad at vagina, get ready to have 99% of the popular page be just box with "blacklisted" written on it, because most popular stuff almost all the time is solo females with genitalia focus. (Example of popular page on 26.5. with only "female" on my blacklist: https://puu.sh/Ats1E/2e6a39b01c.png)
  • Extremely hard to get to specific dates. There is forward/back buttons, but if you wanted to see what was popular week ago, you'll have to click back 7 times, on top of that there's no ranges outside set day, week or month (where with advanced search if it had similar search to something like comment search, would have clickable calendar with your local time format: https://puu.sh/AtsK6/662cf2cdd7.png)
  • If it's less cluttered interface that someone wants, there's link to "Mobile" which looks similar.

Only reason why I can see this page being useful if the user is too lazy to learn how site works and wants to have one click solution, instead of three click or creating their own one click solution in form of browser bookmark.

What part(s) of the site page(s) are affected?
https://e621.net/post/popular_by_*

Updated by Lance Armstrong

I coded up a calendar selector for this years ago. But your solution is probably better.

Updated by anonymous

If we keep the pages, we should remove the arrows and add two <input type="date"> with a Go button. So if you click on popular_by_day you see this at the top:

<input id="date" type="date" value="2019-03-04"> to <input id="date" type="date" value="2019-03-04"> <input type="submit" value="Go">

popular_by_week

<input id="date" type="date" value="2019-03-04"> to <input id="date" type="date" value="2019-03-11"> <input type="submit" value="Go">

popular_by_month

<input id="date" type="date" value="2019-03-01"> to <input id="date" type="date" value="2019-03-31"> <input type="submit" value="Go">

Using the calendar selectors and clicking Go will redirect you to a search such as date:2012-04-20..2012-04-29 order:score

Clicking Go without changing the default values gets you to the standard search page @Mairo wants.

Updated by anonymous

I really like the ability to move forward/back a day compared to manually entering a date.

Updated by anonymous

I have come up with the ultimate solution:

  • Keep the Popular links on More.
    • This allows users to bookmark them by right clicking or copying the URL.
  • Redirect Popular links to current searches.
  • All post/search pages with a valid date range will have two date selectors and a Go button appear above the search results.
    • If you clicked on a popular_by page, you get the date selectors.
    • If you manually searched something like date:april/27/2012..june/1/2012 you also get the date selectors.
    • If your search contains other tags, these are preserved if you hit the Go button.
    • Even the back/forward buttons that @mrox wants can be preserved:
      • Test the date range to detect if the start and end of the month has been used.
        • If a search like 2019-03-01..2019-03-31 is used, back/forward buttons will link to a search that uses the start and end date of the previous or next month, instead of a fixed interval of days. This is important because the length of the month varies. February and April are both shorter than March. Back/forward buttons would link to 2019-02-01..2019-02-28 and 2019-04-01..2019-04-30.
      • Test the date range to detect if an interval of days has been used.
        • Interval length does not matter, as long as it is more than 1 day and start/end of month has not been detected.
        • If a weekly search is used, the previous and next date ranges will start and end on the correct day. Ex: date:2019-02-25..2019-03-04 and date:2019-03-11..2019-03-18 for today's popular by week search.
        • Other intervals are fine. So if the current search is for a 3 day range, the back/forward buttons will link to the previous and next 3 days.
      • Back/forward go back or forward 1 day for single day searches.
      • Just like hitting Go, other tags in the search such as male are kept.
      • Appearance of the full header is « [date] to [date] Go »

Updated by anonymous

mrox said:
I really like the ability to move forward/back a day compared to manually entering a date.

I'm editing my new idea to address your concern.

Updated by anonymous

Yes, 10 +1s. Please. Just be sure to balance "teaching how he site works" with "this site is enjoyable and easy to use".

Updated by anonymous

Mairo said:
It does seem like it would be generally nice to have some kind of advanced search similar to google. Just dropdown menus to select options which superusers simply write into the search by default.

I would work on that later. That could be done on a separate page or a popup and have stuff that other boorus have, like tag autocomplete.

Updated by anonymous

Something I found while testing.

Popular by week says it is displaying posts from Monday to Monday, but it is actually Monday to Sunday, which makes more sense:

https://e621.net/post/popular_by_week?day=25&month=2&year=2019

https://e621.net/post/index/1/date:2019-02-25..2019-03-04%20order:score

Popular by week says "February 25, 2019 - March 04, 2019", a span of 8 days starting and ending on a Monday, but it doesn't actually display anything from March 4, the second Monday.

The date search has post #1807353, which was posted on March 4. It isn't included in the popular by week.

This week's popular by week is labeled "March 04, 2019 - March 11, 2019". It should instead say "March 04, 2019 - March 10, 2019". Just add 7 to get the next one.

This is the corrected link that my user script will produce for that week starting on Monday and ending on Sunday:

https://e621.net/post/index/1/date:2019-02-25..2019-03-03%20order:score

My script should be ready to post in a day or two.

Updated by anonymous

It's done for now. Come and get it:

New: v0.2: https://pastebin.com/Qz6F22GJ

The code does not look great but this is just a demo for the feature. I tested it in Firefox and Chrome with Tampermonkey.

Go here and the popular links are replaced. This is only for this script, if added to the site it should redirect from the popular_by links to the correct searches instead. Experiment by opening each of the 3 popular links, using the back and forward links, then play with the calendars. If your search has tags in it they are preserved. Try something like male date:2019-03-04..2019-03-11 solo order:score

UTC time is used in all instances. This script does nothing to address forum #269885 and is not intended to.

You can't select a date earlier than Feb. 10, 2007. If you reverse the dates, it is fixed for you. That's about it.

@Mairo @KiraNoot on notice.

Updated by anonymous

Lance_Armstrong said:
It's done for now. Come and get it:

https://pastebin.com/W4MGctuy

The code does not look great but this is just a demo for the feature. I tested it in Firefox and Chrome with Tampermonkey.

Go here and the popular links are replaced. This is only for this script, if added to the site it should redirect from the popular_by links to the correct searches instead. Experiment by opening each of the 3 popular links, using the back and forward links, then play with the calendars. If your search has tags in it they are preserved. Try something like male date:2019-03-04..2019-03-11 solo order:score

UTC time is used in all instances. This script does nothing to address forum #269885 and is not intended to.

You can't select a date earlier than Feb. 10, 2007. If you reverse the dates, it is fixed for you. That's about it.

@Mairo @KiraNoot on notice.

I love you.

This makes some things I do SO much easier. I love it :D

Updated by anonymous

SnowWolf said:
I love you.

This makes some things I do SO much easier. I love it :D

I'm glad to hear it. Let me know if anything big breaks.

I might try to tackle advanced search next, after a break. Tag autocomplete would be nice but I would have to be careful with that one.

Updated by anonymous

Run this and go to Site Map to test.

Needs better year handling. Other than that, it seems to work.

// ==UserScript==
// @name         Popular By Remix
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  New system for date range handling
// @author       Lance_Armstrong
// @include      https://e621.net/static/site_map
// @include      https://e926.net/static/site_map
// @include      https://e621.net/posts?*
// @include      https://e926.net/posts?*
// @grant        none
// ==/UserScript==

function treatAsUTC(date){var result=new Date(date);result.setMinutes(result.getMinutes()-result.getTimezoneOffset());return result}
function daysBetween(startDate,endDate){var millisecondsPerDay=24*60*60*1000;return Math.round((treatAsUTC(endDate)-treatAsUTC(startDate))/millisecondsPerDay)}
function dateGo()
{var d1=document.getElementById("date1").value;if(d1.search(/\d{4}-\d{2}-\d{2}/)==-1)
{return}
else{d1=new Date(d1).getTime()}
var d2=document.getElementById("date2").value;if(d2.search(/\d{4}-\d{2}-\d{2}/)==-1)
{return}
else{d2=new Date(d2).getTime()}
if(d1==d2)
{window.location.href=(window.location.href.replace(/%20/g," ").replace(/date:[^\s]*\s?/gi,"")+" date:"+document.getElementById("date1").value).replace(/\s\s/g," ")}else if(d1<d2)
{window.location.href=(window.location.href.replace(/%20/g," ").replace(/date:[^\s]*\s?/gi,"")+" date:"+document.getElementById("date1").value+".."+document.getElementById("date2").value).replace(/\s\s/g," ")}else{window.location.href=(window.location.href.replace(/%20/g," ").replace(/date:[^\s]*\s?/gi,"")+" date:"+document.getElementById("date2").value+".."+document.getElementById("date1").value).replace(/\s\s/g," ")}}

(function(){'use strict';var loc=window.location.href;if(loc.search(/https?\:\/\/(e621|e926)\.net\/static\/site_map/)!=-1)
{var ls=document.getElementById("a-site-map").getElementsByTagName("ul");var a=ls[0].getElementsByTagName("li")[4];
 for (var i=0; i<4; i++)
      {
          var lnew = document.createElement("li");
var anew = document.createElement("a");
          anew.appendChild(document.createTextNode(["Popular By Year","Popular by Month","Popular by Week","Popular by Day"][i]));
          lnew.appendChild(anew);
a.parentNode.insertBefore(lnew,a.nextSibling)}
var as=ls[0].getElementsByTagName("a");var d=new Date();var t=d.getUTCFullYear()+"-";if(d.getUTCMonth()+1<10){t+="0"}
t+=(d.getUTCMonth()+1)+"-";if(d.getUTCDate()<10){t+="0"}
t+=d.getUTCDate();as[4].setAttribute("href","https://"+window.location.hostname+"/posts?tags=date:"+t+"%20order:score");var w1=new Date();w1.setUTCDate(w1.getUTCDate()-((w1.getUTCDay()+6)%7));var w2=new Date();w2.setUTCDate(w2.getUTCDate()+((7-w2.getUTCDay())%7));t=w1.getUTCFullYear()+"-";if(w1.getUTCMonth()+1<10){t+="0"}
t+=(w1.getUTCMonth()+1)+"-";if(w1.getUTCDate()<10){t+="0"}
t+=w1.getUTCDate()+".."+w2.getUTCFullYear()+"-";if(w2.getUTCMonth()+1<10){t+="0"}
t+=(w2.getUTCMonth()+1)+"-";if(w2.getUTCDate()<10){t+="0"}
t+=w2.getUTCDate();as[5].setAttribute("href","https://"+window.location.hostname+"/posts?tags=date:"+t+"%20order:score");var m1=new Date();m1.setUTCDate(1);var m2=new Date(m1.getUTCFullYear(),m1.getUTCMonth()+1,0);t=m1.getUTCFullYear()+"-";if(m1.getUTCMonth()+1<10){t+="0"}
t+=(m1.getUTCMonth()+1)+"-";if(m1.getUTCDate()<10){t+="0"}
t+=m1.getUTCDate()+".."+m2.getUTCFullYear()+"-";if(m2.getUTCMonth()+1<10){t+="0"}
t+=(m2.getUTCMonth()+1)+"-";if(m2.getUTCDate()<10){t+="0"}
t+=m2.getUTCDate();as[6].setAttribute("href","https://"+window.location.hostname+"/posts?tags=date:"+t+"%20order:score");
as[7].setAttribute("href","https://"+window.location.hostname+"/posts?tags=date:"+m1.getUTCFullYear()+"-01-01.."+m1.getUTCFullYear()+"-12-31%20order:score")}
else if(loc.search(/https?\:\/\/(e621|e926)\.net\/posts\?/)!=-1)
{var months=["January","February","March","April","May","June","July","August","September","October","November","December"];var months2=[];months.forEach(function(e){months2.push(e.substr(0,2))});loc=loc.replace(/([A-Za-z]{3,9})\/(\d{1,2})\/(\d{4})/gi,function(match,p1,p2,p3)
{var t=p3+"-";p1=months2.indexOf((p1.substr(0,1).toUpperCase()+p1.substr(1).toLowerCase()).substr(0,2))+1;if(p1<10){t+="0"}
t+=p1+"-";p2=Number(p2);if(p2<10){t+="0"}
t+=p2;return t});loc = loc.replace(/%3A/gi, ":");if(loc.search(/date:\d{4}-\d{2}-\d{2}/)!=-1)
{var d1,d2;if(loc.search(/date:\d{4}-\d{2}-\d{2}\.\.\d{4}-\d{2}-\d{2}/)!=-1)
{var dr=loc.match(/date:(\d{4}-\d{2}-\d{2})\.\.(\d{4}-\d{2}-\d{2})/);d1=dr[1];d2=dr[2]}
else{var dr=loc.match(/date:(\d{4}-\d{2}-\d{2})/);d1=d2=dr[1]}
var pop=document.createElement("div");pop.setAttribute("style","margin:0.5em 0 2em 0;");var h3=document.createElement("h5");h3.setAttribute("style","text-align:center;");var sd=new Date(d1);var ed=new Date(d2);var nm=new Date(ed.getUTCFullYear(),ed.getUTCMonth()+1,0);if(d1==d2)
{var bd=new Date(sd.getTime());bd.setUTCDate(bd.getUTCDate()-1);var ba=document.createElement("a");var bds=bd.getUTCFullYear()+"-";if(bd.getUTCMonth()+1<10){bds+="0"}
bds+=(bd.getUTCMonth()+1)+"-";if(bd.getUTCDate()<10){bds+="0"}
bds+=bd.getUTCDate();ba.setAttribute("href",loc.replace(/date:(\d{4}-\d{2}-\d{2})/,"date:"+bds));ba.appendChild(document.createTextNode("\u00AB "+months[bd.getUTCMonth()].substring(0,3)+". "+bd.getUTCDate()+" \u00AB"));h3.appendChild(ba)}
else{if(sd.getUTCMonth()==ed.getUTCMonth()&&sd.getUTCDate()==1&&ed.getUTCDate()==nm.getUTCDate())
{var sm=new Date(sd.getTime());sm.setUTCDate(sm.getUTCDate()-1);sm.setUTCDate(1);var em=new Date(sd.getTime());em.setUTCDate(em.getUTCDate()-1);var ma=document.createElement("a");var ms=sm.getUTCFullYear()+"-";if(sm.getUTCMonth()+1<10){ms+="0"}
ms+=(sm.getUTCMonth()+1)+"-";if(sm.getUTCDate()<10){ms+="0"}
ms+=sm.getUTCDate()+".."+em.getUTCFullYear()+"-";if(em.getUTCMonth()+1<10){ms+="0"}
ms+=(em.getUTCMonth()+1)+"-";if(em.getUTCDate()<10){ms+="0"}
ms+=em.getUTCDate();ma.setAttribute("href",loc.replace(/date:(\d{4}-\d{2}-\d{2}\.\.\d{4}-\d{2}-\d{2})/,"date:"+ms));ma.appendChild(document.createTextNode("\u00AB "+months[sm.getUTCMonth()]+" "+sm.getUTCFullYear()+" \u00AB"));h3.appendChild(ma)}
else{var days=daysBetween(sd,ed)+1;var bd1=new Date(sd.getTime());bd1.setUTCDate(bd1.getUTCDate()-days);var bd2=new Date(ed.getTime());bd2.setUTCDate(bd2.getUTCDate()-days);var ba=document.createElement("a");var bds=bd1.getUTCFullYear()+"-";if(bd1.getUTCMonth()+1<10){bds+="0"}
bds+=(bd1.getUTCMonth()+1)+"-";if(bd1.getUTCDate()<10){bds+="0"}
bds+=bd1.getUTCDate()+".."+bd2.getUTCFullYear()+"-";if(bd2.getUTCMonth()+1<10){bds+="0"}
bds+=(bd2.getUTCMonth()+1)+"-";if(bd2.getUTCDate()<10){bds+="0"}
bds+=bd2.getUTCDate();ba.setAttribute("href",loc.replace(/date:(\d{4}-\d{2}-\d{2}\.\.\d{4}-\d{2}-\d{2})/,"date:"+bds));ba.appendChild(document.createTextNode("\u00AB "+months[bd1.getUTCMonth()].substring(0,3)+". "+bd1.getUTCDate()+"\u2014"+months[bd2.getUTCMonth()].substring(0,3)+". "+bd2.getUTCDate()+" \u00AB"));h3.appendChild(ba)}}
h3.appendChild(document.createTextNode("\u00A0\u00A0\u00A0"));var ds=document.createElement("input");ds.setAttribute("id","date1");ds.setAttribute("type","date");ds.setAttribute("value",d1);ds.setAttribute("min","2007-02-10");h3.appendChild(ds);h3.appendChild(document.createTextNode("\u00A0 to \u00A0"));var ds=document.createElement("input");ds.setAttribute("id","date2");ds.setAttribute("type","date");ds.setAttribute("value",d2);ds.setAttribute("min","2007-02-10");h3.appendChild(ds);h3.appendChild(document.createTextNode(" "));var go=document.createElement("input");go.setAttribute("type","button");go.setAttribute("style","vertical-align:middle;");go.onclick=function(){dateGo()};go.setAttribute("value","Go");h3.appendChild(go);h3.appendChild(document.createTextNode("\u00A0\u00A0\u00A0"));if(d1==d2)
{var fd=new Date(sd.getTime());fd.setUTCDate(fd.getUTCDate()+1);var ba=document.createElement("a");var fds=fd.getUTCFullYear()+"-";if(fd.getUTCMonth()+1<10){fds+="0"}
fds+=(fd.getUTCMonth()+1)+"-";if(fd.getUTCDate()<10){fds+="0"}
fds+=fd.getUTCDate();ba.setAttribute("href",loc.replace(/date:(\d{4}-\d{2}-\d{2})/,"date:"+fds));ba.appendChild(document.createTextNode("\u00BB "+months[fd.getUTCMonth()].substring(0,3)+". "+fd.getUTCDate()+" \u00BB"));h3.appendChild(ba)}
else{if(sd.getUTCMonth()==ed.getUTCMonth()&&sd.getUTCDate()==1&&ed.getUTCDate()==nm.getUTCDate())
{var sm=new Date(ed.getTime());sm.setUTCDate(sm.getUTCDate()+1);var em=new Date(sm.getUTCFullYear(),sm.getUTCMonth()+1,0);var ma=document.createElement("a");var ms=sm.getUTCFullYear()+"-";if(sm.getUTCMonth()+1<10){ms+="0"}
ms+=(sm.getUTCMonth()+1)+"-";if(sm.getUTCDate()<10){ms+="0"}
ms+=sm.getUTCDate()+".."+em.getUTCFullYear()+"-";if(em.getUTCMonth()+1<10){ms+="0"}
ms+=(em.getUTCMonth()+1)+"-";if(em.getUTCDate()<10){ms+="0"}
ms+=em.getUTCDate();ma.setAttribute("href",loc.replace(/date:(\d{4}-\d{2}-\d{2}\.\.\d{4}-\d{2}-\d{2})/,"date:"+ms));ma.appendChild(document.createTextNode("\u00BB "+months[sm.getUTCMonth()]+" "+sm.getUTCFullYear()+" \u00BB"));h3.appendChild(ma)}
else{var days=daysBetween(sd,ed)+1;var bd1=new Date(sd.getTime());bd1.setUTCDate(bd1.getUTCDate()+days);var bd2=new Date(ed.getTime());bd2.setUTCDate(bd2.getUTCDate()+days);var ba=document.createElement("a");var bds=bd1.getUTCFullYear()+"-";if(bd1.getUTCMonth()+1<10){bds+="0"}
bds+=(bd1.getUTCMonth()+1)+"-";if(bd1.getUTCDate()<10){bds+="0"}
bds+=bd1.getUTCDate()+".."+bd2.getUTCFullYear()+"-";if(bd2.getUTCMonth()+1<10){bds+="0"}
bds+=(bd2.getUTCMonth()+1)+"-";if(bd2.getUTCDate()<10){bds+="0"}
bds+=bd2.getUTCDate();ba.setAttribute("href",loc.replace(/date:(\d{4}-\d{2}-\d{2}\.\.\d{4}-\d{2}-\d{2})/,"date:"+bds));ba.appendChild(document.createTextNode("\u00BB "+months[bd1.getUTCMonth()].substring(0,3)+". "+bd1.getUTCDate()+"\u2014"+months[bd2.getUTCMonth()].substring(0,3)+". "+bd2.getUTCDate()+" \u00BB"));h3.appendChild(ba)}}
pop.appendChild(h3);document.getElementById("quick-edit-div").parentNode.insertBefore(pop,document.getElementById("quick-edit-div").nextSibling)}}})()

I agree the Popular section needs a revamp. I like the convenience of having a link to the "popular" art, which should weigh both the Upvotes and the Favorites count within the last 24 hours.

Eliminating the fixed reset period (shifting to a 24-hour rolling window) would be a huge improvement as well, so people aren't gaming the system.

I'm trying to add new code here but Cloudflare is big mad.

v0.4: https://pastebin.com/AgRdBj6A

Go the Site Map, try the search boxes. You type a search, press enter, and it will insert the correct date metatag for you. You can edit the default search string at the top of the script. -voted:me would remove any posts you have already voted on.

Updated

  • 1