- Clone this repo.
- Run
npm install
- Run
node node_modules/gulp/bin/gulp.js default
to check all the tests pass. - Run
node start-chabble.js
to host the site at ```http://localhost:8001````
jschat's Introduction
jschat's People
jschat's Issues
CSS message styling
Give the messaging a bit of a tart up
Prevent duplicate items existing in the queue
it'd be annoying if someone lines up the same thing more than once.
Randomize selected gif when giffing me
because life has a spice. And it's called variety.
Hide video
for music rooms/ swf rooms
Better notifications
It currently has the NEW! sign when you get a notification, but it would be even better if it made a noise and a favicon changed from green to red or sommat
Make it clear that the queue is waiting between songs
rather than looking the same as an empty queue.
different boards
There should be a way to change room based on the endpoint i.e /team or /tonight.
Think this may be reasonably simple with Faye's channels but I don't know
As a user I can mute the video
Mute only
Welcome page
The welcome page should be different from other rooms, and introduce chabble.
Testing Permission
A test issue to see if a non-collaborator can add an issue
UI for youtube feature
Display the dice roll requested
In addition to the result.
Messages aren't always sent after switching browser tab
You have to actively click in the message text box in order to get them to send?
Shouldnt be able to send empty messages
less fragile grabbing of youtube + tests!
Cookies should last 30 days
Currently expires with the session
Server side data sanitisation
How about we create an incoming extension that is first in the chain to filter out all unwanted HTML, scripts etc.
Add analytics
GA for standard tracking?
Also track Events on video queues with service to get an idea of which services are popular
Maybe even log messages sent and which room they are sent to so we can get a better feel for usage levels
Create permanence for created chats
About 30 of the last messages should be viewable when you log in
Show upcoming video(s) in some way
Suggestions:
- Just the next video and who queued it.
- List of who queued the next X videos.
- Just a count of the number of videos in the queue.
Thoughts?
Add label to show current room
Connection to jschat sometimes get dropped.
Not sure if this is a problem or not. I noticed the following in my chrome console:
WebSocket is already in CLOSING or CLOSED state.Faye.Transport.WebSocket.Faye.extend.Faye.Class._ping @ faye.js:2
12faye.js:2 WebSocket connection to 'wss://murmuring-headland-2196.herokuapp.com/faye' failed: Error in connection establishment: net::ERR_NAME_NOT_RESOLVED
faye.js:2 WebSocket connection to 'wss://murmuring-headland-2196.herokuapp.com/faye' failed: Error in connection establishment: net::ERR_NETWORK_CHANGED
we might need to do something that tries reconnecting after X if the connection is dropped.
Keep previous username
Store username so that it doesnt reset to Anon every time
Ability to whisper/direct message
User 'log in'
Maybe not passwords but there should be some sort of log in so you can't change your name midchat without logging out
some html links don't work with linkify
like http://1.bp.blogspot.com/-hapMgcOlspk/Tzp0GNAtc-I/AAAAAAAAErg/e5BEDfDzHeg/s1600/pugs+love+hugs.jpg (because of the + signs)
Per room shared youtube channel
UI should show message sent times
At the moment it's impossible to tell if I'm talking to today people or yesterday people.
Queue priority management
I propose that the queue gets prioritized by user so that users can't fill the queue with their songs and then others have to wait for ever.
Example:
Paul adds 10 items to queue
Steve adds 2 items to queue
Oli adds 2 items to queue
Queue would be: Paul 1, Steve 1, Oli 1, Paul 2, Steve 2, Oli 2, Paul 3, Paul 4..... until someone else dropped songs in.
Thoughts?
Stop source being retrievable via web request
For example browse to
https://murmuring-headland-2196.herokuapp.com/extensions/dice-roll.js
Better would be to move everything that we want web accesible to a www\
directory and then mount file as var file = new(statix.Server)('www\');
Messages lost when Heroku deploys
Due to the local JSON file being removed on deployment. This also seems to happen when the site isnt used for a while.
We will need to look at a DB instead.
Easier way of adding items to the queue
We need to agree an implement a better way to add media to the queue.
Video time remaining
Extension triggers should all be case insensitive
Should be possible to auto gif the chat
For example typing:
gif me awesome
should go to http://giphy.com/search/awesome and put the first gif in the chat.
Project is missing tests
I like tests.
Persist play queue contents
Questions:
- Redis again?
- Should we persist the current song and position? Or just the upcoming songs.
Generic play queue for each room
As part of #68 we need a server side object to manage queues of items that "play" for a certain time.
Current thoughts:
For each room:
- Top item of a queue gets pulled off. Start time is recorded.
- Every few seconds a message will be broadcast containing:
* the Item type
* identifier for the queued item (i.e. youtube video id)
* title of the item
* play offset in seconds?
* user who played the item - When the elapsed time (plus maybe some buffer) is passed return to step 1.
Client should (at least temporarily) remember videos it can't play
any forbidden video gets started again and again. The player can't start it but keeps getting signals telling it to start. Better approach would be to remember the video is banned and just display a message.
clicking back from one room to another does not bring up persisted messages
Remove simulated media request
Remove from the UI, main.js and the chatclient.
Ability to see who is currently active/logged in
feature: roomcursion me #room
typing roomcursion me #room
should insert and iframe pointing to that room into the room.
Thoughts?
Hyperlink code is message with the other extensions
elipses are turned into links
for instance hello... is it me you're looking for
stop people using <script>s
Obvs the html is cool and pretty much the best thing about it, but are not cool (STEVE!) so can we prevent those
room me extention
ability to say 'room me' to get a new room
make the left-hand side of the page a frame of some kind
so that the text on the right doesn't force pictures down
Favourite rooms
I think being able to add your own favourite rooms rather than rely on recent rooms would be a much better implementation...
Limit video length that can be added
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.