Giter VIP home page Giter VIP logo

distract-me-not's Introduction

Hi there ๐Ÿ‘‹

I'm a Full Stack Developer from Morocco ๐Ÿ‡ฒ๐Ÿ‡ฆ, enthusiastic about solving problems & writing clean code โœจ , with a constantly growing love for new technologies. Besides programming, I enjoy watching animes & playing games ๐ŸŽฎ.

I'm currently working with ๐Ÿ‘‡

React Node.js MongoDB Angular Firebase Typescript RxJS PHP Python Git NPM Yarn Gulp Eslint Jest Cypress VS Code

Statistics ๐Ÿ“ˆ
AXeL's github stats Top Langs

visitors

Blog posts ๐Ÿ“

Read my latest blog posts.

Feel free to reach me on ๐Ÿ“ซ

Gmail Linkedin Discord

distract-me-not's People

Contributors

axel-dev avatar dependabot[bot] avatar pioupia avatar vistaus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

distract-me-not's Issues

Feature request: Password lock

Add a password lock under the popup or when trying to switch status.

Do not forget to prompt password when disabling the extension.

Feature request: pomodoro timer

I'd like to have an ability to have similar funtionality as "Work mode" in Block Site. But their relization has 2 issues, to my opinion:

  1. This mode goes only for one session. After 5-minute break I have to restart it manually.
  2. It's not adjustable. I can't choose time for work and break sessions.

problem with blocking

Hi man, love your extension. Very neat!
However, it looks like I've been having some problems: if I write a website directly in the address bar, it gets blocked. If I access via google search then it doesn't. Am I doing something wrong? Maybe it has to do with the HTTPS (happened to me before in other blockers...)

Using firefox 88.01 linux mint // other things have no idea how to check...

  • version of npm
  • version of node.js
  • version of reactjs
  • which browser and its version

Steps to reproduce

Tell us how to reproduce this issue. Please provide a working demo.

Expected behaviour

Tell us what should happen

Actual behaviour

Tell us what happens instead

Block sites but not their embeds

Hello!
I love this extension and have been using it for quite some time. Let me first thank you for the scheduled blocking, it is perfect for my use case.

Lately, however, I've been taking courses on EDX which use youtube embeds for it's videos. I have a rule for youtube blocking but found no way to add a blocking rule that'd exclude youtube.com/embed/.

How can I go around this?
Thank you!

Feature request: Display a list of temporary allowed urls

Issue description

When allowing a website temporary, there is no way to notice it (and/or in case you forget that you have allow it temporary).

Suggestion

Display a list of temporary allowed websites, with the remaining time until they got blocked again?

The logs list can be used as an example for the UI.

Feature Request: Allow iframes and embeds from blacklisted sites to load on whitelisted sites

Hello AXeL, thank you for your work on this. I recently installed it as I found I was wasting far too much time on sites that were distracting.

I would like to request that when a blacklisted site, e.g. YouTube, is within an iframe or embed on a whitelisted site, e.g. an online learning site, that the plugin allows it to load and be accessed by the user.

I ask because my current course is mostly videos hosted on YouTube and embed into a Moodle install using iframes, which means I either need to remove YouTube from the blocklist while I work on it, or leave it off and I am not sure I have the willpower to stop myself from getting distracted in either case.

I don't know how difficult this would be, I haven't looked into how the plugin works, but if it's possible I would love to see it.

(re) enable on browser startup

Hi fellow procrastinators,
I feel the need for this to have a start to enabled on startup - option.
As in: When the browser starts, the status is re-set to on.

oneclick start

click on the icon to enable addon and when its 'on' change icon

Status switch doesn't always appear

When you open the page to turn the blocker on/off, the switch doesn't always appear. Usually, this only happens the first time you open it. If you click again, the switch MIGHT appear. If you open a new tab or window, the same problem occurs again.

Feature Request: Multiple Black/Whitelists that you can check on/off.

Sometimes, I want to block a subgroup of my blacklist. It's cumbersome to remove the sites I want to visit from my blacklist every time. It would be nice to be able to make groups such as "social media", "entertainment" etc., and be able to check which blacklists are "on".

Roadmap

This is a simple roadmap (or let's call it a todo list?) for things that would be interesting to add in future releases:

Feel free to contribute to this list (using the comments section below) if ever you wanna see any new feature been added to the extension, perhaps adding some screenshots, detailed descriptions or even code examples can be really helpful.

  • Block settings: add an option to prompt websites url & modify it before adding it to blacklist/whitelist (when using the + button).
  • Password settings: add possibility to generate a random password.
  • As suggested by @oatly93, user should be able to add new website(s) without the need to enter the password (if it's enabled), maybe add an option under password settings to allow "Adding websites without entering the password".
  • Icon should change per tab/website, depending on if the url is blocked or not (maybe made this optional via an option on the settings, just to keep the current behavior).
  • Unblock settings: option to display unblock button on context menu instead of on the page itself (can be handy to hide the button).
  • Miscellaneous: add an option to display the number of blocked websites via extension badge (save number in storage or only in a temp var, or both depending on user preferences? [accumulative count, or reset count on browser startup]).
  • Block page template: add possibility to customize the template (set customized HTML for example).
  • Review settings storage: save all settings under a unique object named settings or preferences.

Feature Request: Remove Password Requirement to Enable Blocking

It makes little sense to require a password in order to enable the service. In current form, a user would have to type in his password, potentially having to find it, or retrieve it from a password vault, in order to turn on the blocker.
I could potentially see some edge case where the current implementation would prevent pranks when a browser is left logged in. That aside, however, I would consider the default use case as:

  1. User decides he/she needs to be uninterrupted
  2. Clicks Distract-Me-Not
  3. Clicks Enable

Attempting to Disable the blocker outside of schedule, or any configuration changes should continue to require a password.

Stopped working

The blacklisting doesn't work anymore (9 May 2020). I can enter twitter.com e.g. but the tab isn't closed anymore. There is no green +, so the addon does recognize that it's blacklisted website.

Close Tab problem when trying to add a new google account

Hey, love your extension but might spotted a small mistake.

Your environment

  • version of distract me not: 2.0.6
  • Firefox Version: 88.0.1

Steps to reproduce

  1. Insert to Blacklist:
    *.youtube.com/*
  2. Choose default action:
    Close Tab
  3. Choose Black List Mode as active and save
  4. Login to a google account, and try to add another Account

Expected behaviour

Since blacklist is active and youtube isn't accessed in the described process it should be possible to add another google account without the tab closing at any time in the process

Actual behaviour

The moment I do (4.) I get a blink of the Sign-In from google to enter an email-adress. Then the tab closes within parts of a second.

Comment

I guess that its a fail on my side or a bug of the "close tab" option, because the other actions "block" and "redirect to website" just work fine

Feature Request: Type Random String To Unlock

Currently, a password can be used to protect the settings. This is a good idea, as it can help users like me from disabling the extension. However, users can also set really short passwords, or when setting a very long password users may forget the password.

One solution is to have an option where in order to access the settings the user must retype a long string of random letters and numbers. The amount of key presses can also be tracked on the page to make sure the user doesn't copy paste the string. The string length can be set by the user and the string is refreshed every time the user wants to access the settings.

Refactor legacy react code

This is just a reminder to refactor the legacy code (class components, scss styles, ...) & update the project dependencies.

Yes i know, that this would require to rewrite the code from scratch, which would take a significant amount of time, but anyway, this step is really important for the health & maintainability of the project.

Other suggestions: Rewrite using typescript? ๐Ÿค”

Minor Feature Request - Request count of List Items and last updated date

Problem Statement:
If using multiple browsers on multiple machines, I'd like to know that all my Black\White lists contain the same items, or failing that, the same number of items. Additionally, as I make changes to my lists, it would be helpful to know the last import date (or update date) of a given list so that I know the lists are at least up to date with a certain source file date.

Requesting a Count of items contained within a Blac/White Keyword or URL list.
Also, requesting a last import/updated date of same lists.

Both features would allow user to determine if lists are properly imported or up to date with all browsers using this extension. Both date and count perhaps are overkill, but it would be helpful to know that I successfully imported my lists across all my browsers on all my machines.

Larger Feature of Cloud-Sync of lists would probably obviate this feature.

Your environment

  • 2.6.4
  • Edge\Chrome newest

Steps to reproduce

Open Extension Options page
Select Blacklist or Whitelist
Import a large (more items than fit in the window so scroll-bars appear) selection of URLs or keywords
Do the same on another browser and add more items
Compare the lists in both browsers. Are the lists the same?

sorting

The blacklisted sites are not alphabetically sorted which is inconvenient.

Feature Request: Cloud Sync of Settings\Lists

Problem Statement:
When I use the extension on multiple machines, it is challenging to keep all my settings and lists synchronized across all systems and browsers. It would be helpful if the extension synced these without my need to manipulate each manually.

Feature Ask:
Please implement Cloud Sync of Extension settings so all options, lists, and settings are synchronized across devices (And if possible, Apps\Browsers)

Your environment

  • 2.6.4
  • Edge and Chrome

password forgotten

Hi! I've managed to forget my password, and have a nice blacklist I would like to somehow save. Any ideas how to do that?
Using firefox 88.0.1 on linux mint 20.1 Cinnamon :)
best!

Your environment

  • version of npm
  • version of node.js
  • version of reactjs
  • which browser and its version

Steps to reproduce

Tell us how to reproduce this issue. Please provide a working demo.

Expected behaviour

Tell us what should happen

Actual behaviour

Tell us what happens instead

Feature Request: Remove Top-Level Domain requirement

Current version requires URL for Blacklist/Whitelist.
This Feature Request seeks to remove the requirement for Top-Level domains (.com) but instead parse the entirety of the URL. This would allow specific words to be blocked instead of just sites, thus allowing users more flexibility in how this tool is used.
So if someone found ballerinas distracting, they could just add 'ballerinas' or even 'balle*' to their blacklist. Or Football* or NFL* or yahoo* (which would include yahoosports.com).

I'm sure you see the benefit of such a flexible approach. Thanks for consideration.

Feature request: add blocking statistics

It would be interesting to have statistics about:

  • Blocked websites (like for how much time they were blocked).
  • Unblocked websites (would be interesting as well, to know which websites the user unblocks the most? ๐Ÿค” ).

Feature Request: Add Report an Issue and Timer to Extension Password dialog

Clicking the Extension to enable Timer Mode or Report an Issue with Password Enabled requires entering Password before you can do either

Your environment

  • version of the extension
    2.7.1
  • which browser and its version
    Edge vCurr

Steps to reproduce

-Enable Password for extension option management
-Click Distract-Me-Not to Open the Dialog -> Notice you cannot Enable Timer or Report an Issue
-Enter your Password -> Notice you can now do either

Expected behaviour

Report an Issue or Enable the Timer without entering a password (Disable Timer should still require password)

Actual behaviour

Cannot do either without entering a password

Improve schedule

Add possibility to set 2 range of time, example:

  • 1st range: 8:00 -> 12:00
  • 2nd range: 14:00 -> 18:00

Would be better to keep the possibility to set only one range by showing only one at first, with a + button to add the second range.

In Whitelist mode, cannot unblock the file:// URL scheme

In Firefox, I am using Whitelist mode. When I try to open a file:// URL scheme in the URL bar, e.g. file:///home/username/file.html (a Unix-like file path), it is blocked by Distract Me Not. So far, so good.

The problem is, I can't seem to unblock the page. Clicking the "+" button appears to work at first, in that the "+" button goes away, but then nothing else happens. The page remains blocked, and no new entry appears in Distract Me Not's Whitelist on the settings page.

Moreover, since a file:// URL lacks a domain name, doesn't really seem to fit Distract Me Not's whitelist-blacklist model. Even if I was to manually type in a Whitelist entry for the page, I'm not sure what I'd type.

So currently, I can't view the page at all, while in Whitelist mode. As a work-around, I just temporarily disable Distract Me Not.

Maybe it would be OK & an easy change to have Distract Me Not just never block any "file://" URLs?

By the way, thank you for this awesome plugin.

CI build inconsistency

Some artifacts on CI build weirdly doesn't match with manually built artifacts (& more exactly the static/*.chunk.js file).

You can use a tool like Meld to do the comparison (keep in mind that you might need to unminify minified js files to get readable/viewable results).

#needs_deep_investigation

Feature Request: add allowed time during blocking schedule

Hi there,

I love the extension and it's doing its job really well but there's one feature that I miss:

It'd be amazing if while setting up a blocking schedule the user could set up the start and end times, as well as an amount of minutes that allows them to visit the blocked sites during the blocking hours.
The countdown timer runs down if a site from the blocklist is an active tab during the blocking schedule and once the timer runs out, the blocking starts.

"StayFocusd" on Chrome has that feature and it helped me immensely to ease into the site blocking "mindset".

Thanks for your amazing work and have a great weekend. :)

DMN not Blocking when Browser first starts (even though Block is enabled)

When Edge loads from a closed session (restoring all my tabs), Distract-Me-Not is enabled and Active. Clicking the icon shows password prompt and, once supplied, indicates blocking is active in Combined mode. Blocking is not working, however, until I disable blocking and re-enable it.

Your environment

  • version of the extension
    Version 2.7.1
  • which browser and its version
    Win10 Edge vCurr = 'Version 103.0.1264.44 (Official build) (64-bit)'

Steps to reproduce

-Close edge with Tabs open and set to restore tabs on open (Unsure if necessary. Have not tested other variations)
-Reopen Edge (Which restores saved tabs and extension states)
-Open a New Tab and navigate to a location that should be blocked -> Notice it is not blocked
-Ensure Extension is Enabled and Status is Active in Combined Mode (Supplying password as needed)
image
-Open DMN Settings (Supplying password as needed)
-Notice Active and Blocking is in Combined Mode
image

-Verify Tab destination should be blocked by verifying Blacklist
image

-Disable Blocking (And Save)
image

-Re-enable Blocking (And Save) -> Notice existing working tab suddenly becomes blocked
image

Expected behaviour

On load, the extension should verify blocking status and ensure every tab is blocked as appropriate

Actual behaviour

On load, tabs that should be blocked, as well as new tabs that should be blocked, are not blocked until blocking is turned off and back on.

Auto re-block websites on unblock timeout end

Unblocking website for a certain amount of time should automatically trigger block when the time is elapsed.

Hint: you can use setTimeout to handle that.

Edit: why not make this optional, via an option under unblock settings?

Blocking YouTube also closes Google login in other domains

Blocking YouTube breaks other google related sites

Your environment

  • 2.8.0
  • Firefox 104.0.1

Steps to reproduce

  1. Set block action to Close tab
  2. add *.youtube.com to blacklist
  3. Try to log in a Google related product, e.g. docs.google.com (leads to account.google.com)

Expected behaviour

Log in page should not close like the block action in Block

Actual behaviour

Log in page closes immediately after load

Doesn't seem to work in LibreWolf

Websites do not get redirected, maybe due to LibreWolf's hardening compared to base FireFox?

Your environment

  • 8.3.0
  • v17.3.0
  • ?
  • LibreWolf LibreWolf 95.0

Steps to reproduce

Install this extention on LibreWolf website blocking doesn't work does on Brave for example

Expected behaviour

Website is redirected to block page

Actual behaviour

Website is not redirected to block page

What does it actually block?

The doc/AMO description/Readme does not actually give me a lot of hints what it blocksโ€ฆ

I know this looks like WIP, but FYI: I personally then e.g. like it to first mark the add-on as "unstable version" on AMO.


BTW, you know me? I guess, because that style of the Readme is very familiar to meโ€ฆ ๐Ÿ˜œ

Okay, or possibly coincidenceโ€ฆ?

Export blacklist

It would be nice if the blacklist could be exported and imported. If you have to reinitialize your browser, all the marked websites are gone.

ToDo: Replace rescripts with craco

rescripts is unmaintained, additionally it doesn't support react-scripts@5 (upgrading to this version would fix many vulnerabilities).

craco looks to be a great alternative, still it doesn't yet officially support version 5 of CRA.

redirect to local html file

I have a simple html page in the local filesystem that the extension tries to get over the web (naturally).
I think it'd be cool to let users make their own redirect page. Though, yes, I can set up a server to serve my custom redirect page, but that is too much work for a quick functionality imo.

Breaks keyboard shortcuts

Distract Me Not prevents the F6 and Ctrl/Cmd-L keyboard shortcuts from working. This prevents me from selecting the current URL and copying it (the shortcut focuses on the Address Bar).

Test Case

  • Enable the allowlist (with Display Error message mode)
  • Visit a page not on the allowlist
  • press CMD-L (mac) or equivalent shortcut to focus the address bar.

Expected: The current URL is selected in the address bar
Result: The URL is not selected and the address bar isn't focused.

Context

I'm using this addon to prevent me using my 'web development' browser (Firefox Dev Edition) for regular browsing, with an allowlist for project related work. This works very well and helps me keep my privacy focused addons from blocking project assets.

Occasionally I would kick off a websearch for a problem and click through to another site, which then is blocked. So I wrote a Keyboard Maestro script to open the current site in another browser (https://gist.github.com/svandragt/3a15b79296654196c77c5cbfeea7be84 if you're interested).

This doesn't currently work because of the above. Is this a bug or a feature? If the latter would you consider making it a preference?

BTW, thanks for making this plugin there are not many options for Firefox addons that work with an allow-list.

Feature request: Add password session expire time

Instead of re-asking for the password on every page render, it would be interesting to expand the password session for few seconds (maybe 30 seconds by default) to avoid having to retype many times the password on each page opening/navigation.

Adding a session expire timeout to the password settings should solve that.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.