GithubHelp home page GithubHelp logo

stackxyz / stackeye Goto Github PK

View Code? Open in Web Editor NEW
84.0 84.0 27.0 7.58 MB

StackEye is a chrome extension which lets user watch questions on stackoverflow and other stackexchange sites.StackEye notifies the user about any new comment/answer on watched questions.

JavaScript 55.46% CSS 34.91% HTML 9.63%

stackeye's People

Contributors

alt-grr avatar blunderboy avatar mukulgupta21 avatar neoharry avatar rahuljain983 avatar ror-shubham avatar sachinjain024 avatar seanf avatar unknownmac 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

Watchers

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

stackeye's Issues

SW-1 Check if active tab url is valid or not

When user clicks on "Watch button", we want to add the url to watchlist but before that we want to ensure if the url is valid or not. This issue checks if url is valid or not and we can just alert the valid status for now on button click.

Show message whenever a question is watched or unwatched

Whenever a question is watched/unwatched we change the color of Eye accordingly. We should also show additional message like this:

Watch: "Question has been added to your watchlist"
Unwatch: "You are no longer watching this question"

Requests too many permissions

Since 571069e this extension has been requesting access to all web pages, instead of just Stack Overflow, Stack Exchange and so on. From a security point of view, this is far too broad for a Stack Exchange-specific extension.

As far as I can tell, the previous URL patterns (see the commit above) covered all the Stack Exchange sites which currently exist. Please go back to the more restrictive permission set!

Thanks!

PS not sure if this might help with handling new Stack Exchange sites (or Stack Overflow Enterprise sites): https://developer.chrome.com/apps/permissions#request

Implement export/import feature

Here is the source code which could be used to convert text to file and trigger download

function getOrCreateDownloadLink() {
    var $link = $('#downloadLink');

    if ($link.length === 0) {
      $link = $('<a id="downloadLink">download</a>').appendTo('body');
    }

    $link.hide();
    return $link;
  }

  function saveAsTextFile(text, fileName) {
    var textFileAsBlob = new Blob([text], { type:'text/plain' }),
      $downloadLink = getOrCreateDownloadLink();

    $downloadLink.attr('download', fileName || 'file');

    if (typeof window.URL !== 'undefined') {
      $downloadLink.attr('href', window.URL.createObjectURL(textFileAsBlob));
    }

    $downloadLink.get(0).click();
  }

  function getOrCreateUploadLink() {
    var $link = $('#uploadLink');

    if ($link.length === 0) {
      $link = $('<input type="file" id="uploadLink" />').appendTo('body');
    }

    $link.hide();
    return $link;
  }

  function loadTextFile(callback) {
    var $link = getOrCreateUploadLink(),
      reader = new FileReader();

    reader.onload = function(evt) {
      callback(evt.target.result);
    };

    $link.change(function() {
      reader.readAsText($link.get(0).files[0], 'UTF-8');
      $link.val('');
    });

    $link.click();
  }

How to view list of followed users from Popup?

Hi Sachin.

I just discovered StackEye and it looks promising. I'm testing it out and I see that it is designed to "follow" users as in aggregating all their posts into one place.

What I'm wondering is how hard would it be to be able to create a button to see a list of all the users I'm following in the dropdown/popup from the Chrome extensions toolbar? I found the list but it is not viewable from clicking on the Chrome extensions bar link:

image

One needs to click "View All" to be able to see the list. Here is what my "View All" looks like:

image

A second related issue is that you can see I'm following 4 users, but it shows zero in the popup.

Thanks

Import favourite questions feature and support advanced searching

Allow user to add question to their favorite list and give option for searching on this list.
There will be another tab on index.html known as Favorites.It will be helpful later on to find out some question.

UI should have advanced options like:

  • Searching on list by title
  • Sorting by Date
  • Sorting by Title
  • Searching by Tag

Restrict the number of followed users to be 25

We don't want users to follow too many users otherwise they will start getting too many notifications and instead of checking up with answers. They will remove notifications without reading them. Ultimately, it will lead the users to lose the interest in following users So lets put a cap on number of users to be followed.

Highlight questions/answers/comments made by followed users

When a user visits a stackoverflow question, he should instantly know that there is an activity by a user followed by him. Possible options:

  • Make left border
  • Change background color of the box

How to do:

  • When page gets reloaded, apart from sending watch status background script should also send the list of users followed by the user and rest of the things will be done by content scripts. Content script will check the answers/questions/comments by userIds and highlight those boxes.

Cleanup: Remove validateUrl from background usage

We have ensured that our content scripts always get executed only on stackexchange specific sites So we always get messages from those urls. So we need not have those checks and can be removed.

Explore How to get Emails for StackEye notifications

Currently! User is not notified by emails. As user is not always available on desktop, think about a mobile solution.

Possible options

  • Firefox Android extension
  • User sign in via google and able to subscribe a list of tags
  • User can also opt to get notifications via email about answers, comments..

This will be useful to people who are are promoting their product on SO.

Add grunt to the project

Mainly for these tasks:

  1. Minify JS and CSS
  2. Create Zip file to include required resources to be packed

Follow users feature

There is no functionality on stackoverflow using which you can follow a particular user.
This is a great feature and must be introduced.

Right now, StackEye can be used to watch only questions. Why not make it watch users as well ;)

What is with the question watch icon?

Weird eye

The weird eye icon creeps me out is it not possible to having a cleaner icon that fits more with the Stack Overflow aesthetic?

This is not a criticism the extension is fantastic and I would be lost without it.

Improve Popup Performance

Currently, we are rendering all the notifications in popup while we only show recent 5 notifications. We should not render rest of the notifications. Currently the logic to hide the remaining notifications is written in CSS.

This task aims at improving the popup opening time and page rendering performance by just rendering 5 items in the popup.

Add Delete All button on notifications and questions tab

Right now, user has to select individual items and then click on Delete button.

Logic:
Update ListItemSelector.js to include a method - getAll_Items which will return the list of all items. Now, apply bulk delete on the obtained list.

Feature request: Firefox add-on

This tool looks awesome, but I don't want to switch to (or support, really) Chrome.

I have no idea how high complexity porting this to a Firefox add-on would be, so I'm in no way saying you should do it, but there were no other issues related to this so I wanted to at least float the idea.

Update the storage system from using array to individual objects

Right now, we have two arrays

  1. SW.stores.questionFeedStore and
  2. SW.stores.notificationStore

We read, update and save the entire store whenever any question gets changed, any notification is changed etc etc. Instead we should create these arrays by reading individual objects and just update the object in the array and sync the object only.

PS: Make sure to make this backward compatible.

Allow users to follow StackExchange sites

Investigate StackExchange API and figure out what can be delivered to users as they intend to follow some site on StackExchange network. Also restrict them not to follow more than 5 sites.

Eye icon is not present on question page

Eye icon is not present on question page whenever question is opened in new tab.

Reason: Whenever a page is loaded, content script sends message to the background with URL of the page as parameter. Background decides whether it is a valid SO page or not and sends back a message to content script of "Active Tab". If it is valid question page, content script shows the eye icon with the status sent by background page.

Solution: Instead of sending message to current active tab, Send message to all the tabs which have that URL from which request came.

New SO Profile Page prevents adding new users

With the recent revision to the SO user profile page, the "FOLLOW" button to add a User no longer displays. The result is that there is no way to add new users.

It may be that the layout changed radically or that the new tabs (Profile | Activity | Edit...) overlay or are in the space previously used for the Follow button.

Google Chrome doesn't sync extension data

At first thanks for this nice extension.
My problem is When I try to synchronize extension it's not getting my previous saved data that I saved using my account form different device like laptop. But after login from different device it's getting this extension but not my saved data for this extension. Please help what can I do?

Migrate StackEye App to React JS

Items:

  • Setup React App with multiple routes for each User Notifications, Question Notifications, Users, Questions with empty/default content
  • Populate Data into each view
  • Use ItemSelector to select items and use that as mixin. Move most of the common code there.
  • Update count in each tab heading when items are removed.

Futuristic items:

  • Implement Storage Service and publish that as npm package and use 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.