Giter VIP home page Giter VIP logo

tahir's Introduction

Tahir: Avoid haram images/video on the web 😎

Tahir is a Browser Extension that protects your eyes by automatically blurring images and videos rendered on any page. Currently Tahir is available for Chrome and Firefox.

Key Features

  1. Automatically blur all (~95%) images, videos, iframes on a webpage
  2. Selectively unblur & reblur an image/video as needed (Alt+K)
  3. Turn Tahir on & off as needed (Alt+L)
  4. Customize blur settings (modify blur amount, grayscale, etc)
  5. Add safe websites to whitelist to prevent Tahir blurring.

Open Source

Our code is open source and we'll happily accept contributions from the community for bug fixes! If you would like to port Tahir for Safari, translate it to different languages, or work on other features -- feel free to open a pull request here on GitHub so we can add your contributions!

Contact

Need help or just want to get in touch? Say salam to us at [email protected]

P.S. Do you like this extension?

Share it with friends and family! And check out our other Chrome Extension, a new tab page called Asr.

tahir's People

Contributors

fushatech avatar saidul avatar ammaristotle avatar

Stargazers

Zarif Muhtasim avatar Karim Bouchez avatar Md Raihan avatar liverfail avatar  avatar Muhtaseem Al Mahmud avatar Tahmid Khan avatar Nas A. avatar SAIFUL ISLAM avatar  avatar  avatar y_batvinik avatar Badr Elmers avatar Abdul Muizz avatar  avatar  avatar Satbek Abdyldayev avatar Muhammad Shahir Abdurrahman avatar Aiden avatar Falestio Hanif avatar Nathan Stork avatar Zaimuddin Hassan avatar Amir Razin avatar Mr_ech001 avatar Lucas Pestana avatar Rafid Al Haque avatar Hadi Yahia avatar Fahmi Ahmad avatar モハメド avatar Thomas Steinbach avatar  avatar Ohidur Rahman Bappy avatar Taen avatar Naveed Elahi avatar Tuhin avatar Haris avatar Hamada Fadil Mahdi avatar Nazir Ahmed Sabbir avatar Talha Ibne Imam avatar Hasib Billah avatar Zonayed Ahmed avatar  avatar  avatar Mohamed Sameer avatar Shahidul Islam Majumder avatar Ahsan Kamal avatar Mohammad Omama avatar

Watchers

 avatar Shahidul Islam Majumder avatar Taen avatar Muhammad Shahir Abdurrahman avatar

tahir's Issues

Feature Request: Alt-K should reblur

Several users have requested the ability to reblur an image after selectively unblurring it. Alt-K should be redesigned to allow the user to both unblur & reblur a selective image. I have finished this feature, and am cleaning up documentation & testing it now before releasing iA.

Feature Request: Color instead of Blur

Assalamu Alaykum,

I'd like it if it were possible to have a solid block of (user-definable) color in place of the image, instead of blurring.

Perhaps this would also make it faster.

Feature Request: Blur images found in CSS

Tahir currently blurs: (1) any image, video, iframe object or (2) div/span/a/i that have image as part of inline style background or background-url. Tahir does not blur html objects that have an image as part of its CSS class. For example, the following will not be blurred:

<div class="greatimage">...</div>

## main.css
.greatimage {
    background-url: image-link.png
}

If we want to blur 100% images/videos (currently at ~95%), it will be necessary to determine if an html object contains an image in its CSS class. This is tricky though, since often these images are UI elements, logos, etc -- which are helpful to see. If we implement this, perhaps should make this a toggle-able feature.

Bug: Alt-K does not work on subchild elements over hover

Alt-K works by [1] determining all html objects under a users mouse hover [2] applying blur/reblur on any img, video, iframe, or div/span/a/i with an inline image (via style background or background-image).

If however, an html object over hover contains an image/video as a subchild, Alt-K does not reach it. It will be necessary to check each element to see if it has a subchild with an image/video, or at minimum check the last html object over hover to see if has a subchild with an image/video.

Feature request: One click to Toggle

Assalamu Alaykum,

Firstly, I'd like to thank you for making and sharing this extension. It works well.

I'd also like to suggest some small UX improvements:

  1. Currently, if you want to turn the extension on or off, you need to click on the extension icon, then click on the on/off toggle switch. That's two clicks, for the most commonly performed action. I know you can use keyboard shortcuts, but a) sometimes they don't work (Vivaldi bug), b) sometimes you don't want to take your hands off the mouse.

I think it would be better if you could just the click on the extension icon to toggle the on/off state, as that will be the most common action a user performs, and it saves the user one click.

The icon itself would have two states (perhaps the Ta can be inside a red/green circle depending on whether it is active or not), showing directly and visually whether the extension is active.

It would be similar to how this extension works:
https://chrome.google.com/webstore/detail/images-onoff/nfmlhilnjccdggifdbhnhkffmjgalbgg

  1. The extension settings, which I assume are never changed by the majority of users, are not necessary to be seen every time. So they can be moved to a separate page, accessible by right clicking on the extension icon.

On that settings page, it should show a complete list of all whitelisted pages.

It should also have the checkboxes for each option before the text label, as per convention. Currently, the settings checkboxes are after each label, which is a little confusing.

  1. The command to whitelist a page can be moved also. It should be accessible when the user right clicks on any web page. A right click (page context menu) action can be added to allow the user to "Add page to whitelist" or "Remove page from whitelist". This would be similar to "Block Element" context menu action that shows when right clicking on a page while the uBlock Origin extension is installed.

If the user wants to see all pages in the whitelist, he can right click on the extension icon, go to the settings page, and see the full list there. On the list, he can remove individual pages from the whitelist by clicking an X next to the URL.

Please let me know what you think of these ideas.

Firefox extension publish

Assalamu alaikum

It would be great if you could publish the latest version of your extension to the Firefox extension store! Your code works, and I have been using the version on github by loading the extension manually, but I need to do that every time I open the browser. It would be great if the extension on the firefox store can be updated to the code that you currently have.

Jazak Allahu Khair.

Feature Request: Unblur on Hover Only

Users have requested the ability to unblur an image on mouse hover only. For example, an image should be unblured if the user hovers over it for X milliseconds. Currently unblur requires mouse hover & Alt-K command.

The way to implement is by checking a users mouse movement. If the user stops moving the mouse for X milliseconds (adjustable), Tahir would automatically try to unblur whatever is underneath the mouse. Unless there is another way to implement this, I am worried this will add lag to each page -- since code will be executing almost every time the mouse moves & pauses.

Not sure if we should implement this, or implement and leave it up to the user to turn it on in settings.

Bug: Shortcuts should be dynamic

If I update the shortcut keybindings using the Chrome extension settings, the text in the Tahir panel (which shows when you click the Tahir extension icon) still shows the ALT + L and ALT + K keybindings.

It seems that the text here is hardcoded, and not dynamically taken from the actual keybindings.

Feature Request: Blur impermissible images only

Currently Tahir works by blurring all images, and thus preventing accidentally viewing any impermissible images. It would be ideal if Tahir blurred haram images only. However, this is difficult to do because: (1) existing skin detection APIs seem limited (decent failure rate, works for limited skin colors) & (2) running each image through a skin detector API will probably slow down browsing.

More research is needed to see if there are robust APIs that reliably & efficiently detect skin or if we should build our own (perhaps using OpenCV).

Feature Request: Ability to reveal individual image.

The inspiration of this feature request was taken from Facebook. Facebook masks images that it feels inappropriate in some way. But lets us unmask/reveal that image if we are still interested to see it. It would be a great addition to this extension.

Feature Request: Permanent Whitelist

Users have requested the ability to add domains to a whitelist that will not be blurred, even if Tahir is on. Tahir popup modal should have an area to "Manage Whitelist" where domains can be added/removed. When Tahir runs on the page, it should first check to see if the current tab domain is included on the whitelist, before automatically blurring.

Request to adopt dhikr-extension

JazakAllah khair for the wonderful extension! Just wondering whether you're willing to adopt this extension under your account. It was an idea by one of my roommates who suggested having a popup appear every X minutes with something beneficial could be a tool by which:

  • can remind you to not waste time (sometimes we go on social media to do X, but we end up doing ABCDEF+)
  • can remind you to get up and pray
  • teach you Arabic words and their translations over time

Currently, it only has 3 words configured to appear, but we can add more:

https://github.com/Wulf/dhikr-extension/blob/master/chrome/background.js#L6-L15

const notifications = [{
    title: 'Subḥān Allāh — سبحان الله‎‎',
    message: "God is Perfect.",
}, {
    title: 'Alḥamdulillāh — الحَمْد لله‎‎',
    message: "Praise and thanks belong to God."
}, {
    title: 'Allāhu akbar — الله أكبر',
    message: "God is Greatest."
}]

I published this a few years ago, but it got taken down from the AMO because I didn't upload images for the extension or something. Also, I didn't have a chrome developer account so it never made it to the chrome web store.

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.