Greasemonkey Opera

by John Walker

This will work in Firefox, Google Chrome, and Vivaldi. It will automatically enable the cheat when you go to xtramath.org. Make sure you have the correct extension installed: For Firefox; For Google Chrome; For Opera; For Vivaldi; Click on the following button, then click install. Scriptish is a fork of Greasemonkey, which is a Firefox extension and the first user script engine. Greasemonkey had long supported Firefox 1.5, and plenty of legacy code still existed. Furthermore, Greasemonkey needed a complete reorganization, and plenty of new features. But unfortunately, development of Greasemonkey is too slow. The only demerit for Greasemonkey addon is that it is just for firefox users. So why should they leave other browsers? Opera browser too has a good amount of users. So, here is how to use/make greasemonkey scripts work in opera. Emulate GM Functions user script can make some of the of the Greasemonkey scripts work in opera. Mozilla is the not-for-profit behind the lightning fast Firefox browser. We put people over profit to give everyone more power online.

Media Trigger Words

Bias in the legacy “mainstream” media manifestsitself in many forms: injecting opinion into stories whichpurport to be objective reporting, choosing not to reportstories which don't advance their agenda or burying them inobscure locations, creating the impression that support forthe favoured side of issues on which the populace is about equallydivided is the consensus view and opponents a marginalfringe, and more. One of the most insidious forms of biasis the use of what I have come to call media triggerwords.

Trigger words are terms with well-defined meanings which havebeen endowed with additional power, often emotional in nature,by use and repetition in the legacy media and government schools,employed to evoke a visceral response and short-cut rational thoughtin the reader. Consider, for example, “controversial”.By itself, the word is entirely devoid of political tilt in anydirection: it simply denotes something about which peopledisagree with some degree of ferocity. But look at how it's used:legacy media outlets consistently label issues they opposeas “controversial”, while those they endorse,equally disputed amongst the public, appear without an adjective.The bias is never explicit, but deliciously subtle and effective:the “controversial” issue is, inarguably, controversial,while the unlabeled one appears, by contrast, to be the consensusview of all right-thinking people.

Another frequently-encountered example of trigger words is the selectivelabeling of the political views of opponents, while allies never seemto merit an adjective. In the collectivist legacy media, for example, thosewho differ from their views are invariably labeled “right-wing”,“conservative”, and the like, while those who agree withtheir agenda and are just as far from the political centre will rarelyif ever see their names preceded by “left-wing” or “liberal”.The opposite would be the case in right-leaning media, although amongthe legacy media the overwhelming tilt is toward the left, so you don'tsee it as frequently, although it is on display inconservative new media outlets.

Here is a collection of trigger words I've encountered in a widevariety of collectivist legacy media. The “Love” and“Hate” designations are those the publisherwishes to trigger in the audience; in media biased the other way,the labels may be reversed.

LoveHate
CollaborativeArrogant
CollectiveChristian
CommunityCompetitive
CommonsConservative
Consensus/ConsensualControversial
CooperativeCorporate/Corporation
CreativeDecency
DemocraticDivisive
DissentElite
Diverse/DiversityEnterprise
EnvironmentalEvangelical
EquitableExtremist
ExpertFaith
FoundationFundamentalist
FreeIndividual
GreenMarket
IndependentMoral
InnovativeNuclear
Mainstream/MainlinePartisan
MaverickPrivate
OpenProperty
OrganicReactionary
ParticipatoryReligious
People'sResponsible
PopularRight-wing
PragmaticTraditional
Progressive
Protest
Public
Renewable
Social
Solar
Sustainable

There are few clichés as tired as “one man's freedomfighter is another man's terrorist”, but tedious repetition doesn'tmake it any less true, especially in the labels the legacy media applyto those who indiscriminately slaughter noncombatants. Killers on behalfof causes to which the media are sympathetic tend to be labeled toward the topof this scale, while those who murder innocents to advance policiesthe media oppose receive tags toward the bottom.

The Spectrum of Killers
Freedom fighter
Activist
Dissident
Militant
Insurgent
Rebel
Guerrilla
Terrorist

Suggestions for additions or changes to these lists are more than welcome. Please use the “Feedback” button at the bottom of this page to submit them.

Monkeying with the Media

Wouldn't it be great if your Web browser could automaticallypoint out the trigger words in documents you read, and eventranslate politically correct gobbledegook into plain talk?Well, if you use the Firefoxbrowser, now it can! By installing theGreasemonkeyextension, Firefox can process pages you view withuser scripts which examine and modify thecontent of pages you view, either from all sites orspecific sites you designate. Two Greasemonkey user scripts,which can be installed directly from this page, allow you tohighlight trigger words and deflate euphemisms and politicallycorrect bafflegab all across the Web.

Installing Greasemonkey

Before you can use these user scripts in theFirefoxbrowser, you must first install the Greasemonkeyadd-on package. If you're unsure whether thisadd-on is already installed, pull down the “Tools”menu and see whether there's a “Greasemonkey”item within it—if not, you'll have to use thefollowing link to install Greasemonkey into your browser.

Install Greasemonkey

Installing Greasemonkey by itself does not change the behaviouror your browser in any way. It simply gives you the ability toinstall one or more “user scripts” (identified bya file name ending in “.user.js”)which are run to preprocess Web pages loaded by the browser.

If you suspect Greasemonkey or one of your user scripts ofcausing problems in viewing a page, use the “Tools/Greasemonkey”menu to disable Greasemonkey entirely, then reload the page. If theproblem goes away, you can then track down which user script (if you'veinstalled more than one) is the culprit by re-enabling Greasemonkey,then using the “Tools/Greasemonkey/Manage User Scripts”menu item to display the configuration dialogue, then disable yourinstalled scripts one by one to determine which is causing the problem.Remember to reload the page after each script is disabled, as scriptsare only run when a page is loaded.

Installing the User Scripts

There are two completely independent Greasemonkey scripts availablefrom this page.They perform entirely different functions, come preconfigured withdifferent default word lists, and can be installed separately ortogether.

If you're installing the scripts on a browser other thanFirefox or wish to download and examine them before installing,right click (or whatever the convention is on your computer)the installation links below and save to a local file.

MediaTriggerWords

The first script, MediaTriggerWords, highlights a set of trigger wordsdefined within the script. “Love” words are highlightedin blue, “hate” words in pink, and “spectrum ofkillers” words in yellow. The actual text of the page is notmodified at all: only the background colour of the trigger words it contains.

To install MediaTriggerWords, click the link below. IfGreasemonkey is installed and enabled, a Greasemonkey Installationdialogue will open automatically. Click the “Install”button and the user script will be installed. You may thenload or refresh various pages to see how they appear with theMediaTriggerWords script active. If the installation dialoguedoes not appear when you click the installation link, Greasemonkeyis either not installed in your browser or disabled.

Grease Monkey Operations

Install MediaTriggerWords

OldSpeak

The second script, OldSpeak, translates a set of wordsto alternative text. This allows you to translate “newspeak”terms to their plain-spoken equivalent.

To install OldSpeak, click the link below. IfGreasemonkey is installed and enabled, a Greasemonkey Installationdialogue will open automatically. Click the “Install”button and the user script will be installed. You may thenload or refresh various pages to see how they appear with theOldSpeak script active.

Install OldSpeak

As supplied, OldSpeak is configured to mock appealsto authority by performing the following translations:

Analysis:Propaganda:
analyst(s)moron(s)
expert(s)idiot(s)
politician(s)crook(s)
Report:Propaganda:
Study:Propaganda:

You can add additional translations asdescribed below. A variety ofcommented-out transformations are included in the script sourcecode which you can enable if you wish, and which will serve astemplates for handling various cases in transformationsof your own devising.

Grease Monkey Operations

Red Meat Edition:If you're interested in developing more complicatedtransformations than those in the default script, or simply wishto see how OldSpeak can be deployed by an opinionated person toskewer mealy mouthed media, give the “red meat”edition of OldSpeak a try. The transformations range fromamusing to incendiary, and make no effort whatsoever atideological balance: they exude anarcho-libertarianism fromtheir every regular expression. See“Customising OldSpeak”below for details on how to adapt this script to your ownindividual spin.

Install OldSpeak “Red Meat” Edition

Configuring Affected Sites

By default, the scripts are applied to all Web pages you view. If you'dprefer to restrict their use to specific sites (for example, consistentlybiased legacy media outlets), you can do so by choosing the“Tools/Greasemonkey/Manage User Scripts” menu item, clickingthe script in question, and editing the “Included Pages” listwhich initially is “*”, denoting all sitesand pages, to a list of sites to which you wish the script to apply.You can use asterisks in the URL to wild-card variant strings, and addany number of included pages with the “Add” button. If you'dlike the script to apply to all pages except for a few specific exclusions(for example, your own site, or scrupulously objective Fourmilab), leave theasterisk in “Included Pages” and list the URLs to which the scriptshould not be applied in the “Excluded Pages” box. As always,you'll need to reload any affected pages for the changes to take effect.

Above is an example of the MediaTriggerWords script having been configuredto apply only to a list of legacy media outlets for which it is well-suited. Theappearance of this dialogue box may vary depending upon the versions ofFirefox and Greasemonkey you're using and the operating system upon whichthey're running.

Customising the Scripts

When you install a Greasemonkey user script, a copy of it isplaced in your Firefox user profile directory, from which it isrun whenever a page for which it is enabled is loaded. Youcan modify an installed script by selecting the“Tools/Greasemonkey/Manage User Scripts” menu item,clicking the script you wish to change, then pressing the“Edit” button. If your system is properly configured,the JavaScript source code for the script will open in a text editorwindow in which you can make whatever modifications you wish, savethe script, then refresh a page to test your changes.Important: When you're satisfied with your changes toa script, be sure to save a copy in a different directory.Should you re-install or update the script from its host site forwhatever reason, your modified version in the profile directorywill be overwritten, and you'll need to refer to your local copyof the modified script to integrate your changes into the standardversion.

Modifying user scripts usually requires knowledge of JavaScriptprogramming and the Document Object Model (DOM) structure usedto access the objects which compose a Web page. If you're notfamiliar with these details you can still, however, if you'recareful to copy the punctuation of existing items, modify theword lists used by the scripts to highlight and translate documenttext.

If, after modifying the script, it ceases to work, you've probablyintroduced a syntax error in your modifications. Display theFirefox error console with the “Tools/Error Console”menu item, reload a page, and you'll probably see an error messagewhich identifies the line in the script on which the error was detected.

Customising MediaTriggerWords

The changes you'll most likely want to make to MediaTriggerWordsare to the lists of words which are highlighted in various ways. Thewords are defined in a series of calls to the defwords()function, one for each category of words. Here, for example, is anabbreviated list of “love” words:

The array defines the list of words, while the final string argumentspecifies the class of the words, which corresponds to astyle definition in the addGlobalStyle() function callabove the word lists. You can add new classes of wordsby defining new styles which you then reference in additionaldefwords() calls. The word entries in the array maybe simple words or JavaScript regular expressions to match pluralor other variant forms. Note that if you aren't familiar withregular expressions, you can always handle plurals just byentering both the singular and plural forms of the word. Matchingis case-insensitive (for example “Alternative” matches“alternative”, “Alternative”,“ALTERNATIVE”, and “AlTERnaTIvE”) unlessthe first character of the pattern is “=”,in which case the balance of the pattern is matched ina case-sensitive manner.

Customising OldSpeak

Because it performs replacement instead of just highlighting words,the OldSpeak script is somewhat more complicated and itsconfiguration accordingly trickier. The list of words and theirreplacements is declared in a call to the deftrans() functionat the top of the script. The argument to this function is an objectliteral consisting of one or moreproperty:value pairs in which the propertyis the word or regular expression to be replaced and the value is thestring which should replace all matches found in the page text. Hereis an example of a replacement containing three terms:

Note that we have used regular expression syntax in the first item tomatch plurals. When you define an optional plural, you must use oneof the plural-matching patterns defined in the pluralise()function later in the script; if you add a new form of plural or othervariant form of a word, it's up to you to add it to thetransformations done by that function. There is no requirement thatthe replacement word form its plural in the same way as the word itreplaces. Irregular plurals may simply be entered as separate words. Matching is case-insensitive unless the first character of the patternis “=”, in which case the balance of the patternis matched in a case-sensitive manner.

The specifications of the words to be matched are strings fromwhich regular expressions will be formed, not regular expressionsthemselves. Consequently, if you need to use the regularexpression escape character “”, you mustspecify a double backslash in order to force it into thestring literal. All parenthesised expressions within a regularexpression (for example, the alternation in the last pattern above)must use the “?:” construct to avoid disruptingthe capture of the matched text.

Two variable declarations at the top of script allow you to enableadditional output for debugging. Setting brackets nonzerowill enclose all replaced words in braces {like these}. Settingshowchanges will show both the original word and itsreplacement separated by an arrow, for example“Experts→Idiots:Peach fuzzis good for you”.You can set both of these variables if you wish.

Using the Scripts with the Opera Browser and Others

The Opera Browseris a superbly standards-compliant free Web browser. Since version8.0, Opera has supported a user script facility largely compatible withGreasemonkey under Firefox, and based on cursory testing, these scriptsappear to be compatible with Opera. You cannot install a user script inOpera just by clicking on the links above. Please see theOpera User JavaScriptdocument for instructions on how to enable and install user scripts.

While patches for Opera compatibility and reports of problems arewelcome, these scripts are developed and tested exclusively asextensions for Firefox with Greasemonkey, and no support is promisedfor other configurations.

Patches for compatibility problems with other competently-implementedbrowsers (which excludes Microsoft's laughable and lamentable InternetExplorer) are welcome, as long as they're compatible with the latestreleases of Firefox and Greasemonkey.

Publishing Your Own Scripts

Both the MediaTriggerWords and OldSpeak scripts are in thepublic domain—you can do anything you wish with them, without anyrestrictions whatsoever. This means, in particular, that you're not onlywelcome, but invited to create customised versions of the scriptsembodying your own take on the contemporary discourse, and publish them onyour own Web pages or Web logs. To do so, simply download the scriptsto local files on your computer, modify the word lists and transformationrules as you wish, and after testing them on a variety of Web pages, postthem on your own site. If you do this, please modify the“@namespace” and “@homepage”declarations at the top of the scripts to point to your own site andthe home directories of your modified scripts. This will keep yourscripts from “stepping on” and overloading the originalversions from Fourmilab, should a user choose to install both, and willdirect users of your script back to your site for updates when you postthem.

This document and the software it describes are in the public domain.Do what thou wilt shall be the whole of the law.Lawyers burn spontaneously in an atmosphere of fluorine.

by John Walker
February, 2008
Updated June, 2010
Updated September, 2013

Fourmilab Home Page

Greasemonkey
Original author(s)Aaron Boodman
Developer(s)Anthony Lieuallen, Johan Sundström,[1] 13 more[2]
Initial release28 March 2005; 16 years ago[3]
Stable release
Repository
Written inJavaScript, XUL, CSS
Operating systemCross-platform
Available inEnglish
TypeMozilla extension
LicenseMIT License
Websitewww.greasespot.net

Greasemonkey is a userscript manager made available as a Mozilla Firefoxextension. It enables users to install scripts that make on-the-fly changes to web page content after or before the page is loaded in the browser (also known as augmented browsing).

The changes made to the web pages are executed every time the page is viewed, making them effectively permanent for the user running the script.

Greasemonkey can be used for customizing page appearance, adding new functions to web pages (for example, embedding price comparisons within shopping sites), fixing rendering bugs, combining data from multiple web pages, and numerous other purposes.

History[edit]

The Greasemonkey project began 28 November 2004, written by Aaron Boodman.[4][5][6] Boodman was inspired to write Greasemonkey after looking at a Firefox extension designed to clean up the interface of AllMusic,[7] written by Adrian Holovaty, who later became a userscript developer. By May 2005, there were approximately 60 general and 115 site-specific userscripts distributed for Greasemonkey.[7] In July 2005, serious vulnerabilities were found in Greasemonkey by Mark Pilgrim,[8][9] and fixed in the 3.5 version of Greasemonkey.[10] During this time, a Greasemonkey compiler was also developed for converting a userscript into a standalone Firefox extension.[11] Greasemonkey was initially met with complaints by publishers for its ability to block ads.[12] However, this criticism shifted its focus to other addons starting with the 2006 release of Adblock Plus.

Userscripts.org[edit]

To accommodate the growing number of scripts, userscripts.org was founded by Britt Selvitelle and other members of the Greasemonkey community in late 2005. Userscripts.org was open sourced in 2007 but the site later moved away from this code base.[13] As the main script repository listed on Greasemonkey's official site, userscripts.org accumulated thousands of scripts per year.

In 2010, the last known admin Jesse Andrews posted that the site was in maintenance mode due to lack of time and asked for a new maintainer to volunteer.[14] Nevertheless, he remained the sole admin of the site until a discussion about install counts began on 1 April 2013.[15] Prior to this, many of the 'most popular scripts' as listed by the site had nominal install counts of zero. Over the following year spam scripts became more common, server downtime increased and the install count bug remained.[16] With no further communication by Andrews, userscript writers described the site as neglected and the official Greasemonkey site removed its front page link.[17][18] In response, script writers and other developers began working on the fork 'openuserjs.org',[19][20] and later greasyfork.org,[21] as an immediate replacement.[22]

In May 2014, userscripts.org became inaccessible on port 80, prompting users to access it on port 8080 instead.[16] In August 2014, the site was shut down completely. Most of its scripts were backed up to the static mirror userscripts-mirror.org where they can now be found.[16]

Technical details[edit]

Greasemonkey user scripts are written in JavaScript and manipulate the contents of a web page using the Document Object Model interface. Scripts are generally written to be either page-specific or domain-specific (applying to all pages within a domain) but may also be tagged to apply to all domains for global browser enhancements. Users of Greasemonkey can write or download scripts and save them to their own personal library. When users visit a website matching a script in their personal script library, Greasemonkey invokes the relevant scripts.

Greasemonkey scripts can modify a webpage in any way that JavaScript allows, with certain Greasemonkey security restrictions. Scripts can also access other web pages and web services via a non-domain-restrictedXMLHTTP request, allowing external content to be merged with the original page content.

Scripts are named somename.user.js, and Greasemonkey offers to install any such script when a URL ending in that suffix is requested. Greasemonkey scripts contain metadata which specifies the name of the script, a description, resources required by the script, a namespace URL used to differentiate identically named scripts, and URL patterns for which the script is intended to be invoked or not.

Writing a Greasemonkey script is similar to writing JavaScript for a web page, with some additional allowances such as cross-site XMLHttpRequests. Compared to writing a full-fledged Firefox extension, user scripting is a very modest step up in complexity from basic web programming. However, Greasemonkey scripts are limited due to security restrictions imposed by Mozilla's XPCNativeWrappers[23] For example, Greasemonkey scripts do not have access to many of Firefox's components, such as the download manager, I/O processes or its main toolbars. Additionally, Greasemonkey scripts run per instance of a matching webpage. Because of this, managing lists of items globally is difficult. However, script writers have been using cookies and Greasemonkey even offers APIs such as GM_getValue and GM_setValue to overcome this.

Greasemonkey Opera Android

User scripts[edit]

File hosting servers for Greasemonkey require that the URLs for the scripts end with .user.js and not with a MIME type like text/html. Support for HTTPS will meet with[clarification needed] Greasemonkey's built in update checker. As of July 2019, the Greasemonkey project lists three recommended user script hostings:[24]

  • Gist, a pastebin service operated by GitHub where simple files are hosted. Files can be pasted into a web form and saved. HTTPS is used by default. Files may follow the naming scheme with the '.user.js' suffix for the URL serving as an install link.
  • Greasy Fork, a site created by the maintainer of userstyles.org.[21]
  • OpenUserJS.org, a site that started as a fork for the deprecated script repository userscripts.org.[19][20]
Greasemonkey opera android

Compatibility[edit]

Greasemonkey is available for Firefox, Flock and GNOME Web (formerly called Epiphany). The Greasemonkey extension for Web is part of the Web extensions package. However, this extension is not fully compatible as of release 2.15.1, since some Greasemonkey API functions (e.g. GM_getValue) are unsupported. There are also custom versions for SeaMonkey,[25][26]Songbird,[27]Pale Moon,[28]qutebrowser[29] and Falkon browser.

See also[edit]

References[edit]

  1. ^'The weblog about Greasemonkey'.
  2. ^'The greasemonkey network graph'.
  3. ^'Initial Greasemonkey Release'.
  4. ^'Greasemonkey Project Info'. Archived from the original on 25 March 2012. Retrieved 31 August 2011.
  5. ^Pilgrim, Mark (2005). Greasemonkey Hacks. O'Reilly. ISBN978-0-596-55357-9.
  6. ^'Aaron Boodman wrote Greasemonkey in 2004'.
  7. ^ abSingel, Ryan (17 May 2005). 'Firefox Users Monkey With the Web?'. Wired magazine.
  8. ^http://mozdev.org/pipermail/greasemonkey/2005-July/004033.html
  9. ^https://lwn.net/Articles/144452/
  10. ^http://mozdev.org/pipermail/greasemonkey/2005-July/004379.html
  11. ^Nivi (8 May 2005). 'Greasemonkey will blow up business models (as well as your mind)'. Archived from the original on 3 June 2006. Retrieved 22 July 2010.
  12. ^Festa, Paul (24 March 2005). 'Firefox add-on lets surfers tweak sites, but is it safe?'. CNET.
  13. ^Selvitelle, Britt (3 January 2007). 'Userscripts.org... Opensource!'. Archived from the original on 17 January 2007. Retrieved 21 May 2014.
  14. ^'Passing the torch on userscripts.org'. Hacker News. 2010. Retrieved 24 October 2014.
  15. ^'Fixing Install Counts'. 1 April 2013. Archived from the original on 3 November 2013. Retrieved 21 May 2014.
  16. ^ abcBrinkmann, Martin (9 May 2014). 'Userscripts.org down for good? Here are alternatives'. Retrieved 21 May 2014.
  17. ^'User Script Hosting'. 16 May 2014. Retrieved 21 May 2014.
  18. ^'Please change the official userscript site'. greasemonkey-dev (Mailing list). 21 April 2014. Retrieved 21 May 2014.
  19. ^ ab'OpenUserJS'. openuserjs.org.
  20. ^ ab'Fixing Install Counts – Page 6'. 1 April 2013. Archived from the original on 3 November 2013. Retrieved 5 November 2015.
  21. ^ ab'Greasy Fork'. greasyfork.org.
  22. ^Barnabe, Jason (19 February 2014). 'Introducing Greasy Fork – a user scripts site'. Retrieved 5 November 2015.
  23. ^.https://developer.mozilla.org/en/XPCNativeWrapper
  24. ^'User Script Hosting - GreaseSpot Wiki'. wiki.greasespot.net. Retrieved 22 July 2019.
  25. ^'Greasemonkey'. mozdev.org. mozdev. Retrieved 5 May 2009.
  26. ^'Greasemonkey Port for SeaMonkey - About - OpenUserJS'. openuserjs.org.
  27. ^ianloic. 'Greasemonkey'. Songbird. Archived from the original on 2 June 2008. Retrieved 5 May 2009.
  28. ^'janekptacijarabaci/greasemonkey'. GitHub. Retrieved 23 March 2020.
  29. ^'Improvements for GreaseMonkey support · Issue #3238 · qutebrowser/qutebrowser'. GitHub. Retrieved 19 May 2020.

External links[edit]

Media related to Greasemonkey at Wikimedia Commons

Retrieved from 'https://en.wikipedia.org/w/index.php?title=Greasemonkey&oldid=1018739297'