Giter Club home page Giter Club logo

parrot's Introduction

Parrot - Robin Grow Fork, modified for comma separated multi-channel listening, colors, channel selection, Twitch Emotes, and more!

##SPECIAL THANK YOU TO https://github.com/vartan FOR MAKING THE BASE ROBIN-GROW. WITHOUT ROBIN-GROW, PARROT WOULDN'T EXIST THE WAY IT IS. PLEASE GIVE HIM A THANK YOU: vartan#162 #SO LONG AND THANKS FOR ALL THE MEMORIES!


Join the chat at https://gitter.im/5a1t/parrot

THIS FORK WAS MADE WITHIN soKukuneli

This is not the main branch! But it has some great additional features!

Special thanks to OrangeredStilton, voltaek, Dashed, lost_penguin, Daegalus, Wakafanykai123, Stormagnet, AviN456, lajiggyjarjardoo, and all our testers.

Installation

Install a userscript extension such as greasemonkey or tampermonkey:
Click here: http://tampermonkey.net

Then, click this link to install the script:
https://github.com/5a1t/parrot/raw/master/robin.user.js

If you get a bunch of code instead of it installing, you can copy and paste the code as a new script in greasemonkey/tampermonkey.

You can view the source code or contribute at:
https://github.com/5a1t/parrot

Feature Requests, Bug Reports, Questions, and Discussion: https://www.reddit.com/r/parrot_script/

Features

  1. Automatically votes "grow" in each round. Respects your current choice though. Hides vote buttons if you want.
  2. Spam blocking: Automatically blocks spammers and bots. Click on a username to block additional users (persistent).
  3. Shows a countdown of the time remaining in each round.
  4. Displays the total vote counts for each option.
  5. Your username color is visible in chat.
  6. Chat links are clickable.
  7. Dropdown menu for different chat channels.
  8. Visuals rework, complete with font size, spacing, clearing, and padding.
  9. Option to enable unicode!
  10. Fancy easy update button!
  11. Global username mentions.
  12. Twitch.tv & BTTV emotes!
  13. Tab-Based Chatting!
  14. Channel exclusion from global chat.
  15. Sent Message History.
  16. Minified version of the automatic standings board, along with a full-size one!
  17. Optional chat encryption with a key of your choice!

Updates

0.2: Using grow command instead of clicking stuff. Sends command when page is loaded, and also every minute just in case.
0.3: Also informs the page about the script
0.4: Is now smart enough to detect if you've already voted for grow and won't spam the vote.
0.5: Automatic reload on no activity
0.7: Now shows useful information at the top of the page as well.
0.8: fixed time bug, will rejoin on a failed chatroom
0.9: Will now only send the message one time, won't resend the message on refresh!
1.0: Better UI
1.1: Gets actual counts from reddit backend
1.2: Filters out bots which start with '['
1.3: Filters out messages that users keep repeating
1.4: Improved performance
1.5: Plays a sound when you are mentioned in chat
1.6: Adds a send message button for mobile
1.7: Refreshes the page if reddit is down. Also highlights your messages in the chat
1.8: Links in chat are clickable
1.9: Dropdown menu for chat channels that auto-prepends (dashed). Also mute persistency (voltaek).
2.0: The chat channel is before username w/ set tabbing and custom username background (dashed, Daegalus). 
 2.0.3: Adds a font size box. Global username mentions (dashed). Removed useless settings. 
 2.0.4: Chat clear button. Toggleable Unicode support. Twitch emotes (anadee).
2.1: Simplified settings box (dashed). Lots of cleaning up. Username alignment setting.
2.2: Tabbed chat! Switched the name to parrot around this time. Even more code cleanup (voltaek).
2.3: Moved settings button, new stats thingy when buttons are hidden (dashed).
2.4: Channel switching hotkeys, you can use slash commands in tabs (dashed, lost_penguin).
2.5: Optimizations and fixes, rearranged settings (dashed, Annon201)
2.6: Message history w/ up and down arrow (LTAcosta). New title (dashed). Leaderboard reporting (Unimatrix0).
2.7: BTTV emotes (anadee). Sent message history setting (LTAcosta). Standings view. Reorganized checkboxes.
2.8: Channel exclusion filtering (dashed). You can toggle the sidebar to the left or the right (ceetee). Gitter devchat.
2.9: Fixes for autocomplete and scrolling. Hide channels in global (lost_penguin).
3.0: Suprise :) (lajiggyjarjardoo). 
3.1: Full  monstrous standings table. Settings cleanup (lost_penguin). Fix remaining time.
3.2: Rate timer is now more noticiable (mrspicyweiner). Fixed channel and autocomplete bugs.
3.3: Changed the chat to use table formatting on message list (Johan) - or maybe not.
3.4: FREAKING ENCRYPTION MAN (mrspicyweiner). Hover panel for PMs (5alt). 

Screenshots

1 2 3 4 5

parrot's People

Contributors

5a1t avatar alok0 avatar anadee avatar annon201 avatar codyrobert avatar daegalus avatar dashed avatar devoidfury avatar gisikw avatar klynni avatar ltacosta avatar mofosyne avatar mrspicyweiner avatar peachicetea avatar pernicat avatar salzorz avatar shou avatar tetra-fox avatar the-mazzter avatar tslater2006 avatar tw4r avatar two9a avatar tylercarberry avatar unimatrix0 avatar vartan avatar verox- avatar vinnymac avatar voltaek avatar xbytez avatar yazgoo 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

parrot's Issues

Mute filter does not work on consecutive posts

If someone that is muted posts, only the first line is muted. The next lines which do not have a name attached (multiple lines in quick succession) are not muted. This is quite annoying.

For example: https://imgur.com/SBqCaE7
I did not write the highlighted text, it comes from a conversation that I tried to mute.

Maybe this could be fixed by deleting all lines after until it encounters a new username?

Blank 'System' chat

image

After browsing a few channel tabs, System just showed white. I have changed my font to Helvetica, Twitch Emotes turned on, and two usernames selected to highlight.

Feature Idea: Active user counter

Have an active user counter on top of user list.

havent looked at how the new user list works but if we make a counter that displays how many people are in the list, we will know how many people roughly are active at the current time.
(an interesting number to know versus the amount of people in the room)

might be as simple as pulling the length of an array or we may need to count the elements with jquery but it should be a simple thing to do.
(i would but i got a deadline)

Version number on top of settings

settingContent .robin-chat--report {

position: absolute;
top: 114px;
right: 86px;

}

places the version number on top of the settings page.

Can't load script

I can't load the script, but Tampermonkey is enabled. How do I fix this?!

Channel tab blanks when log becomes too big

Channel tab blanks when log becomes too big

For some reason, after a certain amount of time the % and # channel becomes empty. I presume there is some bug that turns the screen blank for those tabs when too many messages are logged. The other tabs are okay.

Ability to have no channel

I know this is made for larger chats, but I started a new room on my alt and it's frustrating seeing that I'm forced to have a channel.

Settings channel input not being saved

settings.channel is not being saved.

localStorage.getItem("robin-grow-settings")
"{"removeSpam":true, "findAndHideSpam":true, "vote":"grow", "hideVote":false, "enableUnicode":false, "maxprune":"500", "fontsize":"12", "username_bg":"",
"channel":"#,%,^",
"filterChannel":true,
"twitchEmotes":true, "spamFilters":"spam example 1, spam example 2", "fontstyle":"", "alignment":true, "mutedUsersList":["JarJarBlinked"], "tabChanColors":true, "timeoutEnabled":false}"

localStorage.getItem("robin-grow-settings")
"{"removeSpam":true, "findAndHideSpam":true, "vote":"grow", "hideVote":false, "enableUnicode":false, "maxprune":"500", "fontsize":"12", "username_bg":"", 
"channel":"#,%,^", 
"filterChannel":false, 
"twitchEmotes":true, "spamFilters":"spam example 1, spam example 2", "fontstyle":"", "alignment":true, "mutedUsersList":["JarJarBlinked"], "tabChanColors":true, "timeoutEnabled":false}"

As you can see channel remains the same even though filterChannel has changed.

Many tabs break layout, can block settings button.[Includes fix but im a github noob]

tested with this filter: %chat,^,$,!,?,# s,#s,#rpg,#pol,penis/
some of the channels are dead but thats irellevant, we dont want the tabs to be able to break the page.

i suggest the following on the main container:

ul#robinChannelList {
width: 72%!important;
top: 105px!important;
}

personaly, i am also using the following to resize the tabs:(makes them a bit more compact)

ul#robinChannelList a {
font-size:1em!important;
padding:2px 30px !important;
width:auto!important;
}

the !important's are only there because i use these codes with a chrome extension that injects css, because i am lazy.

if needed i can provide modified source code.

Possibility of switching the autovote to STAY for tier 17 rooms only (as we likely won't get an 18th tier)?

Something that's getting attention is #StayOn17. Currently we have a tier 16 room that's been going for over 48 hours now. Tier 17 should arrive in time before April 8th but it is very unlikely that we'll see a tier 18 before Robin is shut down. This is why #StayOn17 is being promoted as a STAY vote will be the only thing that could be achieved in the time available. It would be breaking the current stay record.

Since a mass majority of people are likely using autogrower scripts, the best chance of us achieving this would be for these scripts to vote STAY when a tier 17 room is created. However, since userscript changes only apply on refresh, such a change should be done well before a tier 17 room is created to allow time for people's scripts to update. You guys have an "Update Parrot" button so that helps a bit but whether people will actually click it instead of relying on the automatic update most userscript extensions have is another matter.

To avoid collapsing the current tier 16 (and lower) rooms, this change of vote should only apply to tier 17 rooms.

There are other autogrower scripts so they'll need to be reached out to too but I'm starting here to see if there is an interest in this as this seems to be one of the more popular scripts currently.

Thoughts?

Ability to show/hide the sidebar[Includes fix code but im a github noob]

it would be nice to have more space on the screen and you don't need the sidebar all the time, so i suggest being able to show/hide the sidebar.

this would probably be best with a button but i kinda suck at UI so i just made a code that makes clicking on the header(eg the name of the room) toggle display of the sidebar.

css:
.robin-chat--sidebar.sidebarminimized {
display: none;
}
`

js:
$(window).load(function(){
$('.robin-chat--header').click(function() {
$(".robin-chat--sidebar").toggleClass("sidebarminimized");
});
});
`

Votes updating on vote buttons but not list of users

As shown in this screenshot:
screenshot

This has happened in every room I've been in. I'm on the latest version of Parrot (3.35). As you can see, the number of votes is updating on the vote buttons but not to the left of people's usernames in the vote list.

Default filters

Some discussion on setting a default recommended filter going on in "#pol" soKukuneli chatgroup.

To start off, this is my current filter "%chat,^,$,!,#pol,penis/,#rpg"

%chat : General
^ : dev
$ : triva
! : Alerts
#pol : politics
penis/ : ...
#rpg : Role playing game

These are organically obtained. But we could encourage everyone to switch to something that is more structured perhaps.

Not necessarily an issue, but we need to have an option to stay at 17

Rusty on coding but i guess if you make it so the users is greater than 3500 then have it auto stay that would be extremely useful. As an option, so that not everyone is forced into it, but have it available. I know I won't be up for the merger, I don't want to autogrow and fuck it all up somehow. Anyway that's my two cents. Good-day.

Active Channel Discovery

The concept is to monitor the first keyword out of each message and tally it up based on activity over a period (e.g. number of messages in 10 mins). The top 5 may be displayed somewhere as a clickable addition to the filter.

To minimise false positives, you could limit it to <!@#$%^&*><optional ALPHANUMERIC> format.

Channel Discovery:
[+add] %chat 
[+add] #gov
[+add] #pol 
etc...

Utilizing reddit's PM system for in-room PMs

http://pastebin.com/PP5r0MHU

Current issues with script:
Will automatically mark all users mail as read, needs a way of caching none parrot PMs and auto-marking as unread

Alt accounts will require capcha for messages, could work around it prompting user input but i was going to write the outgoing messages as a simple ajax request.

Left to do:
Need to write up the ajax request to send a message

Need to implement the pms into the chat room

Feature idea: Rate limit helper

Functionality related to avoiding the annoyance of hitting the rate limit and having your message swallowed by robin.

My initial idea was to simply prevent the rate limit from being hit by making the enter key inactive for the time required by rate limit (6 seconds by my current test).

This would mean you just have to press enter again, and dont have to press up to get the last message first.

The next level of this feature could be detecting that an attempt to send has failed and then automaticaly sending the message once the time has elapsed.

It occurs to me that this might help spammers if it allowed them to stagger messages to be sent every time the rate limit is up, so i'd suggest only keeping one message. - solving the problem and not creating a big new one.

Add a , to the channel filter by default

New users are confused after installing parrot that they can no longer chat in global/System tab, this is a bug, because of the "send to:" drop down menu, not allowing the global channel by default.

Rate limit + Encryption = Encoded text in input

If you try to send encoded text, it should return the original text to the input if you hit the rate limit.

Instead it shows the encoded text, which means if you send it again it won't be decryptable.

Auto-completion not working as intended if the field is empty

If the message field is empty and I press tab, it fills in the name of the first person in the room in alphabetical order. If I press tab again, nothing else happens.

Expected behavior:

  • I press Tab in the field while it's empty and nothing happens
  • I press Tab in the field while it's empty and it completes it with the name of the first person in the room, but more Tab presses change the username in a cycle

we need to organize how to handle the t17 merger

from a comment in robintracking:

The worst thing you can do once a room is past its primary voting stage is try and convince people to vote shift. If the room loses clear majority during reevaluation, it dissolves.

So, say you have 6,000 people voting. If 3,000 vote for stay, and 2,999 vote for grow, and 1 votes for abandon, the room dissolves as if abandon had won. You can see very quickly how this could be abused.

So, you don’t need to convince half the people to stay. You need to convince like 65% of the people in both rooms, one of which will have been awaiting merge for 60 hours, to vote stay in the new room, before it ever forms. It’s a fools’ errand.

Can we add a feature like the autotracker has to Stay if room population is >5000 or something?

T17 will be the last one.

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.