48

Roomba Forecaster ( install ) ( GitHub )

Roomba Forecaster is a user-script that shows the question's status with respect to being deleted by Roomba.

This script adds a "roomba" status line after "viewed"/"active", in the question stats line just under the question title on question pages, which shows:

  • If Roomba will delete the question
  • How long until the question is deleted
  • Why the question won't be deleted (by default, displayed in a tooltip)
  • If you down-voting on the question or answer(s) will qualify the question for Roomba

You can click on the "roomba" status line to open an options dialog to change display settings.

Where it is on the page relative to the question

enter image description here

Original location, which can be obtained with a userscript which restores the old layout with question stats in the sidebar

The "roomba" status line (old location)

Roomba Forecaster

Where it is on the page relative to the question (old location)

Roomba Forecaster location on the page

Why it won't Roomba: tooltip (default) or always visible (optional)

The reasons the question does not qualify for the three different Roomba tasks is included in a table. The table is, by default, displayed in a tooltip when the mouse hovers over the "roomba" status line:
tooltip

Alternately, the table can be always visible by selecting the appropriate display option. While this is still available, it doesn't look nearly as reasonable with the stats in a line underneath the question title (the new/current location).

Option to show if your down-vote(s) will result in the question being Roomb'ed (not enabled by default)

There is an option to display if you down-voting the question and/or answer(s) will qualify the question to be Roomba'ed.

You should not downvote just to cause a question to be deleted

There is considerable controversy with respect to downvotes to a question or answer(s) resulting in the question being deleted by the Roomba.

If the post content is poor and you would have downvoted that post anyway, then just downvoting and not close-voting or delete-voting, because it's likely that the Roomba will delete it in a couple/few days, is a valid choice for how you use the limited resources available to you for moderation (i.e. how you allocate the use of your up/down-votes, close-votes/flags, and delete-votes). However, downvoting either the question or answer(s) just to cause the question to be deleted by the Roomba isn't permitted. See: Clean-up by downvoting? A ridiculous user experience.

What it looks like

Question
downvote question will roomba

Answer(s)
downvote answer will roomba

Note: The 30 day Roomba task, RemoveDeadQuestions, if there are any downvotes on the question, then it requires that there be a downvote on the question which is greater than 2 days old at the time the question is being considered for deletion. See answer to: Lost 5 questions following a serial downvote and the comments on that answer for more details.

Number of days to deletion

If the question will be deleted by Roomba, then the number of days until it is deleted is displayed, along with if it is a daily, or weekly Roomba task.

One Roomba task runs daily:
daily roomba

Two Roomba tasks run weekly:1
weekly roomba

Options

Clicking on the "roomba" status line will open an options dialog where you can select what is displayed. The following GIF shows how the display looks with the various different options:

Roomba Forecaster options

Clicking on the Close button will keep the selected options for use on this page only. Save will store the options for use on all pages. Cancel abandons any changes you have made to the options.

Short descriptions in the status line (optional)

The optional short descriptions in the "roomba" status line are cryptic:
short reasons

The best way to learn what they mean is to match them up against what is displayed in the larger table (either as a tooltip, or always displayed).
short reasons

Getting the code

Install from GitHub

It's a userscript. Use a userscript manager.

This is a userscript, so you will want/need Tampermonkey (closed source, most widely available), Violentmonkey (open source), or other userscript manager.

I recommend against Greasemonkey 4.X, but Roomba Forecaster is functional

Unfortunately, I can no longer recommend Greasemonkey (open source; Firefox only). I try to make sure that my scripts are compatible with Greasemonkey 4.X (GM4), but it lacks features which some of my scripts use, but, for my scripts, I try to make it that their lack just degrades performance. The change to Greasemonkey 4.X was required by Firefox moving to only WebExtensions based add-ons. However, there were significant changes made to Greasemonkey 4.X which broke backward compatibility (and there's still a significant lack of functionality). There is no intent to fix backward compatibility. As a result, using Greasemonkey 4.X will result in ongoing issues with older scripts which have not been updated to be used with it, or with scripts which don't consider the differences. Thus, while I used to strongly recommend Greasemonkey 3.X due to a significantly better security environment (gone in GM4), I recommend against using Greasemonkey 4.X vs. the alternatives. To give an idea of the scope of the incompatibility issues, at least 30 of the scripts which I use for Stack Overflow/Stack Exchange do not function correctly under Greasemonkey 4.X.

Using a bookmarklet (e.g., on mobile browsers)

javascript:void(function(){
    if (typeof window.GM === 'undefined') {
        window.GM = {};
    }
    GM.setValue = async (key, value) => localStorage[`makyen-RoombaForecaster-bookmarklet-${key}`] = value;
    GM.getValue = async (key, defaultValue) => {
        const value = localStorage[`makyen-RoombaForecaster-bookmarklet-${key}`];
        return typeof value === 'undefined' ? defaultValue : value;
    };
    GM.setValue('config', '{"scrapePage":false,"showShortRoombaStatus":true, "useTooltip":true, "showShortReasons":false, "showIfDownvoteWillRoomba":false, "alwaysShowRoombaTable":false, "disabledScraping201910OriginalScrapePage":true, "disabledScraping201910":true, "disabledShowIfDownvoteWillRoomba202107":true}').then(() => {
        $.getScript('https://cdn.jsdelivr.net/gh/makyen/extension-and-userscript-utilities@10254c2cba80cbf5f34dc69cd87ba21caa9eb911/executeInPage.js').then(() => {
            $.getScript('https://cdn.jsdelivr.net/gh/makyen/StackExchange-userscripts/Roomba-Forecaster/RoombaForecaster.user.js');
        });
    });
})();

The source code is on GitHub

Please file any bugs/feature requests as issues there.

Contact

You can contact me here through Stack Exchange comments or in SO/SE chat.

If there are problems with, or feature requests for, this userscript, please file an issue on GitHub. While GitHub issues are preferred for bugs/feature requests, making sure I get the information (e.g. comments/chat) is sufficient.

Browsers

Roomba Forecaster has been tested on Chrome, Firefox, Firefox ESR, Firefox for Android, Opera, and Edge. It should also be compatible with other browsers.

Compatibility Notes

The tooltip is styled to look like a native tooltip in the browsers which were tested: Chrome, Firefox, Firefox ESR, Firefox for Android, Opera, and Edge. Thus, the tooltip will look slightly different in in each browser. The images above are from Chrome.

License

Roomba Forecaster's code is released under the MIT License. Earlier versions of Roomba Forecaster's code were released under CC BY-SA 4.0, the international version of the license used for all contributions to Stack Exchange.


This is a fork of RoombaForecast.

1. Actually, four Roomba tasks run weekly. The other two affect only questions which have been migrated to another Stack Exchange site (leaving a migration stub) or migrated from another site and rejected. While the script does detect these, the Stack Exchange system automatically redirects the page to the site where the question currently exists. Thus, unless something changes in how Stack Exchange displays such questions, you add the ?noredirect=1 parameter to the URL, or are a moderator on the site where the migration stub exists, it's unlikely you will see one. OTOH, you could, of course, go searching for rejected migrations which have not yet been deleted.

Note that there are some old, migrated questions that have been closed on the destination site, which should have triggered their rejection. While these fit the documented criteria for Roomba deletion, they do not get deleted. If the question has not been deleted after twice being eligible for deletion when Roomba ran, then Roomba Forecaster assumes that the question is not actually eligible to be Roomba'd. If the documentation is updated to indicate the actual criteria, then the script will be updated.

12
  • 2
    Related thread on Software Recommendations: Userscript or extension to indicate when a Stack Exchange question is scheduled for auto-deletion
    – user43888
    Commented Jul 6, 2017 at 23:41
  • Does this work correctly on all Stackexchange sites? I'm guessing different Stackexchange sites may have slightly different Roomba rules? Commented Mar 29, 2018 at 10:31
  • @GaurangTandon, To the best of my knowledge, the Roomba is the same for all sites. It should work correctly on all English sites. However, you make me realize that it will not currently work correctly on the non-English SE sites (unless the user sets a hidden option). I will update it so it will work on those sites too. Thanks for getting me to think about that.
    – Makyen
    Commented Mar 29, 2018 at 10:58
  • @Makyen: Oh I'm glad to be of help. Though thanks to you for making this in the first place! :D Commented Mar 29, 2018 at 11:10
  • Oh, one thing more, I just realized that the rules for the roomba user are different on the child meta sites as compared to the corresponding main site. So does this script take those into account? Or does it work on meta questions the same way it does on main site ones (which shouldn't happen)? Commented Apr 17, 2018 at 3:00
  • 1
    @GaurangTandon Thank you for pointing it out. The only difference I see at this point is that the 365-day Roomba, RemoveAbandonedQuestions, is not active on Meta sites. This is a change from when the script was written (or at least it's a change in the Roomba description documentation). I will update the script to take that into account, but, no, it does not currently account for that on meta sites.
    – Makyen
    Commented Apr 17, 2018 at 4:37
  • It's always been the case that RemoveAbandonedQuestions doesn't run on meta sites. It's just never been properly referred to in the documentation until I prodded them to update it.
    – gparyani
    Commented Jun 13, 2018 at 18:58
  • @gparyani I appreciate knowing that. But, without it documented and without access to the code-base there's no way to know about such criteria, or lack thereof. I'm glad you got them to update the documentation, but from the point of view of he script, it's a change in functionality. Note that there's at least one other undocumented criteria which must be met. Because of this, if the question has not been removed by the time the question would have twice otherwise met the Roomba criteria when the Roomba ran and is still not deleted, the script assumes the question won't be Roomba'd.
    – Makyen
    Commented Jun 13, 2018 at 19:23
  • It's also worth mentioning that migration stubs do not redirect if you are a moderator on the origin site.
    – gparyani
    Commented Jun 13, 2018 at 20:28
  • How on earth do you get Chrome to let you install this!? Using defaults write com.google.Chrome ExtensionInstallSources ... didn't work. Drag-n-drop on chrome://extension didn't work. Commented Jul 17, 2018 at 20:03
  • @JohnHascall The easiest way is to have a userscript manager extension installed. The most common in Chrome is Tampermonkey. Once that's installed, you should just be able to click on the Roomba Forecaster install link.
    – Makyen
    Commented Jul 17, 2018 at 20:36
  • 1
    @Makyen thanks, that worked. (Dear Google, I think 15 sets of training wheels on Chrome might be quite enough.) Commented Jul 17, 2018 at 20:51

0

You must log in to answer this question.

Browse other questions tagged .