├── lib ├── tasks │ └── .gitkeep ├── csspool-4.0.1.gem └── csspool-4.0.2.gem ├── app ├── views │ ├── styles │ │ ├── _after_install_ad.html.erb │ │ ├── test.html.erb │ │ ├── graveyard.html.erb │ │ ├── _rating_image.html.erb │ │ ├── _style_feed_entry.html.erb │ │ ├── lotsa_screenshots.html.erb │ │ ├── automation_page.html.erb │ │ ├── screenshotable.html.erb │ │ ├── browse.html.erb │ │ ├── _social.html.erb │ │ ├── style_rss.xml.builder │ │ ├── style_atom.xml.builder │ │ ├── validate.html.erb │ │ ├── delete.html.erb │ │ ├── admin_delete.html.erb │ │ └── installing.html.erb │ ├── login │ │ ├── authenticate_openid.html.erb │ │ ├── authenticate_openid_complete.html.erb │ │ ├── lost_password_start.html.erb │ │ ├── lost_password_done.html.erb │ │ ├── name_required.html.erb │ │ ├── index.html.erb │ │ ├── lost_password.html.erb │ │ └── name_conflict.html.erb │ ├── layouts │ │ └── application.html.erb │ ├── users │ │ ├── migrate_openid.html.erb │ │ ├── edit_password.html.erb │ │ ├── migrate_openid_info.html.erb │ │ └── new.html.erb │ ├── index │ │ ├── rescue_404.html.erb │ │ ├── admin_debug.html.erb │ │ ├── contact.html.erb │ │ ├── index.html.erb │ │ └── firstrun.html.erb │ ├── allowed_bindings │ │ └── index.html.erb │ ├── help │ │ ├── index.html.erb │ │ ├── stylish.html.erb │ │ ├── widget_details.html.erb │ │ ├── db_chrome.html.erb │ │ ├── userstylesorg.html.erb │ │ └── db.html.erb │ ├── lost_password_mailer │ │ └── password_reset.text.erb │ ├── categories │ │ ├── root.html.erb │ │ └── show.html.erb │ └── misc │ │ └── copyright.html.erb ├── helpers │ ├── help_helper.rb │ ├── index_helper.rb │ ├── login_helper.rb │ ├── comment_helper.rb │ ├── logout_helper.rb │ ├── application_helper.rb │ ├── style_generator_helper.rb │ ├── categories_helper.rb │ └── users_helper.rb ├── models │ ├── style_install_count.rb │ ├── precalculated_warning.rb │ ├── admin_delete_reason.rb │ ├── style_section.rb │ ├── style_setting_option.rb │ ├── style_sweeper.rb │ ├── forum_user.rb │ ├── screenshot.rb │ ├── user_authenticator.rb │ ├── forum_discussion.rb │ └── style_section_rule.rb ├── assets │ ├── images │ │ ├── cc │ │ │ ├── cc0.png │ │ │ ├── cc-by.png │ │ │ ├── cc-by-nc.png │ │ │ ├── cc-by-nd.png │ │ │ ├── cc-by-sa.png │ │ │ ├── cc-by-nc-nd.png │ │ │ └── cc-by-nc-sa.png │ │ ├── reviews │ │ │ ├── bad.gif │ │ │ ├── good.gif │ │ │ ├── ok.png │ │ │ └── question.png │ │ ├── lightbox │ │ │ ├── close.png │ │ │ ├── next.png │ │ │ ├── prev.png │ │ │ └── loading.gif │ │ ├── buttons │ │ │ └── auth-icons.png │ │ └── ads │ │ │ └── affiliate-rck3steps-300x250.jpg │ ├── javascripts │ │ ├── edit.js │ │ ├── application.js │ │ ├── social.js │ │ ├── codemirror.js │ │ └── forum.js │ └── stylesheets │ │ ├── buttons-override.css.erb │ │ ├── application.css │ │ ├── lightbox-override.css.erb │ │ └── edit.css ├── mailers │ └── lost_password_mailer.rb ├── controllers │ ├── misc_controller.rb │ ├── logout_controller.rb │ ├── index_controller.rb │ ├── help_controller.rb │ └── categories_controller.rb └── indices │ └── style_index.rb ├── public ├── alert.html ├── alert2.html ├── google58ac3d4297075960.html ├── robots.txt ├── favicon.ico ├── apps │ ├── leaky.crx │ ├── smartest.xpi │ ├── Stylish-0.2.1.xpi │ ├── Stylish-0.3.2.xpi │ ├── Stylish-0.3.xpi │ ├── Stylish-0.5.1.xpi │ ├── Stylish-0.5.2.xpi │ ├── Stylish-0.5a.xpi │ ├── Stylish-0.5a2.xpi │ ├── Stylish-0.5b1.xpi │ ├── Stylish-0.5b2.xpi │ ├── Stylish-1.1b1.xpi │ ├── Stylish-1.1b2.xpi │ ├── Stylish-1.1b3.xpi │ ├── Stylish-1.1b4.xpi │ ├── Stylish-1.1b5.xpi │ ├── Stylish-1.2b1.xpi │ ├── stylish-dev.xpi │ ├── Stylish-1.0.10.xpi │ ├── Stylish-1.0.11.xpi │ ├── Stylish-1.1.1b1.xpi │ ├── Stylish-1.1.2b1.xpi │ ├── Stylish-1.2.2b1.xpi │ ├── Stylish-1.4.1b1.xpi │ ├── Stylish-1.4.2b1.xpi │ ├── stylish-minimal.xpi │ ├── Stylish-Facemoods.xpi │ ├── Stylish-NewTabKing.xpi │ ├── stylish-hang-test.xpi │ ├── stylishchrome-0.2.crx │ ├── stylishchrome-0.3.crx │ ├── stylishchrome-0.4.crx │ ├── stylishchrome-0.5.crx │ ├── stylishchrome-0.6.crx │ ├── stylishchrome-0.7.crx │ ├── stylishchrome-0.8.crx │ ├── stylishchrome-0.7.1.crx │ ├── stylishchrome-0.7mac.crx │ ├── stylishchrome-1.2.1.crx │ ├── newTabKing-install-box.xpi │ ├── PrestoSavings-stylish.3.0.3.xpi │ ├── Stylish-0.5.9-Kallout-1.0.20.1.xpi │ ├── Stylish-1.0.7-NewTabKing-2.5.1.xpi │ └── Stylish-1.0.7-NewTabKing-2.6.0.xpi ├── images │ ├── 159.png │ ├── bad.gif │ ├── box.png │ ├── hs.png │ ├── hv.png │ ├── ok.png │ ├── arrow.gif │ ├── bullet.gif │ ├── chrome.png │ ├── close.gif │ ├── cross.gif │ ├── good.gif │ ├── grdn.jpg │ ├── logo.gif │ ├── rails.png │ ├── s1-16.png │ ├── s3-16.png │ ├── star_0.png │ ├── star_1.png │ ├── bigicon.png │ ├── download.jpg │ ├── firefox.png │ ├── hotlink.png │ ├── image-1.jpg │ ├── loading.gif │ ├── question.png │ ├── star_05.png │ ├── thumb-1.jpg │ ├── warning.png │ ├── ads │ │ ├── ecosia.jpg │ │ ├── uniblue.gif │ │ ├── addonfox.png │ │ ├── facemoods.png │ │ ├── kallout-1.png │ │ ├── uniblue2.jpg │ │ ├── uniblue3.gif │ │ ├── uniblue4.gif │ │ ├── facemoods-2.png │ │ ├── mattbanner.jpg │ │ ├── scheduleonce.gif │ │ ├── uniblue_de.gif │ │ ├── uniblue_es.gif │ │ ├── uniblue_fr.gif │ │ └── scheduleonce-2.gif │ ├── bggradient.gif │ ├── closelabel.gif │ ├── install-img.png │ ├── mediumicon.png │ ├── nextlabel.gif │ ├── prevlabel.gif │ ├── addToFirefox.png │ ├── btn_donate_SM.gif │ ├── donate-button.gif │ ├── download-icon.gif │ ├── feed-icon-16x16.png │ ├── settings-example.png │ ├── settings-example-user.png │ ├── orkut_background_after.png │ ├── orkut_background_before.png │ └── stats.xhtml ├── javascripts │ ├── hs.png │ ├── hv.png │ ├── arrow.gif │ ├── cross.gif │ ├── application.js │ ├── posted-from-stylish.js │ ├── livetitle.js │ ├── post-from-stylish.js │ ├── html5.js │ └── edit-comment.js ├── slowstylesheet.php ├── slow.php ├── assets │ ├── cc │ │ ├── cc-by-1f39ddb38263f86890d74bfa7c46bf24.png │ │ ├── cc-by-370fbf31caa66c609906057231eb6037.png │ │ ├── cc-by-8c398ed764ce4317053e6882ce00967c.png │ │ ├── cc-by-b72e84b5c7a61b474f1e4d9d56625948.png │ │ ├── cc0-4c828dce50d83e89280cb95bf38c959d.png │ │ ├── cc0-6f9224f3ca7395a1b85d4181d401c1ad.png │ │ ├── cc0-9d1fa082846a50bb8e74d57dfb601d67.png │ │ ├── cc0-d5598cf1143adb7af175e3ddf2e7cc12.png │ │ ├── cc-by-nc-2289a79f38eae5defd84c20d084712b0.png │ │ ├── cc-by-nc-6bee32c1a663f2c526e2b6cdcb10430f.png │ │ ├── cc-by-nc-a707cb61cd0b45ffa849cf978c7a1ec9.png │ │ ├── cc-by-nc-dc14d06b65e208e38fa6db24f5b99b84.png │ │ ├── cc-by-nd-66d11ca8d242bc58271cba261f76af2f.png │ │ ├── cc-by-nd-695530a1a61cc7b578288bf7c46c01cf.png │ │ ├── cc-by-nd-9f78a956cdc692b9a53d83c1b21602e0.png │ │ ├── cc-by-nd-e9e648c0b1c4bfa40f5a2cbd75991385.png │ │ ├── cc-by-sa-0242042bde3600de1ccf0df974568ddd.png │ │ ├── cc-by-sa-836ae4e7dddd74f60a7ca369174190ab.png │ │ ├── cc-by-sa-8752c3fb04960a4c60e6fa5731578a31.png │ │ ├── cc-by-sa-cd009c00f30c351586276b3c7f4da9c0.png │ │ ├── cc-by-nc-nd-818b541e254c4ee0b60b1215fd0f3ee9.png │ │ ├── cc-by-nc-nd-8777a13366a27cbfd24a7c1a954a806b.png │ │ ├── cc-by-nc-nd-a450c8626f6d3b5eb00c35304e418ab3.png │ │ ├── cc-by-nc-nd-e5a06f3313091b198bd0684b0d7cd4b3.png │ │ ├── cc-by-nc-sa-765d9fd69661c711a31a46035f43f347.png │ │ ├── cc-by-nc-sa-9556f3edfe02048d3d3db162c8ab7674.png │ │ ├── cc-by-nc-sa-b5dd9d287ba1d63f42294a4ee9eec377.png │ │ ├── cc-by-nc-sa-bfeb697bc9249a248a8346551693b94d.png │ │ ├── cc0-68083ee5e7f0959eea4ab5312f5f54207a583fea688697c3011d838d6062c1dc.png │ │ ├── cc-by-345c7ad61f1be3650186b5773b3777043514e4515bb1311a7678dee06ae98604.png │ │ ├── cc-by-nc-0e40af5272150d0471ee7194365799b02b1c8842539a34fc9b0bfa2770088ad2.png │ │ ├── cc-by-nd-e0deea0db2f4d25b7d773221e8360a1aedc99c5f510c129a5416c00e1ad759ac.png │ │ ├── cc-by-sa-5283893486a4fafa05b9cfecd1181b7b41f0367a5b1cfdd693bd423a1cccf5f3.png │ │ ├── cc-by-nc-nd-0552900001c432d7e191ade715f99e0abda5717ff57ea836710e144d52c0d9d0.png │ │ └── cc-by-nc-sa-cbdab52b943a12b1dba5945098b1c6678a133453fff79d78f09cc51b6fc1f67f.png │ ├── edit-24439373e55a5a87878ef5b816c09735.js.gz │ ├── edit-62f6ee19208eaf9ae818aa52ff636de5.css.gz │ ├── edit-6725aa23e2e3c78ead04977ed5679b5d.js.gz │ ├── edit-776bd2dca2282c8dc98e5126b0e267fc.css.gz │ ├── edit-7c3633352074d04baadfb4249fff8ca7.js.gz │ ├── edit-b30ee8cccb6fc4ec43bc1620327f3deb.js.gz │ ├── edit-c4d98d8e2100251457fda607a26650c8.css.gz │ ├── edit-e1bf286c0e0afff55ecc16c10b58093c.css.gz │ ├── reviews │ │ ├── ok-1ad71852c7a01ead9f3936e36c5f4ab7.png │ │ ├── ok-2682e992256b0f8f58c32a6bd375f4c5.png │ │ ├── ok-b5075ef5c3da5f371af31ff008cd54e0.png │ │ ├── ok-c855d6360b1ececdc32482a02ce6af84.png │ │ ├── ok-cbf03a6757a38b8fae1171a8976cf86a.png │ │ ├── bad-2d8283e9d7b537ab6d4deaf8d939e416.gif │ │ ├── bad-a327bb5c20fb03b6e441e68db1d72568.gif │ │ ├── bad-ae0865c3dc8b1a56a2c7b6651bdfd57e.gif │ │ ├── bad-b6894334b6cccbe9322e00cefa147c93.gif │ │ ├── bad-bfdc713e178b3d932c639938db1ebc8a.gif │ │ ├── good-06c17e793329f7331a4bef59f96fbbd8.gif │ │ ├── good-5b183d89c2c65ac435fdcb43236f7838.gif │ │ ├── good-91a44a40dd9208da12d55aa39b126ea6.gif │ │ ├── good-d09b1910fac403b4ab6000263445624f.gif │ │ ├── good-d768deaaf2f14bf7270a9cd90d1cdc3d.gif │ │ ├── question-0b864a5d4a5ad48917d93d2d0103854c.png │ │ ├── question-28ff6eaadf6261ecf90190ee9ea87df9.png │ │ ├── question-8d651216557772631161f396ab8deafa.png │ │ ├── question-b137528b907864d73a375ef0b5c84329.png │ │ ├── question-edfd702f5e2c1550d9781ce4f86b53b2.png │ │ ├── bad-3be76cde5b6257834ef094aa948693862feb4a608da7dad3fad7939ff628d66c.gif │ │ ├── ok-126eec5cb6a11c6e195e55892a82630072ff46dc707f71b378b2b8d679f5ced0.png │ │ ├── good-df758b70add644e2f557e9dc75a592b69deb03ca3136de7b2cc3b5f1695bcf09.gif │ │ └── question-b26b16a0770515533db6ed7104e367c6de9c2fe4e66ecd2a7c6074451de055ae.png │ ├── application-40379d509d2a8519c905a58512047576.js.gz │ ├── application-558f30182092a484d306141249be141d.js.gz │ ├── application-5aaa1e1e40cfc06b67c9ae41fde5b9c8.js.gz │ ├── application-72a378258f6c207b79f17624ee8996d1.js.gz │ ├── application-7fdddff0c04142d105349909d409121d.js.gz │ ├── application-ba91257fb956882d90f33b71ffd19b1d.js.gz │ ├── application-be1eb8172502f66eef0faf613436c810.js.gz │ ├── application-cc7312c56171cebf079c6bc751eff819.js.gz │ ├── lightbox │ │ ├── next-44722b1e12d9930921e25889eb2ed8c3.png │ │ ├── next-46b9ba5c78f80decfdce34dacc3cf74b.png │ │ ├── next-947b492fafb4e53de29d7cd905df3f49.png │ │ ├── next-ae5988f24e9a8a0fa1897f9db2e50cdc.png │ │ ├── next-de87a1878eed799c2513749a8d1dbc7c.png │ │ ├── prev-5a63df6a23d49256af069c913e3a62e8.png │ │ ├── prev-6652d5075a2f9b9d3fccc8b719833db7.png │ │ ├── prev-803f5468fcd722f5eb8592df9b0f6b6e.png │ │ ├── prev-ba970c958761e67efda68b6cf30d1171.png │ │ ├── prev-c0325ef3c545a1f4ee25eb81d8e36d85.png │ │ ├── close-18ffd958a8a94a8e9ea27cb0996ea342.png │ │ ├── close-834fcd48b52c8d70d616d5733483a84a.png │ │ ├── close-985044c1b539b41abcfda735d13a5387.png │ │ ├── close-c5270e30bf239c96ad9491ca34805ef5.png │ │ ├── close-f305b0c51c0b9aaba25ef75391157ec1.png │ │ ├── loading-1bbdf9026e2b7376f9b5083d0f5472f2.gif │ │ ├── loading-6b31e20298c444a087e9e646d35ce77c.gif │ │ ├── loading-72c6a18e259f54ef21391ab2ce5abea5.gif │ │ ├── loading-95fdad9a9eb0919ac888aeb4b063cb3a.gif │ │ ├── loading-c8e12487064604d51cb5658128ff639b.gif │ │ ├── next-15b869b02c6fbaa8c6c26445a2dd2d9bad80fd27b1409f8179e5dd89dc89d90a.png │ │ ├── prev-7fd9273f20fdb1229c224341271a119020a5eee74ccf6b4605730917c864caf2.png │ │ ├── close-5d62e6c90005bfb71f6abb440f9e4753681cb23bbd5e60477ab6f442d2f0e69c.png │ │ └── loading-225aa88b6ab02c06222ec9468d62e15fa188e39cdb9431d1f55401ad380753ed.gif │ ├── application-07514a9f652efa617cc8272dbd2cfa5d.css.gz │ ├── application-1308e3513caa1dd96a039f1dd3bab01d.css.gz │ ├── application-2995b2be9b09428a0be18e258cce4bb5.css.gz │ ├── application-9e128796b17573da0977b03e64f6370b.css.gz │ ├── application-a31f80071fb76ba46aaf1c92f5e2c6fa.css.gz │ ├── application-bddef5694d522872d5254bd4a837261b.css.gz │ ├── application-c427b3e757c2eb52d1b36a324c259b34.css.gz │ ├── application-d337bda0e3ea71110f03dc34784fa08a.css.gz │ ├── application-ffe78aa9ac749de3f04cfc0161e6c1e8.css.gz │ ├── buttons │ │ ├── auth-icons-bb0f2fd971443d69f97322295de85fa6.png │ │ ├── auth-icons-bd0b95edaa3f9a43ffcda9a67ad2332b.png │ │ ├── auth-icons-be8c7426a54fb629fb971fc3c0169384.png │ │ ├── auth-icons-e3e3f6abd8a6031333c99bb2d248d238.png │ │ ├── auth-icons-f66d9ee30cf4fbbcce8363ace606d7f8.png │ │ └── auth-icons-cb2522baf5ba2231dd9e21545772f72544378a415f6744fa6b423ed0baa43565.png │ ├── ads │ │ ├── affiliate-rck3steps-300x250-51e34d76a8b6e1da4cfb9e5677a56069.jpg │ │ ├── affiliate-rck3steps-300x250-53ab86bebb2439885249ef8e9b130df4.jpg │ │ ├── affiliate-rck3steps-300x250-75266119abe2af884e26d78874c68bf4.jpg │ │ └── affiliate-rck3steps-300x250-d89d5014af429a41441a6da0b99a24526de60f5389f9f50065ad5483a0733f83.jpg │ ├── edit-8de6adc26349f0733510bc6e122977700d69d9ce69cac6215335019dc96ea124.js.gz │ ├── edit-2d3e6b6fa6b0826d3dc232296caca073f2e4b18586d683bae751bda3652c6aa7.css.gz │ ├── application-46233791c4083d0edc8ad019978c1736263135dbf481c265e8960c50c3c7701e.js.gz │ ├── application-6172d7afe29201476f01260b3d8d7284ab2f939172e20a4b6c712d9bc9669e99.js.gz │ └── application-498833348a516e17ca5c9be276812e1d75ec28f90f8c8666e89fe34ba12941cd.css.gz ├── 500.html ├── 422.html ├── crossdomain.xml ├── block2.xbl ├── first.html ├── 404.html ├── block.xbl └── opensearch.xml ├── test ├── fixtures │ └── users.yml ├── travisconfig │ ├── database.yml │ └── secrets.yml ├── unit │ ├── style_test.rb │ ├── style_categorization_test.rb │ ├── style_import_validation_test.rb │ ├── style_to_user_script_test.rb │ ├── style_binding_validation_test.rb │ ├── style_chrome_json_test.rb │ └── style_moz_doc_validation_test.rb └── test_helper.rb ├── config ├── initializers │ ├── public_suffix.rb │ ├── thinking_sphinx.rb │ ├── rack_multipart.rb │ ├── session_store.rb │ ├── wrap_parameters.rb │ ├── mime_types.rb │ ├── inflections.rb │ ├── backtrace_silencers.rb │ └── log_formatter.rb ├── environment.rb ├── boot.rb ├── locales │ └── en.yml ├── environments │ ├── development.rb │ └── test.rb └── application.rb ├── misc ├── vanilla-plugin │ ├── otherchanges.txt │ ├── minimal.css │ ├── global.js │ └── global.css └── ExtraDiscussionData │ └── config.php ├── bin ├── rake ├── bundle ├── rails └── delayed_job ├── config.ru ├── db ├── migrate │ ├── 20150926003535_add_user_ban_flag.rb │ ├── 20150701025820_add_auto_screenshot_failure_date.rb │ ├── 20141005210800_create_precalculated_warning.rb │ └── 20141106175043_create_style_reports.rb └── seeds.rb ├── doc └── README_FOR_APP ├── shellscripts ├── report_counts.sh ├── report_counts.sql └── thumbnail.sh ├── runnerscripts ├── import_warnings.rb ├── test_categories.rb ├── validate_code_email.rb ├── refresh_meta.rb ├── check_parse.rb ├── clear_whitespace.rb ├── refresh_code_validate.rb ├── fix_example_url.rb ├── refresh_unintentional_global.rb ├── validate_code.rb ├── check_xul_elements.rb ├── validate_parse.rb ├── replace_images_2014_1.rb ├── check_global.rb ├── repair_tumblr_2014_2.rb ├── repair_tumblr_2014_3.rb ├── repair_tumblr_2014.rb ├── repair_mozdocs.rb ├── check_mozdocs.rb ├── replace_images_2014_2.rb ├── check_agentsheet.rb ├── repair_namespaces.rb ├── add_mozdocs.rb └── repair_tumblr_2014_4.rb ├── Rakefile ├── .travis.yml ├── .gitignore ├── Gemfile └── README.md /lib/tasks/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/views/styles/_after_install_ad.html.erb: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /public/alert.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/helpers/help_helper.rb: -------------------------------------------------------------------------------- 1 | module HelpHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/index_helper.rb: -------------------------------------------------------------------------------- 1 | module IndexHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/login_helper.rb: -------------------------------------------------------------------------------- 1 | module LoginHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/comment_helper.rb: -------------------------------------------------------------------------------- 1 | module CommentHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/logout_helper.rb: -------------------------------------------------------------------------------- 1 | module LogoutHelper 2 | end 3 | -------------------------------------------------------------------------------- /test/fixtures/users.yml: -------------------------------------------------------------------------------- 1 | one: 2 | id: 1 3 | name: me 4 | -------------------------------------------------------------------------------- /app/views/login/authenticate_openid.html.erb: -------------------------------------------------------------------------------- 1 |
<%=@message%>
2 | -------------------------------------------------------------------------------- /app/views/styles/test.html.erb: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | module ApplicationHelper 2 | 3 | end 4 | -------------------------------------------------------------------------------- /app/helpers/style_generator_helper.rb: -------------------------------------------------------------------------------- 1 | module StyleGeneratorHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/views/login/authenticate_openid_complete.html.erb: -------------------------------------------------------------------------------- 1 |<%=@message%>
2 | -------------------------------------------------------------------------------- /config/initializers/public_suffix.rb: -------------------------------------------------------------------------------- 1 | PublicSuffix::List.private_domains = false 2 | -------------------------------------------------------------------------------- /public/alert2.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /config/initializers/thinking_sphinx.rb: -------------------------------------------------------------------------------- 1 | ThinkingSphinx::Connection.persistent = false 2 | -------------------------------------------------------------------------------- /misc/vanilla-plugin/otherchanges.txt: -------------------------------------------------------------------------------- 1 | https://github.com/vanilla/vanilla/pull/1985 2 | -------------------------------------------------------------------------------- /public/google58ac3d4297075960.html: -------------------------------------------------------------------------------- 1 | google-site-verification: google58ac3d4297075960.html -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: /styles/operacss/ 3 | Disallow: /styles/js/ 4 | 5 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /lib/csspool-4.0.1.gem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/lib/csspool-4.0.1.gem -------------------------------------------------------------------------------- /lib/csspool-4.0.2.gem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/lib/csspool-4.0.2.gem -------------------------------------------------------------------------------- /public/apps/leaky.crx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/leaky.crx -------------------------------------------------------------------------------- /public/images/159.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/159.png -------------------------------------------------------------------------------- /public/images/bad.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/bad.gif -------------------------------------------------------------------------------- /public/images/box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/box.png -------------------------------------------------------------------------------- /public/images/hs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/hs.png -------------------------------------------------------------------------------- /public/images/hv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/hv.png -------------------------------------------------------------------------------- /public/images/ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/ok.png -------------------------------------------------------------------------------- /app/models/style_install_count.rb: -------------------------------------------------------------------------------- 1 | class StyleInstallCount < ActiveRecord::Base 2 | belongs_to :style 3 | end 4 | -------------------------------------------------------------------------------- /misc/vanilla-plugin/minimal.css: -------------------------------------------------------------------------------- 1 | #Head, #Foot { 2 | display: none; 3 | } 4 | #Body { 5 | width: auto; 6 | } 7 | -------------------------------------------------------------------------------- /public/apps/smartest.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/smartest.xpi -------------------------------------------------------------------------------- /public/images/arrow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/arrow.gif -------------------------------------------------------------------------------- /public/images/bullet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/bullet.gif -------------------------------------------------------------------------------- /public/images/chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/chrome.png -------------------------------------------------------------------------------- /public/images/close.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/close.gif -------------------------------------------------------------------------------- /public/images/cross.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/cross.gif -------------------------------------------------------------------------------- /public/images/good.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/good.gif -------------------------------------------------------------------------------- /public/images/grdn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/grdn.jpg -------------------------------------------------------------------------------- /public/images/logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/logo.gif -------------------------------------------------------------------------------- /public/images/rails.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/rails.png -------------------------------------------------------------------------------- /public/images/s1-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/s1-16.png -------------------------------------------------------------------------------- /public/images/s3-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/s3-16.png -------------------------------------------------------------------------------- /public/images/star_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/star_0.png -------------------------------------------------------------------------------- /public/images/star_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/star_1.png -------------------------------------------------------------------------------- /app/models/precalculated_warning.rb: -------------------------------------------------------------------------------- 1 | class PrecalculatedWarning < ActiveRecord::Base 2 | belongs_to :style 3 | end 4 | -------------------------------------------------------------------------------- /bin/rake: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require_relative '../config/boot' 3 | require 'rake' 4 | Rake.application.run 5 | -------------------------------------------------------------------------------- /public/images/bigicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/bigicon.png -------------------------------------------------------------------------------- /public/images/download.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/download.jpg -------------------------------------------------------------------------------- /public/images/firefox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/firefox.png -------------------------------------------------------------------------------- /public/images/hotlink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/hotlink.png -------------------------------------------------------------------------------- /public/images/image-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/image-1.jpg -------------------------------------------------------------------------------- /public/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/loading.gif -------------------------------------------------------------------------------- /public/images/question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/question.png -------------------------------------------------------------------------------- /public/images/star_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/star_05.png -------------------------------------------------------------------------------- /public/images/thumb-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/thumb-1.jpg -------------------------------------------------------------------------------- /public/images/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/warning.png -------------------------------------------------------------------------------- /public/javascripts/hs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/javascripts/hs.png -------------------------------------------------------------------------------- /public/javascripts/hv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/javascripts/hv.png -------------------------------------------------------------------------------- /app/assets/images/cc/cc0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/app/assets/images/cc/cc0.png -------------------------------------------------------------------------------- /public/apps/Stylish-0.2.1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-0.2.1.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-0.3.2.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-0.3.2.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-0.3.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-0.3.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-0.5.1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-0.5.1.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-0.5.2.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-0.5.2.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-0.5a.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-0.5a.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-0.5a2.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-0.5a2.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-0.5b1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-0.5b1.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-0.5b2.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-0.5b2.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-1.1b1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-1.1b1.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-1.1b2.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-1.1b2.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-1.1b3.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-1.1b3.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-1.1b4.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-1.1b4.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-1.1b5.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-1.1b5.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-1.2b1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-1.2b1.xpi -------------------------------------------------------------------------------- /public/apps/stylish-dev.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/stylish-dev.xpi -------------------------------------------------------------------------------- /public/images/ads/ecosia.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/ads/ecosia.jpg -------------------------------------------------------------------------------- /public/images/ads/uniblue.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/ads/uniblue.gif -------------------------------------------------------------------------------- /public/images/bggradient.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/bggradient.gif -------------------------------------------------------------------------------- /public/images/closelabel.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/closelabel.gif -------------------------------------------------------------------------------- /public/images/install-img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/install-img.png -------------------------------------------------------------------------------- /public/images/mediumicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/mediumicon.png -------------------------------------------------------------------------------- /public/images/nextlabel.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/nextlabel.gif -------------------------------------------------------------------------------- /public/images/prevlabel.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/prevlabel.gif -------------------------------------------------------------------------------- /public/javascripts/arrow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/javascripts/arrow.gif -------------------------------------------------------------------------------- /public/javascripts/cross.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/javascripts/cross.gif -------------------------------------------------------------------------------- /public/slowstylesheet.php: -------------------------------------------------------------------------------- 1 | 5 | * { color: blue} 6 | 7 | -------------------------------------------------------------------------------- /app/assets/images/cc/cc-by.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/app/assets/images/cc/cc-by.png -------------------------------------------------------------------------------- /public/apps/Stylish-1.0.10.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-1.0.10.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-1.0.11.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-1.0.11.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-1.1.1b1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-1.1.1b1.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-1.1.2b1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-1.1.2b1.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-1.2.2b1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-1.2.2b1.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-1.4.1b1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-1.4.1b1.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-1.4.2b1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-1.4.2b1.xpi -------------------------------------------------------------------------------- /public/apps/stylish-minimal.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/stylish-minimal.xpi -------------------------------------------------------------------------------- /public/images/addToFirefox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/addToFirefox.png -------------------------------------------------------------------------------- /public/images/ads/addonfox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/ads/addonfox.png -------------------------------------------------------------------------------- /public/images/ads/facemoods.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/ads/facemoods.png -------------------------------------------------------------------------------- /public/images/ads/kallout-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/ads/kallout-1.png -------------------------------------------------------------------------------- /public/images/ads/uniblue2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/ads/uniblue2.jpg -------------------------------------------------------------------------------- /public/images/ads/uniblue3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/ads/uniblue3.gif -------------------------------------------------------------------------------- /public/images/ads/uniblue4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/ads/uniblue4.gif -------------------------------------------------------------------------------- /public/images/btn_donate_SM.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/btn_donate_SM.gif -------------------------------------------------------------------------------- /public/images/donate-button.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/donate-button.gif -------------------------------------------------------------------------------- /public/images/download-icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/download-icon.gif -------------------------------------------------------------------------------- /app/assets/images/cc/cc-by-nc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/app/assets/images/cc/cc-by-nc.png -------------------------------------------------------------------------------- /app/assets/images/cc/cc-by-nd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/app/assets/images/cc/cc-by-nd.png -------------------------------------------------------------------------------- /app/assets/images/cc/cc-by-sa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/app/assets/images/cc/cc-by-sa.png -------------------------------------------------------------------------------- /app/assets/images/reviews/bad.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/app/assets/images/reviews/bad.gif -------------------------------------------------------------------------------- /app/assets/images/reviews/good.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/app/assets/images/reviews/good.gif -------------------------------------------------------------------------------- /app/assets/images/reviews/ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/app/assets/images/reviews/ok.png -------------------------------------------------------------------------------- /public/apps/Stylish-Facemoods.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-Facemoods.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-NewTabKing.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-NewTabKing.xpi -------------------------------------------------------------------------------- /public/apps/stylish-hang-test.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/stylish-hang-test.xpi -------------------------------------------------------------------------------- /public/apps/stylishchrome-0.2.crx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/stylishchrome-0.2.crx -------------------------------------------------------------------------------- /public/apps/stylishchrome-0.3.crx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/stylishchrome-0.3.crx -------------------------------------------------------------------------------- /public/apps/stylishchrome-0.4.crx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/stylishchrome-0.4.crx -------------------------------------------------------------------------------- /public/apps/stylishchrome-0.5.crx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/stylishchrome-0.5.crx -------------------------------------------------------------------------------- /public/apps/stylishchrome-0.6.crx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/stylishchrome-0.6.crx -------------------------------------------------------------------------------- /public/apps/stylishchrome-0.7.crx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/stylishchrome-0.7.crx -------------------------------------------------------------------------------- /public/apps/stylishchrome-0.8.crx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/stylishchrome-0.8.crx -------------------------------------------------------------------------------- /public/images/ads/facemoods-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/ads/facemoods-2.png -------------------------------------------------------------------------------- /public/images/ads/mattbanner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/ads/mattbanner.jpg -------------------------------------------------------------------------------- /public/images/ads/scheduleonce.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/ads/scheduleonce.gif -------------------------------------------------------------------------------- /public/images/ads/uniblue_de.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/ads/uniblue_de.gif -------------------------------------------------------------------------------- /public/images/ads/uniblue_es.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/ads/uniblue_es.gif -------------------------------------------------------------------------------- /public/images/ads/uniblue_fr.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/ads/uniblue_fr.gif -------------------------------------------------------------------------------- /public/images/feed-icon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/feed-icon-16x16.png -------------------------------------------------------------------------------- /public/images/settings-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/settings-example.png -------------------------------------------------------------------------------- /app/assets/images/cc/cc-by-nc-nd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/app/assets/images/cc/cc-by-nc-nd.png -------------------------------------------------------------------------------- /app/assets/images/cc/cc-by-nc-sa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/app/assets/images/cc/cc-by-nc-sa.png -------------------------------------------------------------------------------- /app/assets/images/lightbox/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/app/assets/images/lightbox/close.png -------------------------------------------------------------------------------- /app/assets/images/lightbox/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/app/assets/images/lightbox/next.png -------------------------------------------------------------------------------- /app/assets/images/lightbox/prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/app/assets/images/lightbox/prev.png -------------------------------------------------------------------------------- /app/assets/javascripts/edit.js: -------------------------------------------------------------------------------- 1 | //= require codemirror/codemirror.js 2 | //= require codemirror/css.js 3 | //= require codemirror.js 4 | -------------------------------------------------------------------------------- /public/apps/stylishchrome-0.7.1.crx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/stylishchrome-0.7.1.crx -------------------------------------------------------------------------------- /public/apps/stylishchrome-0.7mac.crx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/stylishchrome-0.7mac.crx -------------------------------------------------------------------------------- /public/apps/stylishchrome-1.2.1.crx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/stylishchrome-1.2.1.crx -------------------------------------------------------------------------------- /public/images/ads/scheduleonce-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/ads/scheduleonce-2.gif -------------------------------------------------------------------------------- /app/assets/images/lightbox/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/app/assets/images/lightbox/loading.gif -------------------------------------------------------------------------------- /app/assets/images/reviews/question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/app/assets/images/reviews/question.png -------------------------------------------------------------------------------- /app/models/admin_delete_reason.rb: -------------------------------------------------------------------------------- 1 | class AdminDeleteReason < ActiveRecord::Base 2 | 3 | def readonly? 4 | true 5 | end 6 | 7 | end 8 | -------------------------------------------------------------------------------- /public/apps/newTabKing-install-box.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/newTabKing-install-box.xpi -------------------------------------------------------------------------------- /public/images/settings-example-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/settings-example-user.png -------------------------------------------------------------------------------- /app/assets/images/buttons/auth-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/app/assets/images/buttons/auth-icons.png -------------------------------------------------------------------------------- /app/assets/stylesheets/buttons-override.css.erb: -------------------------------------------------------------------------------- 1 | .btn-auth:before { 2 | background-image: url(<%=asset_path 'buttons/auth-icons.png'%>); 3 | } 4 | -------------------------------------------------------------------------------- /public/images/orkut_background_after.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/orkut_background_after.png -------------------------------------------------------------------------------- /public/images/orkut_background_before.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/images/orkut_background_before.png -------------------------------------------------------------------------------- /public/slow.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | Loaded. 9 | -------------------------------------------------------------------------------- /bin/bundle: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) 3 | load Gem.bin_path('bundler', 'bundle') 4 | -------------------------------------------------------------------------------- /public/apps/PrestoSavings-stylish.3.0.3.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/PrestoSavings-stylish.3.0.3.xpi -------------------------------------------------------------------------------- /app/models/style_section.rb: -------------------------------------------------------------------------------- 1 | class StyleSection < ActiveRecord::Base 2 | has_many :style_section_rules, -> { order(:id) }, :dependent => :destroy 3 | end 4 | -------------------------------------------------------------------------------- /public/apps/Stylish-0.5.9-Kallout-1.0.20.1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-0.5.9-Kallout-1.0.20.1.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-1.0.7-NewTabKing-2.5.1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-1.0.7-NewTabKing-2.5.1.xpi -------------------------------------------------------------------------------- /public/apps/Stylish-1.0.7-NewTabKing-2.6.0.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/apps/Stylish-1.0.7-NewTabKing-2.6.0.xpi -------------------------------------------------------------------------------- /app/assets/images/ads/affiliate-rck3steps-300x250.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/app/assets/images/ads/affiliate-rck3steps-300x250.jpg -------------------------------------------------------------------------------- /bin/rails: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_PATH = File.expand_path('../../config/application', __FILE__) 3 | require_relative '../config/boot' 4 | require 'rails/commands' 5 | -------------------------------------------------------------------------------- /app/views/login/lost_password_start.html.erb: -------------------------------------------------------------------------------- 1 |If you provided that e-mail address when you created your userstyles.org account, you should be receiving an e-mail now.
2 | -------------------------------------------------------------------------------- /app/views/styles/graveyard.html.erb: -------------------------------------------------------------------------------- 1 | <%= render :partial => 'listing', :collection => @styles, :as => :style, :locals => {:show_obsolete => true}%> 2 | <%= will_paginate @styles %> 3 | -------------------------------------------------------------------------------- /public/assets/cc/cc-by-1f39ddb38263f86890d74bfa7c46bf24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-1f39ddb38263f86890d74bfa7c46bf24.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-370fbf31caa66c609906057231eb6037.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-370fbf31caa66c609906057231eb6037.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-8c398ed764ce4317053e6882ce00967c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-8c398ed764ce4317053e6882ce00967c.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-b72e84b5c7a61b474f1e4d9d56625948.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-b72e84b5c7a61b474f1e4d9d56625948.png -------------------------------------------------------------------------------- /public/assets/cc/cc0-4c828dce50d83e89280cb95bf38c959d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc0-4c828dce50d83e89280cb95bf38c959d.png -------------------------------------------------------------------------------- /public/assets/cc/cc0-6f9224f3ca7395a1b85d4181d401c1ad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc0-6f9224f3ca7395a1b85d4181d401c1ad.png -------------------------------------------------------------------------------- /public/assets/cc/cc0-9d1fa082846a50bb8e74d57dfb601d67.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc0-9d1fa082846a50bb8e74d57dfb601d67.png -------------------------------------------------------------------------------- /public/assets/cc/cc0-d5598cf1143adb7af175e3ddf2e7cc12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc0-d5598cf1143adb7af175e3ddf2e7cc12.png -------------------------------------------------------------------------------- /public/assets/edit-24439373e55a5a87878ef5b816c09735.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/edit-24439373e55a5a87878ef5b816c09735.js.gz -------------------------------------------------------------------------------- /public/assets/edit-62f6ee19208eaf9ae818aa52ff636de5.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/edit-62f6ee19208eaf9ae818aa52ff636de5.css.gz -------------------------------------------------------------------------------- /public/assets/edit-6725aa23e2e3c78ead04977ed5679b5d.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/edit-6725aa23e2e3c78ead04977ed5679b5d.js.gz -------------------------------------------------------------------------------- /public/assets/edit-776bd2dca2282c8dc98e5126b0e267fc.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/edit-776bd2dca2282c8dc98e5126b0e267fc.css.gz -------------------------------------------------------------------------------- /public/assets/edit-7c3633352074d04baadfb4249fff8ca7.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/edit-7c3633352074d04baadfb4249fff8ca7.js.gz -------------------------------------------------------------------------------- /public/assets/edit-b30ee8cccb6fc4ec43bc1620327f3deb.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/edit-b30ee8cccb6fc4ec43bc1620327f3deb.js.gz -------------------------------------------------------------------------------- /public/assets/edit-c4d98d8e2100251457fda607a26650c8.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/edit-c4d98d8e2100251457fda607a26650c8.css.gz -------------------------------------------------------------------------------- /public/assets/edit-e1bf286c0e0afff55ecc16c10b58093c.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/edit-e1bf286c0e0afff55ecc16c10b58093c.css.gz -------------------------------------------------------------------------------- /config.ru: -------------------------------------------------------------------------------- 1 | # This file is used by Rack-based servers to start the application. 2 | 3 | require ::File.expand_path('../config/environment', __FILE__) 4 | run Userstyles::Application 5 | -------------------------------------------------------------------------------- /public/assets/reviews/ok-1ad71852c7a01ead9f3936e36c5f4ab7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/ok-1ad71852c7a01ead9f3936e36c5f4ab7.png -------------------------------------------------------------------------------- /public/assets/reviews/ok-2682e992256b0f8f58c32a6bd375f4c5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/ok-2682e992256b0f8f58c32a6bd375f4c5.png -------------------------------------------------------------------------------- /public/assets/reviews/ok-b5075ef5c3da5f371af31ff008cd54e0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/ok-b5075ef5c3da5f371af31ff008cd54e0.png -------------------------------------------------------------------------------- /public/assets/reviews/ok-c855d6360b1ececdc32482a02ce6af84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/ok-c855d6360b1ececdc32482a02ce6af84.png -------------------------------------------------------------------------------- /public/assets/reviews/ok-cbf03a6757a38b8fae1171a8976cf86a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/ok-cbf03a6757a38b8fae1171a8976cf86a.png -------------------------------------------------------------------------------- /test/travisconfig/database.yml: -------------------------------------------------------------------------------- 1 | test: 2 | adapter: mysql2 3 | username: root 4 | password: 5 | database: userstyles_test 6 | pool: 5 7 | timeout: 5000 8 | host: localhost 9 | -------------------------------------------------------------------------------- /config/initializers/rack_multipart.rb: -------------------------------------------------------------------------------- 1 | # Should be removed when rack > 1.6.1 is available, see https://github.com/JasonBarnabe/userstyles/issues/70 2 | Rack::Utils.multipart_part_limit = 0 3 | -------------------------------------------------------------------------------- /public/assets/application-40379d509d2a8519c905a58512047576.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-40379d509d2a8519c905a58512047576.js.gz -------------------------------------------------------------------------------- /public/assets/application-558f30182092a484d306141249be141d.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-558f30182092a484d306141249be141d.js.gz -------------------------------------------------------------------------------- /public/assets/application-5aaa1e1e40cfc06b67c9ae41fde5b9c8.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-5aaa1e1e40cfc06b67c9ae41fde5b9c8.js.gz -------------------------------------------------------------------------------- /public/assets/application-72a378258f6c207b79f17624ee8996d1.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-72a378258f6c207b79f17624ee8996d1.js.gz -------------------------------------------------------------------------------- /public/assets/application-7fdddff0c04142d105349909d409121d.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-7fdddff0c04142d105349909d409121d.js.gz -------------------------------------------------------------------------------- /public/assets/application-ba91257fb956882d90f33b71ffd19b1d.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-ba91257fb956882d90f33b71ffd19b1d.js.gz -------------------------------------------------------------------------------- /public/assets/application-be1eb8172502f66eef0faf613436c810.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-be1eb8172502f66eef0faf613436c810.js.gz -------------------------------------------------------------------------------- /public/assets/application-cc7312c56171cebf079c6bc751eff819.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-cc7312c56171cebf079c6bc751eff819.js.gz -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nc-2289a79f38eae5defd84c20d084712b0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nc-2289a79f38eae5defd84c20d084712b0.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nc-6bee32c1a663f2c526e2b6cdcb10430f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nc-6bee32c1a663f2c526e2b6cdcb10430f.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nc-a707cb61cd0b45ffa849cf978c7a1ec9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nc-a707cb61cd0b45ffa849cf978c7a1ec9.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nc-dc14d06b65e208e38fa6db24f5b99b84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nc-dc14d06b65e208e38fa6db24f5b99b84.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nd-66d11ca8d242bc58271cba261f76af2f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nd-66d11ca8d242bc58271cba261f76af2f.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nd-695530a1a61cc7b578288bf7c46c01cf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nd-695530a1a61cc7b578288bf7c46c01cf.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nd-9f78a956cdc692b9a53d83c1b21602e0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nd-9f78a956cdc692b9a53d83c1b21602e0.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nd-e9e648c0b1c4bfa40f5a2cbd75991385.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nd-e9e648c0b1c4bfa40f5a2cbd75991385.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-sa-0242042bde3600de1ccf0df974568ddd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-sa-0242042bde3600de1ccf0df974568ddd.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-sa-836ae4e7dddd74f60a7ca369174190ab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-sa-836ae4e7dddd74f60a7ca369174190ab.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-sa-8752c3fb04960a4c60e6fa5731578a31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-sa-8752c3fb04960a4c60e6fa5731578a31.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-sa-cd009c00f30c351586276b3c7f4da9c0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-sa-cd009c00f30c351586276b3c7f4da9c0.png -------------------------------------------------------------------------------- /public/assets/lightbox/next-44722b1e12d9930921e25889eb2ed8c3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/next-44722b1e12d9930921e25889eb2ed8c3.png -------------------------------------------------------------------------------- /public/assets/lightbox/next-46b9ba5c78f80decfdce34dacc3cf74b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/next-46b9ba5c78f80decfdce34dacc3cf74b.png -------------------------------------------------------------------------------- /public/assets/lightbox/next-947b492fafb4e53de29d7cd905df3f49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/next-947b492fafb4e53de29d7cd905df3f49.png -------------------------------------------------------------------------------- /public/assets/lightbox/next-ae5988f24e9a8a0fa1897f9db2e50cdc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/next-ae5988f24e9a8a0fa1897f9db2e50cdc.png -------------------------------------------------------------------------------- /public/assets/lightbox/next-de87a1878eed799c2513749a8d1dbc7c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/next-de87a1878eed799c2513749a8d1dbc7c.png -------------------------------------------------------------------------------- /public/assets/lightbox/prev-5a63df6a23d49256af069c913e3a62e8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/prev-5a63df6a23d49256af069c913e3a62e8.png -------------------------------------------------------------------------------- /public/assets/lightbox/prev-6652d5075a2f9b9d3fccc8b719833db7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/prev-6652d5075a2f9b9d3fccc8b719833db7.png -------------------------------------------------------------------------------- /public/assets/lightbox/prev-803f5468fcd722f5eb8592df9b0f6b6e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/prev-803f5468fcd722f5eb8592df9b0f6b6e.png -------------------------------------------------------------------------------- /public/assets/lightbox/prev-ba970c958761e67efda68b6cf30d1171.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/prev-ba970c958761e67efda68b6cf30d1171.png -------------------------------------------------------------------------------- /public/assets/lightbox/prev-c0325ef3c545a1f4ee25eb81d8e36d85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/prev-c0325ef3c545a1f4ee25eb81d8e36d85.png -------------------------------------------------------------------------------- /public/assets/reviews/bad-2d8283e9d7b537ab6d4deaf8d939e416.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/bad-2d8283e9d7b537ab6d4deaf8d939e416.gif -------------------------------------------------------------------------------- /public/assets/reviews/bad-a327bb5c20fb03b6e441e68db1d72568.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/bad-a327bb5c20fb03b6e441e68db1d72568.gif -------------------------------------------------------------------------------- /public/assets/reviews/bad-ae0865c3dc8b1a56a2c7b6651bdfd57e.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/bad-ae0865c3dc8b1a56a2c7b6651bdfd57e.gif -------------------------------------------------------------------------------- /public/assets/reviews/bad-b6894334b6cccbe9322e00cefa147c93.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/bad-b6894334b6cccbe9322e00cefa147c93.gif -------------------------------------------------------------------------------- /public/assets/reviews/bad-bfdc713e178b3d932c639938db1ebc8a.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/bad-bfdc713e178b3d932c639938db1ebc8a.gif -------------------------------------------------------------------------------- /public/assets/reviews/good-06c17e793329f7331a4bef59f96fbbd8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/good-06c17e793329f7331a4bef59f96fbbd8.gif -------------------------------------------------------------------------------- /public/assets/reviews/good-5b183d89c2c65ac435fdcb43236f7838.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/good-5b183d89c2c65ac435fdcb43236f7838.gif -------------------------------------------------------------------------------- /public/assets/reviews/good-91a44a40dd9208da12d55aa39b126ea6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/good-91a44a40dd9208da12d55aa39b126ea6.gif -------------------------------------------------------------------------------- /public/assets/reviews/good-d09b1910fac403b4ab6000263445624f.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/good-d09b1910fac403b4ab6000263445624f.gif -------------------------------------------------------------------------------- /public/assets/reviews/good-d768deaaf2f14bf7270a9cd90d1cdc3d.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/good-d768deaaf2f14bf7270a9cd90d1cdc3d.gif -------------------------------------------------------------------------------- /public/javascripts/application.js: -------------------------------------------------------------------------------- 1 | // Place your application-specific JavaScript functions and classes here 2 | // This file is automatically included by javascript_include_tag :defaults 3 | -------------------------------------------------------------------------------- /app/views/login/lost_password_done.html.erb: -------------------------------------------------------------------------------- 1 |Your login is '<%=h @login%>' and your new password is '<%=h @password%>'. Go <%=link_to 'log in', :action=>'index', :view => 'password'%> now.
2 | -------------------------------------------------------------------------------- /config/environment.rb: -------------------------------------------------------------------------------- 1 | # Load the rails application 2 | require File.expand_path('../application', __FILE__) 3 | 4 | # Initialize the rails application 5 | Userstyles::Application.initialize! 6 | -------------------------------------------------------------------------------- /public/assets/application-07514a9f652efa617cc8272dbd2cfa5d.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-07514a9f652efa617cc8272dbd2cfa5d.css.gz -------------------------------------------------------------------------------- /public/assets/application-1308e3513caa1dd96a039f1dd3bab01d.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-1308e3513caa1dd96a039f1dd3bab01d.css.gz -------------------------------------------------------------------------------- /public/assets/application-2995b2be9b09428a0be18e258cce4bb5.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-2995b2be9b09428a0be18e258cce4bb5.css.gz -------------------------------------------------------------------------------- /public/assets/application-9e128796b17573da0977b03e64f6370b.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-9e128796b17573da0977b03e64f6370b.css.gz -------------------------------------------------------------------------------- /public/assets/application-a31f80071fb76ba46aaf1c92f5e2c6fa.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-a31f80071fb76ba46aaf1c92f5e2c6fa.css.gz -------------------------------------------------------------------------------- /public/assets/application-bddef5694d522872d5254bd4a837261b.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-bddef5694d522872d5254bd4a837261b.css.gz -------------------------------------------------------------------------------- /public/assets/application-c427b3e757c2eb52d1b36a324c259b34.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-c427b3e757c2eb52d1b36a324c259b34.css.gz -------------------------------------------------------------------------------- /public/assets/application-d337bda0e3ea71110f03dc34784fa08a.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-d337bda0e3ea71110f03dc34784fa08a.css.gz -------------------------------------------------------------------------------- /public/assets/application-ffe78aa9ac749de3f04cfc0161e6c1e8.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-ffe78aa9ac749de3f04cfc0161e6c1e8.css.gz -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nc-nd-818b541e254c4ee0b60b1215fd0f3ee9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nc-nd-818b541e254c4ee0b60b1215fd0f3ee9.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nc-nd-8777a13366a27cbfd24a7c1a954a806b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nc-nd-8777a13366a27cbfd24a7c1a954a806b.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nc-nd-a450c8626f6d3b5eb00c35304e418ab3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nc-nd-a450c8626f6d3b5eb00c35304e418ab3.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nc-nd-e5a06f3313091b198bd0684b0d7cd4b3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nc-nd-e5a06f3313091b198bd0684b0d7cd4b3.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nc-sa-765d9fd69661c711a31a46035f43f347.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nc-sa-765d9fd69661c711a31a46035f43f347.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nc-sa-9556f3edfe02048d3d3db162c8ab7674.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nc-sa-9556f3edfe02048d3d3db162c8ab7674.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nc-sa-b5dd9d287ba1d63f42294a4ee9eec377.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nc-sa-b5dd9d287ba1d63f42294a4ee9eec377.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nc-sa-bfeb697bc9249a248a8346551693b94d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nc-sa-bfeb697bc9249a248a8346551693b94d.png -------------------------------------------------------------------------------- /public/assets/lightbox/close-18ffd958a8a94a8e9ea27cb0996ea342.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/close-18ffd958a8a94a8e9ea27cb0996ea342.png -------------------------------------------------------------------------------- /public/assets/lightbox/close-834fcd48b52c8d70d616d5733483a84a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/close-834fcd48b52c8d70d616d5733483a84a.png -------------------------------------------------------------------------------- /public/assets/lightbox/close-985044c1b539b41abcfda735d13a5387.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/close-985044c1b539b41abcfda735d13a5387.png -------------------------------------------------------------------------------- /public/assets/lightbox/close-c5270e30bf239c96ad9491ca34805ef5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/close-c5270e30bf239c96ad9491ca34805ef5.png -------------------------------------------------------------------------------- /public/assets/lightbox/close-f305b0c51c0b9aaba25ef75391157ec1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/close-f305b0c51c0b9aaba25ef75391157ec1.png -------------------------------------------------------------------------------- /db/migrate/20150926003535_add_user_ban_flag.rb: -------------------------------------------------------------------------------- 1 | class AddUserBanFlag < ActiveRecord::Migration 2 | def change 3 | add_column :users, :banned, :boolean, default: false, null: false 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /public/assets/buttons/auth-icons-bb0f2fd971443d69f97322295de85fa6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/buttons/auth-icons-bb0f2fd971443d69f97322295de85fa6.png -------------------------------------------------------------------------------- /public/assets/buttons/auth-icons-bd0b95edaa3f9a43ffcda9a67ad2332b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/buttons/auth-icons-bd0b95edaa3f9a43ffcda9a67ad2332b.png -------------------------------------------------------------------------------- /public/assets/buttons/auth-icons-be8c7426a54fb629fb971fc3c0169384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/buttons/auth-icons-be8c7426a54fb629fb971fc3c0169384.png -------------------------------------------------------------------------------- /public/assets/buttons/auth-icons-e3e3f6abd8a6031333c99bb2d248d238.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/buttons/auth-icons-e3e3f6abd8a6031333c99bb2d248d238.png -------------------------------------------------------------------------------- /public/assets/buttons/auth-icons-f66d9ee30cf4fbbcce8363ace606d7f8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/buttons/auth-icons-f66d9ee30cf4fbbcce8363ace606d7f8.png -------------------------------------------------------------------------------- /public/assets/lightbox/loading-1bbdf9026e2b7376f9b5083d0f5472f2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/loading-1bbdf9026e2b7376f9b5083d0f5472f2.gif -------------------------------------------------------------------------------- /public/assets/lightbox/loading-6b31e20298c444a087e9e646d35ce77c.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/loading-6b31e20298c444a087e9e646d35ce77c.gif -------------------------------------------------------------------------------- /public/assets/lightbox/loading-72c6a18e259f54ef21391ab2ce5abea5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/loading-72c6a18e259f54ef21391ab2ce5abea5.gif -------------------------------------------------------------------------------- /public/assets/lightbox/loading-95fdad9a9eb0919ac888aeb4b063cb3a.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/loading-95fdad9a9eb0919ac888aeb4b063cb3a.gif -------------------------------------------------------------------------------- /public/assets/lightbox/loading-c8e12487064604d51cb5658128ff639b.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/loading-c8e12487064604d51cb5658128ff639b.gif -------------------------------------------------------------------------------- /public/assets/reviews/question-0b864a5d4a5ad48917d93d2d0103854c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/question-0b864a5d4a5ad48917d93d2d0103854c.png -------------------------------------------------------------------------------- /public/assets/reviews/question-28ff6eaadf6261ecf90190ee9ea87df9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/question-28ff6eaadf6261ecf90190ee9ea87df9.png -------------------------------------------------------------------------------- /public/assets/reviews/question-8d651216557772631161f396ab8deafa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/question-8d651216557772631161f396ab8deafa.png -------------------------------------------------------------------------------- /public/assets/reviews/question-b137528b907864d73a375ef0b5c84329.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/question-b137528b907864d73a375ef0b5c84329.png -------------------------------------------------------------------------------- /public/assets/reviews/question-edfd702f5e2c1550d9781ce4f86b53b2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/question-edfd702f5e2c1550d9781ce4f86b53b2.png -------------------------------------------------------------------------------- /test/travisconfig/secrets.yml: -------------------------------------------------------------------------------- 1 | test: 2 | secret_key_base: e9a0be578367c166f100e2d40f6b5b7de7fd7075fb0fdc01ae1da36a2fa29e3937f0207a66edb4526dcf7d846704644c59da1b12d1365d0bbedd24f6b23573df # rake secret 3 | -------------------------------------------------------------------------------- /bin/delayed_job: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment')) 4 | require 'delayed/command' 5 | Delayed::Command.new(ARGV).daemonize 6 | -------------------------------------------------------------------------------- /config/initializers/session_store.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | Userstyles::Application.config.session_store :cookie_store, :key => '_session_id', :domain => COOKIE_DOMAIN 4 | -------------------------------------------------------------------------------- /app/assets/stylesheets/application.css: -------------------------------------------------------------------------------- 1 | /* ... 2 | *= require lightbox/lightbox.css 3 | *= require lightbox-override.css 4 | *= require buttons/buttons.css 5 | *= require buttons-override.css 6 | *= require userstyles.css 7 | */ 8 | -------------------------------------------------------------------------------- /config/boot.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | 3 | # Set up gems listed in the Gemfile. 4 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) 5 | 6 | require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE']) 7 | -------------------------------------------------------------------------------- /public/assets/ads/affiliate-rck3steps-300x250-51e34d76a8b6e1da4cfb9e5677a56069.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/ads/affiliate-rck3steps-300x250-51e34d76a8b6e1da4cfb9e5677a56069.jpg -------------------------------------------------------------------------------- /public/assets/ads/affiliate-rck3steps-300x250-53ab86bebb2439885249ef8e9b130df4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/ads/affiliate-rck3steps-300x250-53ab86bebb2439885249ef8e9b130df4.jpg -------------------------------------------------------------------------------- /public/assets/ads/affiliate-rck3steps-300x250-75266119abe2af884e26d78874c68bf4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/ads/affiliate-rck3steps-300x250-75266119abe2af884e26d78874c68bf4.jpg -------------------------------------------------------------------------------- /doc/README_FOR_APP: -------------------------------------------------------------------------------- 1 | Use this README file to introduce your application and point to useful places in the API for learning more. 2 | Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries. 3 | -------------------------------------------------------------------------------- /shellscripts/report_counts.sh: -------------------------------------------------------------------------------- 1 | echo "Starting at `date`" >> ../log/update_report_counts.log 2 | ~/cron/db < ./update_report_counts.sql >> ../log/update_report_counts.log 2>&1 3 | echo "Done at `date`" >> ../log/update_report_counts.log 4 | -------------------------------------------------------------------------------- /public/assets/cc/cc0-68083ee5e7f0959eea4ab5312f5f54207a583fea688697c3011d838d6062c1dc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc0-68083ee5e7f0959eea4ab5312f5f54207a583fea688697c3011d838d6062c1dc.png -------------------------------------------------------------------------------- /public/assets/edit-8de6adc26349f0733510bc6e122977700d69d9ce69cac6215335019dc96ea124.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/edit-8de6adc26349f0733510bc6e122977700d69d9ce69cac6215335019dc96ea124.js.gz -------------------------------------------------------------------------------- /public/assets/cc/cc-by-345c7ad61f1be3650186b5773b3777043514e4515bb1311a7678dee06ae98604.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-345c7ad61f1be3650186b5773b3777043514e4515bb1311a7678dee06ae98604.png -------------------------------------------------------------------------------- /public/assets/edit-2d3e6b6fa6b0826d3dc232296caca073f2e4b18586d683bae751bda3652c6aa7.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/edit-2d3e6b6fa6b0826d3dc232296caca073f2e4b18586d683bae751bda3652c6aa7.css.gz -------------------------------------------------------------------------------- /app/assets/javascripts/application.js: -------------------------------------------------------------------------------- 1 | //= require browserdetect/browserdetect.js 2 | //= require lightbox/jquery-1.10.2.min.js 3 | //= require lightbox/lightbox-2.6.min.js 4 | //= require install.js 5 | //= require forum.js 6 | //= require social.js 7 | -------------------------------------------------------------------------------- /public/500.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |An internal server error (500) has occurred.
8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nc-0e40af5272150d0471ee7194365799b02b1c8842539a34fc9b0bfa2770088ad2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nc-0e40af5272150d0471ee7194365799b02b1c8842539a34fc9b0bfa2770088ad2.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nd-e0deea0db2f4d25b7d773221e8360a1aedc99c5f510c129a5416c00e1ad759ac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nd-e0deea0db2f4d25b7d773221e8360a1aedc99c5f510c129a5416c00e1ad759ac.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-sa-5283893486a4fafa05b9cfecd1181b7b41f0367a5b1cfdd693bd423a1cccf5f3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-sa-5283893486a4fafa05b9cfecd1181b7b41f0367a5b1cfdd693bd423a1cccf5f3.png -------------------------------------------------------------------------------- /public/assets/reviews/bad-3be76cde5b6257834ef094aa948693862feb4a608da7dad3fad7939ff628d66c.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/bad-3be76cde5b6257834ef094aa948693862feb4a608da7dad3fad7939ff628d66c.gif -------------------------------------------------------------------------------- /public/assets/reviews/ok-126eec5cb6a11c6e195e55892a82630072ff46dc707f71b378b2b8d679f5ced0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/ok-126eec5cb6a11c6e195e55892a82630072ff46dc707f71b378b2b8d679f5ced0.png -------------------------------------------------------------------------------- /config/locales/en.yml: -------------------------------------------------------------------------------- 1 | # Sample localization file for English. Add more files in this directory for other locales. 2 | # See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. 3 | 4 | en: 5 | hello: "Hello world" 6 | -------------------------------------------------------------------------------- /public/422.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |An unprocessable entity error (422) has occurred.
8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /public/assets/application-46233791c4083d0edc8ad019978c1736263135dbf481c265e8960c50c3c7701e.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-46233791c4083d0edc8ad019978c1736263135dbf481c265e8960c50c3c7701e.js.gz -------------------------------------------------------------------------------- /public/assets/application-6172d7afe29201476f01260b3d8d7284ab2f939172e20a4b6c712d9bc9669e99.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-6172d7afe29201476f01260b3d8d7284ab2f939172e20a4b6c712d9bc9669e99.js.gz -------------------------------------------------------------------------------- /public/assets/lightbox/next-15b869b02c6fbaa8c6c26445a2dd2d9bad80fd27b1409f8179e5dd89dc89d90a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/next-15b869b02c6fbaa8c6c26445a2dd2d9bad80fd27b1409f8179e5dd89dc89d90a.png -------------------------------------------------------------------------------- /public/assets/lightbox/prev-7fd9273f20fdb1229c224341271a119020a5eee74ccf6b4605730917c864caf2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/prev-7fd9273f20fdb1229c224341271a119020a5eee74ccf6b4605730917c864caf2.png -------------------------------------------------------------------------------- /public/assets/reviews/good-df758b70add644e2f557e9dc75a592b69deb03ca3136de7b2cc3b5f1695bcf09.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/good-df758b70add644e2f557e9dc75a592b69deb03ca3136de7b2cc3b5f1695bcf09.gif -------------------------------------------------------------------------------- /db/migrate/20150701025820_add_auto_screenshot_failure_date.rb: -------------------------------------------------------------------------------- 1 | class AddAutoScreenshotFailureDate < ActiveRecord::Migration 2 | def change 3 | add_column :styles, :auto_screenshot_last_failure_date, :datetime, after: :auto_screenshot_date 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /public/assets/application-498833348a516e17ca5c9be276812e1d75ec28f90f8c8666e89fe34ba12941cd.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/application-498833348a516e17ca5c9be276812e1d75ec28f90f8c8666e89fe34ba12941cd.css.gz -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nc-nd-0552900001c432d7e191ade715f99e0abda5717ff57ea836710e144d52c0d9d0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nc-nd-0552900001c432d7e191ade715f99e0abda5717ff57ea836710e144d52c0d9d0.png -------------------------------------------------------------------------------- /public/assets/cc/cc-by-nc-sa-cbdab52b943a12b1dba5945098b1c6678a133453fff79d78f09cc51b6fc1f67f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/cc/cc-by-nc-sa-cbdab52b943a12b1dba5945098b1c6678a133453fff79d78f09cc51b6fc1f67f.png -------------------------------------------------------------------------------- /public/assets/lightbox/close-5d62e6c90005bfb71f6abb440f9e4753681cb23bbd5e60477ab6f442d2f0e69c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/close-5d62e6c90005bfb71f6abb440f9e4753681cb23bbd5e60477ab6f442d2f0e69c.png -------------------------------------------------------------------------------- /public/assets/lightbox/loading-225aa88b6ab02c06222ec9468d62e15fa188e39cdb9431d1f55401ad380753ed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/lightbox/loading-225aa88b6ab02c06222ec9468d62e15fa188e39cdb9431d1f55401ad380753ed.gif -------------------------------------------------------------------------------- /public/assets/reviews/question-b26b16a0770515533db6ed7104e367c6de9c2fe4e66ecd2a7c6074451de055ae.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/reviews/question-b26b16a0770515533db6ed7104e367c6de9c2fe4e66ecd2a7c6074451de055ae.png -------------------------------------------------------------------------------- /public/assets/buttons/auth-icons-cb2522baf5ba2231dd9e21545772f72544378a415f6744fa6b423ed0baa43565.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stylish-userstyles/userstyles/HEAD/public/assets/buttons/auth-icons-cb2522baf5ba2231dd9e21545772f72544378a415f6744fa6b423ed0baa43565.png -------------------------------------------------------------------------------- /public/crossdomain.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 |What would you like to be known as?
2 | <%= form_tag(:action => "resolve_name_required") do %> 3 |Enter the e-mail address you used to sign up to reset your password. If you didn't provide an e-mail address when signing up, you're screwed.
3 | 4 | 5 | <% end %> 6 | -------------------------------------------------------------------------------- /app/views/users/migrate_openid.html.erb: -------------------------------------------------------------------------------- 1 |2 | <% if !@user_with_this_openid.nil? %> 3 | The OpenID '<%=h @user_with_this_openid.openid_url%>' is already being used by <%=link_to(@user_with_this_openid.name, :controller => :users, :action => :show, :id => @user_with_this_openid.id)%>. 4 | <% else %> 5 | <%=@message%> 6 | <% end %> 7 |
8 | -------------------------------------------------------------------------------- /app/views/index/rescue_404.html.erb: -------------------------------------------------------------------------------- 1 |Don't know what you're looking for. Sorry.
2 | 3 | 7 | 10 | -------------------------------------------------------------------------------- /app/views/login/name_conflict.html.erb: -------------------------------------------------------------------------------- 1 | <%= error_messages_for 'user' %> 2 |The display name '<%=@taken_name%>' has already been taken. Please choose a new one.
3 | <%= form_tag(:action => "resolve_name_conflict") do %> 4 |Sorry, there's no page here.
2 | 3 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/models/forum_user.rb: -------------------------------------------------------------------------------- 1 | class ForumUser < ActiveRecord::Base 2 | self.table_name = 'GDN_User' 3 | self.primary_key = 'UserID' 4 | 5 | has_and_belongs_to_many :users, -> { readonly }, :foreign_key => 'UserID', :association_foreign_key => 'ForeignUserKey', :join_table => 'GDN_UserAuthentication' 6 | 7 | def user 8 | return users.first 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /public/block.xbl: -------------------------------------------------------------------------------- 1 | 2 |The following XBL bindings are allowed in styles posted to this site. To request approval for more bindings, e-mail jason@userstyles.org.
2 | 3 |Note that data uri bindings will only work in Firefox 3 and equivalent.
4 | 5 |If that doesn't help, try the forum.
10 | 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .bundle 2 | db/*.sqlite3 3 | log/ 4 | tmp/ 5 | config/initializers/secret_token.rb 6 | config/database.yml 7 | config/*.sphinx.conf 8 | public/auto_style_screenshots/ 9 | public/style_screenshots 10 | public/style_screenshot_thumbnails 11 | public/auto_style_screenshots 12 | config/initializers/password_salt.rb 13 | config/initializers/vanilla.rb 14 | config/initializers/omniauth.rb 15 | db/sphinx 16 | db/cstore 17 | config/initializers/jerks.rb 18 | .ruby-gemset 19 | .ruby-version 20 | .DS_Store 21 | -------------------------------------------------------------------------------- /app/views/styles/lotsa_screenshots.html.erb: -------------------------------------------------------------------------------- 1 | <% @styles.each do |style| 2 | if !style.after_screenshot_thumbnail_path.nil? %> 3 |7 | <% if params[:page].to_i >= 1 %> 8 | Prev 9 | <% end %> 10 | Next 11 |
12 | -------------------------------------------------------------------------------- /test/unit/style_test.rb: -------------------------------------------------------------------------------- 1 | require 'test_helper' 2 | 3 | class StyleTest < ActiveSupport::TestCase 4 | 5 | test 'valid is valid' do 6 | style = get_valid_style() 7 | assert style.valid? 8 | end 9 | 10 | test 'long moz_doc_error' do 11 | style = get_valid_style() 12 | style.moz_doc_error = 'X' * 1000 13 | style.save 14 | assert style.moz_doc_error == 'X' * 100 15 | end 16 | 17 | test 'IDN is valid URL' do 18 | assert Style.validate_url('http://серьёзныеигры.рф', true) 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /runnerscripts/validate_code_email.rb: -------------------------------------------------------------------------------- 1 | styles = Style.find(:all, :conditions => 'obsolete = 0 and email is not null', :include => [:user, :style_code], :order => 'users.name, styles.id') 2 | users = {} 3 | styles.each do |style| 4 | next if style.style_code.nil? 5 | if !style.style_code.valid? 6 | users[style.user.email] = [] if !users.include?(style.user.email) 7 | users[style.user.email] << style 8 | end 9 | end 10 | users.each do |email, styles| 11 | InvalidStyleMailer.deliver_url_format(email, styles) 12 | end 13 | -------------------------------------------------------------------------------- /runnerscripts/refresh_meta.rb: -------------------------------------------------------------------------------- 1 | Style.active.includes(:style_code, {:style_settings => :style_setting_options}).find_in_batches(batch_size: 100) do |styles_batch| 2 | styles_batch.each do |style| 3 | puts "Checking #{style.id}" 4 | style.refresh_meta 5 | if !style.changed? 6 | #puts "Unchanged " + style.id.to_s 7 | elsif !style.save(:validate => false) 8 | puts "Couldn't save " + style.id.to_s 9 | else 10 | puts "Saved " + style.id.to_s 11 | end 12 | end 13 | puts "Completed up to #{styles_batch.last.id}" 14 | end 15 | -------------------------------------------------------------------------------- /app/views/index/admin_debug.html.erb: -------------------------------------------------------------------------------- 1 | <% if params['pid'].nil? or Process.pid.to_s == params['pid'] %> 2 |
3 | pid <%=Process.pid%>
4 |
5 | <% if params['class'].nil?
6 | counts = Hash.new{0}
7 | ObjectSpace.each_object do |o|
8 | counts[o.class] += 1
9 | end
10 | counts.sort_by{|k,v| v}.reverse.each do |k,v| %>
11 | <%=k%>: <%=v%>
12 | <% end
13 | else
14 | ObjectSpace.each_object(Object.const_get(params['class'])) do |o| %>
15 | <%=o.inspect%>
16 | <% end
17 | end %>
18 |
19 | <% else %>
20 | Nope - <%=Process.pid%>
21 | <% end %>
22 |
--------------------------------------------------------------------------------
/app/models/user_authenticator.rb:
--------------------------------------------------------------------------------
1 | class UserAuthenticator < ActiveRecord::Base
2 |
3 | belongs_to :user
4 |
5 | validates_inclusion_of :provider, :in => %w( openid google_oauth2 ), :allow_nil => false
6 | validates_length_of :provider, :minimum => 1
7 |
8 | validates_length_of :provider_identifier, :minimum => 1
9 | validates_uniqueness_of :provider_identifier, :allow_nil => false
10 |
11 | def pretty_provider
12 | self.class.pretty_provider(provider)
13 | end
14 |
15 | def self.pretty_provider(provider)
16 | Rails.application.config.available_auths[provider]
17 | end
18 |
19 | end
20 |
--------------------------------------------------------------------------------
/app/views/help/stylish.html.erb:
--------------------------------------------------------------------------------
1 | Stylish is available for Firefox (and other Mozilla programs) and Chrome. If you don't have either of those browsers, I suggest Firefox.
2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /runnerscripts/check_parse.rb: -------------------------------------------------------------------------------- 1 | require 'csspool' 2 | 3 | Style.active.where('code_error is null').includes(:style_code, {:style_options => :style_option_values}).find_in_batches(batch_size: 100) do |styles_batch| 4 | styles_batch.each do |style| 5 | puts "Checking #{style.id}" 6 | style.code_possibilities.each do |o, c| 7 | sections = Style.parse_moz_docs_for_code(c) 8 | sections.each do |s| 9 | # empty blocks are considered invalid, so add a rule. 10 | CSSPool::CSS::Document.parse(s[:code] + "\na{}") 11 | end 12 | end 13 | end 14 | puts "Completed up to #{styles_batch.last.id}" 15 | end 16 | -------------------------------------------------------------------------------- /app/assets/javascripts/social.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 3 | function asyncScript(url) { 4 | var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; 5 | po.src = url; 6 | var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); 7 | }; 8 | window.addEventListener('load', function() { 9 | asyncScript('//connect.facebook.net/en_US/all.js#xfbml=1'); 10 | asyncScript('https://apis.google.com/js/plusone.js'); 11 | asyncScript('https://platform.twitter.com/widgets.js'); 12 | asyncScript("//assets.pinterest.com/js/pinit.js"); 13 | }, false); 14 | 15 | })(); 16 | -------------------------------------------------------------------------------- /config/initializers/log_formatter.rb: -------------------------------------------------------------------------------- 1 | # Adds time, pid, and severity to log messages 2 | class ActiveSupport::Logger::SimpleFormatter 3 | SEVERITY_TO_COLOR_MAP = {'DEBUG'=>'0;37', 'INFO'=>'32', 'WARN'=>'33', 'ERROR'=>'31', 'FATAL'=>'31', 'UNKNOWN'=>'37'} 4 | 5 | def call(severity, time, progname, msg) 6 | formatted_severity = sprintf("%-5s",severity) 7 | formatted_time = time.strftime("%Y-%m-%d %H:%M:%S.") << time.usec.to_s[0..2].rjust(3) 8 | color = SEVERITY_TO_COLOR_MAP[severity] 9 | "\033[0;37m#{formatted_time}\033[0m #{$$} [\033[#{color}m#{formatted_severity}\033[0m] #{msg.strip}\n" 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /runnerscripts/clear_whitespace.rb: -------------------------------------------------------------------------------- 1 | Style.active.where("short_description not regexp '.*[[:graph:]]+$' or short_description not regexp '^[[:graph:]]+.*'").each do |style| 2 | style.short_description = style.short_description + ' ' 3 | style.save(:perform_validation => false) 4 | puts "#{style.id} #{style.errors.full_messages} #{style.short_description}" 5 | 6 | end 7 | 8 | User.where("name not regexp '.*[[:graph:]]+$' or name not regexp '^[[:graph:]]+.*'").each do |user| 9 | user.name = user.name + ' ' 10 | user.save(:perform_validation => false) 11 | puts "#{user.id} #{user.errors.full_messages} #{user.name}" 12 | end 13 | -------------------------------------------------------------------------------- /app/views/styles/automation_page.html.erb: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |<%=h @style.style_code.code%>6 | 7 | 14 | -------------------------------------------------------------------------------- /app/helpers/categories_helper.rb: -------------------------------------------------------------------------------- 1 | module CategoriesHelper 2 | def site_style_text 3 | "Site styles make changes to particular web sites. They will generally do things specific to the web site they apply to, like tweak the display, remove sections, or even completely redesign them." 4 | end 5 | 6 | def app_style_text 7 | "App styles affect the interface of Firefox, Thunderbird, and other Mozilla programs. They can change toolbars, menus, dialogs, tabs, extensions, and any other interface item." 8 | end 9 | 10 | def global_style_text 11 | "Global styles make changes to all web sites. They will make general changes like adjusting the font or colors." 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /app/assets/stylesheets/lightbox-override.css.erb: -------------------------------------------------------------------------------- 1 | body:after { 2 | content: url(<%=asset_path 'lightbox/close.png'%>) url(<%=asset_path 'lightbox/loading.gif'%>) url(<%=asset_path 'lightbox/prev.png'%>) url(<%=asset_path 'lightbox/next.png'%>); 3 | } 4 | .lb-cancel { 5 | background: url(<%=asset_path 'lightbox/loading.gif'%>) no-repeat; 6 | } 7 | .lb-prev:hover { 8 | background: url(<%=asset_path 'lightbox/prev.png'%>) left 48% no-repeat; 9 | } 10 | .lb-next:hover { 11 | background: url(<%=asset_path 'lightbox/next.png'%>) right 48% no-repeat; 12 | } 13 | .lb-data .lb-close { 14 | background: url(<%=asset_path 'lightbox/close.png'%>) top right no-repeat; 15 | } 16 | 17 | 18 | -------------------------------------------------------------------------------- /app/views/lost_password_mailer/password_reset.text.erb: -------------------------------------------------------------------------------- 1 | <% if @users.length == 1 %> 2 | To reset your userstyles.org password, visit https://<%=DOMAIN%>/login/lost_password_done/<%=@users.first.lost_password_key%> 3 | <% else %> 4 | We found multiple accounts for your e-mail. You can reset the password for each of them by visiting the links below: 5 | 6 | <% @users.each do |user| %> 7 | - Account '<%=user.login%>': https://<%=DOMAIN%>/login/lost_password_done/<%=user.lost_password_key%> 8 | <% end %> 9 | <% end %> 10 | 11 | If you didn't make this request or you remembered your password in the few seconds it took for this e-mail to arrive, you can ignore this notice; nothing will happen. 12 | -------------------------------------------------------------------------------- /app/views/styles/screenshotable.html.erb: -------------------------------------------------------------------------------- 1 | 9 | <% @styles.each do |style| %> 10 |
User styles are categorized by what they change.
2 | 3 |<%=site_style_text%> There are <%=number_with_delimiter(@site_count)%> site styles.
4 | 5 |<%=app_style_text%> There are <%=number_with_delimiter(@app_count)%> app styles.
6 | 7 |<%=global_style_text%> <%=link_to('There are ' + number_with_delimiter(@global_count) + ' global styles.', :controller => 'styles', :action => 'browse', :category => 'global')%>
8 | 9 |If you're feeling adventurous, you can also check out the style graveyard, where broken styles go when they die.
10 | 11 | 12 | -------------------------------------------------------------------------------- /misc/vanilla-plugin/global.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | // automatically click the jsconnect links if they're there 3 | setTimeout(function() { 4 | if ($('#dashboard_entry_signin .ConnectLink').length == 1) { 5 | $('#dashboard_entry_signin .ConnectLink')[0].click(); 6 | return; 7 | } 8 | if ($('#dashboard_entry_signin .JsConnect-Guest .SignInLink').length == 1) { 9 | $('#dashboard_entry_signin .JsConnect-Guest .SignInLink')[0].click(); 10 | return; 11 | } 12 | }, 1000); 13 | 14 | // https://github.com/vanilla/addons/issues/93 15 | // Change signout link to main site signout 16 | var signoutLink = $('.SignOutWrap a'); 17 | signoutLink.attr('href', 'https://userstyles.org/logout'); 18 | }); 19 | -------------------------------------------------------------------------------- /misc/vanilla-plugin/global.css: -------------------------------------------------------------------------------- 1 | /* Index rating image - move to left of title */ 2 | .DataList .ItemDiscussion { 3 | position: relative; 4 | padding-left: 22px; 5 | } 6 | .DataList .rating-image { 7 | position: absolute; 8 | left: 3px; 9 | top: 12px; 10 | } 11 | /* Form rating options */ 12 | label[for*="Rating"] { 13 | display: block !important; 14 | } 15 | /* Breadcrumbs are dumb when you have a sidebar */ 16 | .Breadcrumbs { 17 | display: none; 18 | } 19 | /* Align to top with Breadcrumbs gone */ 20 | .MeBox { 21 | margin-top: 0; 22 | } 23 | 24 | .PanelCategories li:first-child, .PanelCategories li:nth-last-child(2) { 25 | border-bottom: 2px solid black; 26 | } 27 | kbd, samp { 28 | font-family: monospace !important; 29 | } 30 | -------------------------------------------------------------------------------- /runnerscripts/refresh_unintentional_global.rb: -------------------------------------------------------------------------------- 1 | require 'csspool' 2 | 3 | limit = 200 4 | offset = 0 5 | conditions = 'obsolete = 0' 6 | includes = [:style_code] 7 | @styles = Style.find(:all, :conditions => conditions, :include => includes, :order => 'styles.id', :limit => limit, :offset => offset) 8 | until @styles.empty? 9 | @styles.each do |style| 10 | ui = style.calculate_unintentional_global 11 | if style.unintentional_global != ui 12 | puts "updating #{style.id}\n" 13 | style.unintentional_global = ui 14 | style.save(false) 15 | end 16 | end 17 | offset = offset + limit 18 | @styles = Style.find(:all, :conditions => conditions, :include => includes, :order => 'styles.id', :limit => limit, :offset => offset) 19 | end 20 | -------------------------------------------------------------------------------- /app/controllers/logout_controller.rb: -------------------------------------------------------------------------------- 1 | class LogoutController < ApplicationController 2 | 3 | def index 4 | if !session[:user_id].nil? 5 | user = User.find(session[:user_id]) 6 | if !user.token.nil? 7 | user.token = nil 8 | user.save(:validate => false) 9 | end 10 | end 11 | reset_session 12 | cookies.delete(:login) 13 | cookies.delete(:session_id) 14 | # log out of vanilla too 15 | cookies.delete('Vanilla', :domain => COOKIE_DOMAIN) 16 | cookies.delete('Vanilla-Volatile', :domain => COOKIE_DOMAIN) 17 | redirect_to '/' 18 | end 19 | 20 | private 21 | def public_action? 22 | true 23 | end 24 | 25 | def admin_action? 26 | false 27 | end 28 | 29 | def verify_private_action(user_id) 30 | false 31 | end 32 | end 33 | -------------------------------------------------------------------------------- /shellscripts/report_counts.sql: -------------------------------------------------------------------------------- 1 | -- daily reports - anything in the last 24 hours 2 | UPDATE styles SET daily_reports = 0; 3 | UPDATE styles s 4 | JOIN ( 5 | SELECT style_id, COUNT(*) c FROM daily_report_counts WHERE report_date >= DATE_SUB(NOW(), INTERVAL 1 DAY) GROUP BY style_id 6 | ) d 7 | ON s.id = d.style_id 8 | SET s.daily_reports = d.c; 9 | 10 | -- move anything before yesterday to the historical count table 11 | INSERT IGNORE INTO report_counts 12 | (style_id, report_date, reports) 13 | (SELECT style_id, DATE(report_date), COUNT(*) FROM daily_report_counts WHERE report_date < DATE_SUB(CURDATE(), INTERVAL 1 DAY) GROUP BY style_id, DATE(report_date)); 14 | DELETE FROM daily_report_counts WHERE report_date < DATE_SUB(CURDATE(), INTERVAL 1 DAY); 15 | -------------------------------------------------------------------------------- /app/views/categories/show.html.erb: -------------------------------------------------------------------------------- 1 | <% if @root_category == 'site' %> 2 |<%=site_style_text%>
3 |Search for site styles on the left, or choose from the list of sites with the most styles.
4 | <% elsif @root_category == 'app' %> 5 |<%=app_style_text%>
6 |Search for app styles on the left, or choose a more specific category.
7 | <% end %> 8 | 9 |No styles found. Try browsing from the top or try a new search on the left.
5 | 6 | <% else %> 7 | 8 | <% if !@styles.empty? %> 9 | <%= will_paginate @styles %> 10 | <% content_for :link_rel_next_prev do %> 11 | <% if @styles.previous_page %> 12 | 13 | <% end %> 14 | <% if @styles.next_page %> 15 | 16 | <% end %> 17 | <% end %> 18 | <% end %> 19 | 20 | <% end %> 21 | -------------------------------------------------------------------------------- /app/views/index/contact.html.erb: -------------------------------------------------------------------------------- 1 |Question? Have you tried reading the help docs?
2 | 3 |Want to talk about a certain style? Keep in mind, I'm the administrator of the site. The vast majority of styles are not written by me. If you want to talk to the author of a certain style, click the link to start a new discussion from the style's page.
4 | 5 |Want some CSS help? I suggest you ask in the forum, where the whole userstyles.org community can help you.
6 | 7 |Other than that, feel free to mail me at jason.barnabe@gmail.com or send me a private message on the forum.
8 | -------------------------------------------------------------------------------- /app/models/forum_discussion.rb: -------------------------------------------------------------------------------- 1 | class ForumDiscussion < ActiveRecord::Base 2 | self.table_name = 'GDN_Discussion' 3 | self.primary_key = 'DiscussionID' 4 | alias_attribute 'name', 'Name' 5 | 6 | # ignore this so we don't have to cache something we won't use 7 | ignore_columns :Body 8 | 9 | belongs_to :original_forum_poster, -> { readonly }, :class_name => 'ForumUser', :foreign_key => 'InsertUserID' 10 | 11 | def created 12 | return self.DateInserted 13 | end 14 | 15 | def updated 16 | return self.DateLastComment unless self.DateLastComment.nil? 17 | return self.DateInserted 18 | end 19 | 20 | def url 21 | "http://#{FORUM_DOMAIN}/discussion/#{self.DiscussionID}/x" 22 | end 23 | 24 | def original_poster 25 | return original_forum_poster.user 26 | end 27 | 28 | end 29 | -------------------------------------------------------------------------------- /runnerscripts/validate_code.rb: -------------------------------------------------------------------------------- 1 | @styles = Style.find(:all, :conditions => 'obsolete = 0', :include => [:user, :style_code], :order => 'users.name, styles.id') 2 | @styles.each do |style| 3 | next if style.style_code.nil? 4 | if !style.style_code.valid? 5 | urls = style.style_code.errors.full_messages.map do |m| 6 | m.sub('Code contains an invalid URL reference - ', '').sub('. Only absolute URLs to one of the following protocols is allowed - http:, data:, moz-icon:, chrome:, https:. For user-specified URLs, use style settings.', '').gsub("'", '') 7 | end 8 | #urls.each do |url| 9 | # puts style.full_pretty_url if url != url.strip and !url.strip.empty? 10 | #end 11 | #puts style.user.name + ' - ' + style.full_pretty_url + ' - ' + style.short_description + ' - ' + urls.join(', ') 12 | puts style.id 13 | end 14 | end 15 | -------------------------------------------------------------------------------- /app/indices/style_index.rb: -------------------------------------------------------------------------------- 1 | ThinkingSphinx::Index.define :style, :with => :active_record, :delta => ThinkingSphinx::Deltas::DelayedDelta do 2 | 3 | # fields 4 | indexes short_description, :as => :name, :sortable => true 5 | indexes long_description, :as => :description 6 | indexes additional_info 7 | indexes category 8 | indexes 'IF(ISNULL(subcategory), "none", subcategory)', :as => :subcategory 9 | indexes user.name, :as => :author 10 | indexes id, :as => :style_id 11 | 12 | # attributes 13 | has :popularity_score, :as => :popularity 14 | has :created, :updated, :total_install_count, :weekly_install_count, :rating 15 | 16 | where 'obsolete = 0' 17 | 18 | set_property :field_weights => { 19 | :style_id => 10, 20 | :subcategory => 10, 21 | :name => 5, 22 | :author => 5, 23 | :description => 2, 24 | :additional_info => 1 25 | } 26 | 27 | end 28 | -------------------------------------------------------------------------------- /app/helpers/users_helper.rb: -------------------------------------------------------------------------------- 1 | module UsersHelper 2 | def format_with_separator(number, separator = ',', length = 3 ) 3 | splitter = Regexp.compile "(\\d{#{length}})" 4 | before, after = number.to_s.split('.') 5 | before = before.reverse.gsub splitter, '\1' + separator 6 | str = "#{ before.chomp( separator ).reverse }" 7 | str += ".#{ after }" if after 8 | return str 9 | end 10 | 11 | def user_list(user_counts, description) 12 | string = "| 7 | 8 | | 9 |10 | 11 | | 12 |
|---|---|
| 15 | 16 | | 17 |18 | <%= password_field_tag 'password', '', :size => 15 %> 19 | | 20 |
| 23 | 24 | | 25 |26 | <%= password_field_tag 'password_confirmation', '', :size => 15 %> 27 | | 28 |
OpenID is a decentralized system that allows you have to have one login for multiple sites. By using OpenID, you can have a centralized location for all your user info and manage what info what sites receive. Your login will also be safer - an OpenID provider's purpose is to safely store your information and thus the provider is an expert in that area.
4 | 5 |If you don't have an OpenID, you can receive one for free from your choice of many providers.
6 | 7 |By entering an OpenID and submitting this form, your login will no longer be managed by userstyles.org - it will be managed by your provider. This action can only be undone by a userstyles.org administrator.
8 | <%= form_tag(:action => "migrate_openid", :id => @user.id) do %> 9 |The userstyles.org widget consists of two parts: the data feed and the script that turns that data feed into HTML.
2 | 3 |The data feed URLs are based on style listing URLs on userstyles.org. For example, the feed for http://userstyles.org/styles/browse is http://widget.userstyles.org/styles/browse.jsonp. The feed is in JSONP format. The default callback function is handleUserstylesData. You can use a different callback function by passing the "callback" parameter; for example, http://widget.userstyles.org/styles/browse.jsonp?callback=anotherFunction.
4 | 5 |The HTML generating script defines the callback function. This function receives a JSON array of all the styles as an argument. The idea is to generate content on your page based on this data. Make sure you properly escape HTML; the contents of the JSON are not HTML-escaped.
6 | 7 |If you make something really cool, let me know about it and I can post it for others to use.
8 | -------------------------------------------------------------------------------- /app/views/styles/style_atom.xml.builder: -------------------------------------------------------------------------------- 1 | headers["Content-Type"] = "application/atom+xml" 2 | xml.instruct! 3 | 4 | xml.feed "xmlns" => "http://www.w3.org/2005/Atom" do 5 | 6 | xml.title @page_title 7 | xml.link "rel" => "self", "href" => url_for(:only_path => false, :format => :atom) 8 | xml.id url_for(:only_path => false, :format => :atom) 9 | xml.updated @styles.first.updated.strftime("%Y-%m-%dT%H:%M:%SZ") if @styles.any? 10 | xml.author { xml.name "Jason Barnabe" } 11 | 12 | @styles.each do |style| 13 | xml.entry do 14 | xml.title style.short_description 15 | xml.link "rel" => "alternate", "href" => style.full_pretty_url 16 | xml.id url_for(:only_path => false, :controller => 'styles', :action => 'show', :id => style.id) 17 | xml.updated style.updated.strftime("%Y-%m-%dT%H:%M:%SZ") 18 | xml.author { xml.name style.user.name } 19 | xml.content "type" => "html" do 20 | xml.text! render(:partial => "/styles/style_feed_entry.html.erb", :locals => {:style => style}) 21 | end 22 | end 23 | end 24 | 25 | end 26 | -------------------------------------------------------------------------------- /app/controllers/index_controller.rb: -------------------------------------------------------------------------------- 1 | class IndexController < ApplicationController 2 | helper 'styles' 3 | 4 | def index 5 | @new = Style.newly_added(nil, 10) 6 | @best = Style.top_styles(10, 100) 7 | @page_title = "Restyle the web with Stylish!" 8 | @meta_description = "Customize your favorite web sites with Stylish and user styles." 9 | @show_site_wide_ads = false 10 | end 11 | 12 | def rescue_404 13 | @page_title = "404'd!" 14 | @no_ads = true 15 | @no_bots = true 16 | logger.warn "Request for #{request.original_url} resulted in 404." 17 | render :status => '404', :layout => true, :formats => [:html] 18 | end 19 | 20 | def firstrun 21 | @best = Style.top_styles(3, 25) 22 | render :layout => false 23 | end 24 | 25 | def contact 26 | @page_title = "Contact the admin" 27 | end 28 | 29 | def admin_debug 30 | render :layout => false 31 | end 32 | 33 | private 34 | 35 | def public_action? 36 | action_name != 'admin_debug' 37 | end 38 | 39 | def admin_action? 40 | action_name == 'admin_debug' 41 | end 42 | 43 | def verify_private_action(user_id) 44 | false 45 | end 46 | 47 | end 48 | -------------------------------------------------------------------------------- /app/views/styles/validate.html.erb: -------------------------------------------------------------------------------- 1 |Validating your CSS, with the @-moz-documents stripped. If your style has options, there will be an iframe for each combination.
2 | <% i = 0 3 | @codes.each do |p,c,e| %> 4 | 5 | <% p.each do |a| %> 6 | <%=h a[0]%>: <%=h a[1]%>10 | Userstyles.org validator message: 11 | <% if e.nil? %> 12 | OK! 13 | <% else %> 14 | <%= h e %> 15 | <% end %> 16 |
17 | 21 | 22 |"Deleting" your style doesn't truly delete it, it just hides it so it won't appear in listings or searches. For people who reach the style anyway (like current users of the style), you can optionally include a message and the ID of the style that they should be using instead.
5 | <%= form_tag(:action => "delete_save") do %> 6 || 10 | 11 | | 12 |13 | 14 | | 15 |
|---|---|
| 18 | 19 | | 20 |21 | 22 | | 23 |
6 | 7 | 12 |
13 | 14 |15 | 16 | 17 |
18 | 19 |20 | 21 | 22 |
23 | 24 |25 | 26 | 27 |
28 | 29 |30 | 31 | 32 |
33 | <% end %> 34 | -------------------------------------------------------------------------------- /runnerscripts/check_xul_elements.rb: -------------------------------------------------------------------------------- 1 | require 'csspool' 2 | 3 | def h(s) 4 | s.gsub('&', '&').gsub('<', '<').gsub('>', '>').gsub('"', '"') 5 | end 6 | 7 | bad_styles = [] 8 | bad_styles_with_mozdocs = [] 9 | 10 | limit = 200 11 | offset = 0 12 | includes = [:style_code] 13 | conditions = 'obsolete = 0 and code_error is null and category = "global"' 14 | order = 'styles.id' 15 | styles = Style.find(:all, :conditions => conditions, :include => includes, :order => order, :limit => limit, :offset => offset) 16 | until styles.empty? 17 | styles.each do |style| 18 | if style.using_xul_selectors 19 | #puts "" 20 | bad_styles << style.id 21 | else 22 | #puts "" 23 | end 24 | end 25 | offset = offset + limit 26 | styles = Style.find(:all, :conditions => conditions, :include => includes, :order => order, :limit => limit, :offset => offset) 27 | end 28 | puts "" 29 | 30 | styles = Style.find(:all, :conditions => "styles.id IN (#{bad_styles.join(', ')})", :include => :user, :order => 'users.name, styles.id') 31 | styles.each do |style| 32 | puts "#{h(style.user.name)} #{h(style.short_description)}Stylish for Chrome stores your styles in a database file on your computer to work. If it can't open this database file, it can't work, and will ask you "An error has occurred using the Stylish database. Would you like to visit a web page with possible solutions?".
2 | 3 |Some users have reported Chrome has made this file read-only after an update. You can check to make sure the file is writable. The steps to do so depends on your OS, but generally involves right-clicking on the file and choosing "Properties". If the file is read-only, set it to read-write and start Chrome.
11 | 12 |If the file was already writable, or if you still have problems, you can delete it (after backing it up if you wish). You will lose any previously installed styles. Make sure Chrome is not running when you do so. When you restart Chrome, Stylish will create a new, empty database file and will be functional once again.
13 | 14 |If you need further help, ask in the forum.
15 | 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Userstyles.org - an online repository of user styles. 2 | 3 | [](https://travis-ci.org/JasonBarnabe/userstyles) 4 | 5 | Please use [forum.userstyles.org](https://forum.userstyles.org) for support. 6 | 7 | See also: 8 | * [Stylish for Firefox](https://github.com/JasonBarnabe/stylish) 9 | * [Stylish for Chrome](https://github.com/JasonBarnabe/stylish-chrome) 10 | 11 | The userstyles.org code is licensed under GPL v3 unless stated 12 | otherwise. Styles posted on userstyles.org are not hosted in this 13 | repository and are (C) their respective authors, who may provide them 14 | under various licenses; see their page on userstyles.org for details. 15 | 16 | Copyright (C) 2006-2015 Jason Barnabe4 | If you believe any of the content available in the Site, including any of the Web Styles, infringes your intellectual property rights owned by you or by any third 5 | party in which you are authorized to act on its behalf, you may submit a copyright infringement notification using our copyright notice form ("Complaint"). 6 |
7 |8 | The Complaint shall include the following information and shall be submitted to contact [at] userstyles.org 9 |
20 | Be sure to consider whether fair use, fair dealing, or a similar exception to copyright applies before you submit the form. Please remember by submitting a 21 | Compliant you will be initiating a legal process, hence, please do not make any false claims. 22 |
-------------------------------------------------------------------------------- /test/unit/style_chrome_json_test.rb: -------------------------------------------------------------------------------- 1 | require 'test_helper' 2 | 3 | class StyleChromeJsonTest < ActiveSupport::TestCase 4 | 5 | test 'default namespace combined with one section' do 6 | style = Style.new(style_code: StyleCode.new(code: "@namespace url(http://www.w3.org/1999/xhtml);\n@-moz-document domain(example.com) {* { color: blue; }}")) 7 | style.refresh_meta(true) 8 | json = JSON.parse style.chrome_json({}) 9 | assert_equal 1, json['sections'].size 10 | assert_equal "@namespace url(http://www.w3.org/1999/xhtml);\n* { color: blue; }", json['sections'].first['code'] 11 | end 12 | 13 | test 'two namespaces combined with one section' do 14 | style = Style.new(style_code: StyleCode.new(code: "@namespace url(http://www.w3.org/1999/xhtml);\n@namespace svg url(http://www.w3.org/2000/svg);\n@-moz-document domain(example.com) {* { color: blue; }}")) 15 | style.refresh_meta(true) 16 | json = JSON.parse style.chrome_json({}) 17 | assert_equal 1, json['sections'].size 18 | assert_equal "@namespace url(http://www.w3.org/1999/xhtml);\n@namespace svg url(http://www.w3.org/2000/svg);\n* { color: blue; }", json['sections'].first['code'] 19 | end 20 | 21 | test 'default namespace not combined with two sections' do 22 | style = Style.new(style_code: StyleCode.new(code: "@namespace url(http://www.w3.org/1999/xhtml);\n@-moz-document domain(example.com) {* { color: blue; }}@-moz-document domain(example.org) {* { color: blue; }}")) 23 | style.refresh_meta(true) 24 | json = JSON.parse style.chrome_json({}) 25 | assert_equal 3, json['sections'].size 26 | assert_equal "@namespace url(http://www.w3.org/1999/xhtml);", json['sections'][0]['code'] 27 | assert_equal "* { color: blue; }", json['sections'][1]['code'] 28 | assert_equal "* { color: blue; }", json['sections'][2]['code'] 29 | end 30 | end 31 | -------------------------------------------------------------------------------- /app/views/help/userstylesorg.html.erb: -------------------------------------------------------------------------------- 1 |userstyles.org (the site you're on, if you haven't noticed) is the largest collection of user styles.
2 | 3 |Styles can be one of three categories: site styles, which affect certain sites; global styles, which affect all sites; or app styles, which affect the interface of Firefox and other Mozilla apps.
6 | 7 |Site styles are subcategorized based on the site they affect.
8 | 9 | 10 |You can use search terms, or URLs, or a combination when searching. URLs will limit the results to styles that affect that URL. For example, searching for "google.com black" will give you all styles that can affect Google that include the word "black" in the description.
13 | 14 |For advanced searches, you can use these operators. Clicking "Show options" in the search box lets you change various settings for your search results.
15 | 16 | 17 |Each style page will have a box giving you the options to install for your browser. The recommended way to install styles is with <%=link_to 'Stylish', :action => 'stylish'%>.
20 | 21 | 22 |You can leave feedback on a style at the bottom of the style's page. This is the best way for getting heard by the author of the style. You can optionally give the style a rating, which will affect how high the style appears in search results. You need to create an account to leave feedback.
25 | 26 |If you have a comment about userstyles.org itself (not about an individual style) or about Stylish, you can mail me at jason.barnabe@gmail.com or send me a private message on the forum.
27 | -------------------------------------------------------------------------------- /config/environments/development.rb: -------------------------------------------------------------------------------- 1 | Userstyles::Application.configure do 2 | # Settings specified here will take precedence over those in config/application.rb 3 | 4 | # In the development environment your application's code is reloaded on 5 | # every request. This slows down response time but is perfect for development 6 | # since you don't have to restart the webserver when you make code changes. 7 | config.cache_classes = false 8 | 9 | # Show full error reports and disable caching 10 | config.consider_all_requests_local = true 11 | config.action_controller.perform_caching = true 12 | 13 | # Don't care if the mailer can't send 14 | config.action_mailer.raise_delivery_errors = false 15 | 16 | config.active_support.deprecation = Proc.new { |message, callstack| 17 | raise NameError, message, callstack 18 | } 19 | 20 | # Only use best-standards-support built into browsers 21 | config.action_dispatch.best_standards_support = :builtin 22 | 23 | config.eager_load = true 24 | 25 | config.assets.compress = false 26 | config.assets.debug = true 27 | config.assets.prefix = "/dev-assets" 28 | 29 | # override domain set in config/initializers/session_store.rb 30 | config.session_store :cookie_store, :key => '_session_id', :domain => '.userstyles.local' 31 | 32 | # setting in an initializer isn't working to configure Rails.cache, so set here 33 | config.cache_store = :null_store 34 | #config.cache_store = :dalli_store, ['localhost:11211:10'], { :namespace => 'Userstyles', :expires_in => 1.hour, :compress => true } 35 | end 36 | 37 | 38 | DOMAIN = 'userstyles.local' 39 | DOMAIN_PROTOCOL = 'http' 40 | FORUM_DOMAIN = 'forum.userstyles.local' 41 | UPDATE_DOMAIN = 'http://update.userstyles.local' 42 | SCREENSHOT_DOMAIN = 'https://userstyles.org' 43 | MD5_PATH = '/www/md5/' 44 | COOKIE_DOMAIN = '.userstyles.local' 45 | 46 | ActionMailer::Base.delivery_method = :test 47 | -------------------------------------------------------------------------------- /runnerscripts/check_mozdocs.rb: -------------------------------------------------------------------------------- 1 | require 'csspool' 2 | 3 | def h(s) 4 | s.gsub('&', '&').gsub('<', '<').gsub('>', '>').gsub('"', '"') 5 | end 6 | 7 | def csspool_moz_doc_function_to_array(fn) 8 | return ['url', fn.value] if fn.is_a?(CSSPool::Terms::URI) 9 | return [fn.name, fn.params.first.value] 10 | end 11 | 12 | def activerecord_moz_doc_function_to_array(r) 13 | return [r.rule_type, r.value] 14 | end 15 | 16 | limit = 200 17 | offset = 0 18 | conditions = "obsolete = 0 and styles.id >= 53952" 19 | includes = [:style_code] 20 | @styles = Style.find(:all, :conditions => conditions, :include => includes, :order => 'styles.id', :limit => limit, :offset => offset) 21 | until @styles.empty? 22 | @styles.each do |style| 23 | #puts "\n" 24 | next if style.style_code.nil? 25 | csspool_array = style.get_new_moz_docs 26 | next if csspool_array.nil? 27 | if csspool_array.index{|a, b| !b.index('/*').nil?} 28 | puts "#{style.id} has a comment-like string" 29 | next 30 | end 31 | #activerecord_array = style.moz_doc_rules.map do |md| 32 | activerecord_array = style.style_code.rules.map do |md| 33 | activerecord_moz_doc_function_to_array(md) 34 | end 35 | activerecord_array.uniq! 36 | activerecord_array.sort! 37 | if (csspool_array <=> activerecord_array) == 0 38 | #puts "#{style.id} matches" 39 | elsif activerecord_array.empty? 40 | puts "#{style.id} has none on activerecord side" 41 | else 42 | puts "#{style.id} doesn't match - #{csspool_array.inspect} - #{activerecord_array.inspect}" 43 | #exit 44 | end 45 | #puts "#{style.id} - #{mds.map{|md|thing=function_to_thing(md);thing[0] + ' => ' + thing[1]}.join(', ')}" unless mds.nil? 46 | end 47 | #puts 'loading next set' 48 | offset = offset + limit 49 | @styles = Style.find(:all, :conditions => conditions, :include => includes, :order => 'styles.id', :limit => limit, :offset => offset) 50 | end 51 | -------------------------------------------------------------------------------- /runnerscripts/replace_images_2014_2.rb: -------------------------------------------------------------------------------- 1 | replacements = { 2 | "http://assets.tumblr.com/images/logo.png?alpha&5" => "https://secure.assets.tumblr.com/images/logo/logo.png", 3 | "http://assets.tumblr.com/images/logo.png?alpha&6" => "https://secure.assets.tumblr.com/images/logo/logo.png", 4 | "http://assets.tumblr.com/images/logo.png" => "https://secure.assets.tumblr.com/images/logo/logo.png", 5 | "http://assets.tumblr.com/images/post_icons.png" => "https://secure.assets.tumblr.com/images/post_icons_sprite.png", 6 | "http://assets.tumblr.com/images/dashboard_controls/icons_sprite.png?4" => "https://secure.assets.tumblr.com/images/dashboard_controls/dashboard_controls_sprite.png" 7 | } 8 | 9 | ids = Style.connection.select_values("select style_id from styles join style_codes on style_id = styles.id where !obsolete and (#{replacements.keys.map{|k| "code like '%#{k}%'"}.join(' OR ')})") 10 | 11 | ids.each do |id| 12 | style = Style.includes(:style_code).find(id) 13 | new_code = style.style_code.code.dup 14 | starting_code_invalid = false 15 | begin 16 | doc = CSSPool::CSS::Document.parse(new_code) 17 | rescue 18 | starting_code_invalid = true 19 | end 20 | next if starting_code_invalid 21 | replacements.each do |k, v| 22 | new_code.gsub!(k, v) 23 | end 24 | 25 | if new_code == style.style_code.code 26 | puts "#{id} didn't change" 27 | next 28 | end 29 | 30 | # make sure it remains valid code 31 | CSSPool::CSS::Document.parse(new_code) 32 | 33 | if false 34 | #File.open("public/tumblrfix/#{style.id}.css", 'w') { |file| file.write(new_code) } 35 | #puts "" 36 | puts "#{id} changed" 37 | else 38 | puts style.id.to_s 39 | style.style_code.code = new_code 40 | style.style_code.save 41 | style.refresh_meta 42 | style.write_md5 43 | style.save(:validate => false) 44 | end 45 | end 46 | -------------------------------------------------------------------------------- /misc/ExtraDiscussionData/config.php: -------------------------------------------------------------------------------- 1 | Discussion) && is_numeric($Sender->Discussion->StyleID)) { 10 | return $Sender->Discussion->StyleID != '0'; 11 | } 12 | if (isset($_REQUEST['Discussion/StyleID']) && is_numeric($_REQUEST['Discussion/StyleID'])) { 13 | return $_REQUEST['Discussion/StyleID'] != '0'; 14 | } 15 | return false; 16 | }; 17 | 18 | $USERSTYLES_IMAGE_DOMAIN = 'https://df6a.https.cdn.softlayer.net/80DF6A/static.userstyles.org'; 19 | 20 | $ExtraDiscussionDataConfig['Values'] = [ 21 | '0' => [ 22 | 'form_markup' => '
No rating (just a question or comment)',
23 | 'show_markup' => ''
24 | ],
25 | '1' => [
26 | 'form_markup' => '
Bad (doesn\'t work or is ugly)',
27 | 'show_markup' => '
'
28 | ],
29 | '2' => [
30 | 'form_markup' => '
OK (works, but could use improvement)',
31 | 'show_markup' => '
'
32 | ],
33 | '3' => [
34 | 'form_markup' => '
Good (works well, is fully functional or good looking)',
35 | 'show_markup' => '
'
36 | ]
37 | ];
38 |
39 | ?>
40 |
--------------------------------------------------------------------------------
/app/views/index/index.html.erb:
--------------------------------------------------------------------------------
1 | <% content_for :header_includes do %>
2 |
3 | <% end %>
4 |
5 | Welcome to userstyles.org, the largest collection of user styles anywhere! User styles let you change the way websites look. We've got <%=link_to("Facebook themes", :controller => "styles", :action => "browse", :category => 'facebook') %>, <%=link_to("Tumblr themes", :controller => "styles", :action => "browse", :category => 'tumblr') %>, <%=link_to("Google themes", :controller => "styles", :action => "browse", :category => 'google') %>, <%=link_to("Firefox themes", :controller => "styles", :action => "browse", :category => 'app') %>, and more. There are tens of thousands of user styles, I'm sure you'll like at least a few.
6 | 7 |The easiest way to use user styles is to use Stylish for Firefox, Stylish for Chrome, Stylish for Safari, or Stylish for Opera. It's all free, by the way.
8 | 9 |If you have Stylish already, or if you want to take a look around first, check out the styles below, try a search on the left, or <%=link_to_unless_current('browse by category', :action => "index", :controller => "categories") %>.
10 | 11 |Installing styles from this site is as easy as a pressing the "Load into Stylish" button on a style's page when you have Stylish installed. A dialog will come up where you can rename, edit, and preview the style. Once you're happy with the style, press Save. The changes will take effect immediately.
3 | 4 |Global and site styles can also be installed with GreaseMonkey. Click on the "Load as User Script" button on the style page, and GreaseMonkey will take over.
5 | 6 |To install a style into Thunderbird when you have Stylish installed, click on the
in the status bar, choose Write New Style, and copy the CSS from the style's page into that dialog. Press save and the style is installed.
All Mozilla applications support user styles by means of userContent.css (for site and global styles) and userChrome.css (for application styles). Read about their use at the mozillaZine Knowledge Base. You may have to remove the @namespace line at the start of the file, if present.
11 | 12 |Opera's UserJS feature allows the installation of global and site styles. Opera does not support app styles. Clicking the "Load as User Script" button on a style will provide you with a version of the style formatted for use with this feature. For information on how to use UserJS, see Opera's documention.
14 |Styles may also be installed using Opera's user stylesheet feature. Most styles will require editing to make them compatible with this feature (e.g. removing the @namespace and @moz-doc-rule lines).
15 | -------------------------------------------------------------------------------- /test/unit/style_moz_doc_validation_test.rb: -------------------------------------------------------------------------------- 1 | require 'test_helper' 2 | 3 | class StyleMozDocValidationTest < ActiveSupport::TestCase 4 | 5 | test 'HTTP URL OK' do 6 | style = get_valid_style() 7 | style.style_code.code = <<-END_OF_STRING 8 | @-moz-document url-prefix("http://example.com/") { * { color: blue; } } 9 | END_OF_STRING 10 | assert style.valid? 11 | end 12 | 13 | test 'HTTP URL bad' do 14 | style = get_valid_style() 15 | style.style_code.code = <<-END_OF_STRING 16 | @-moz-document url-prefix("this is not a URL") { * { color: blue; } } 17 | END_OF_STRING 18 | assert !style.valid? 19 | end 20 | 21 | test 'HTTP URL missing slash' do 22 | style = get_valid_style() 23 | style.style_code.code = <<-END_OF_STRING 24 | @-moz-document url-prefix("http:/example.com/") { * { color: blue; } } 25 | END_OF_STRING 26 | assert !style.valid? 27 | end 28 | 29 | test 'HTTP URL prefix stops at period' do 30 | style = get_valid_style() 31 | style.style_code.code = <<-END_OF_STRING 32 | @-moz-document url-prefix("http://example.") { * { color: blue; } } 33 | END_OF_STRING 34 | assert style.valid? 35 | end 36 | 37 | test 'moz-docs match example' do 38 | style = get_valid_style() 39 | style.style_code.code = <<-END_OF_STRING 40 | @-moz-document url-prefix("https://www.facebook.com"), url-prefix("http://www.facebook.com") { 41 | html { 42 | min-height:100%; 43 | } 44 | } 45 | END_OF_STRING 46 | style.example_url = 'http://www.facebook.com/foo' 47 | style.refresh_meta 48 | assert style.valid? 49 | end 50 | 51 | test 'moz-docs don\'t match example' do 52 | style = get_valid_style() 53 | style.style_code.code = <<-END_OF_STRING 54 | @-moz-document url-prefix("https://www.facebook.com"), url-prefix("http://www.facebook.com") { 55 | html { 56 | min-height:100%; 57 | } 58 | } 59 | END_OF_STRING 60 | style.example_url = 'http://userstyles.org/users/233982' 61 | style.refresh_meta 62 | assert !style.valid? 63 | end 64 | 65 | end 66 | -------------------------------------------------------------------------------- /runnerscripts/check_agentsheet.rb: -------------------------------------------------------------------------------- 1 | require 'csspool' 2 | 3 | def doc_has_agent_specific_stuff(doc) 4 | doc.rule_sets.each do |rs| 5 | rs.selectors.each do |s| 6 | parent_has_anon = false 7 | s.simple_selectors.each do |ss| 8 | return true if ss.is_a?(CSSPool::Selectors::Type) and ['scrollbar', 'thumb', 'gripper', 'scrollbarbutton'].include?(ss.name) 9 | ss.additional_selectors.each do |as| 10 | return true if as.is_a?(CSSPool::Selectors::Type) and ['scrollbar', 'thumb', 'gripper', 'scrollbarbutton'].include?(ss.name) 11 | end 12 | if parent_has_anon 13 | # these combinators indicate this is not a child of the previous element 14 | if [:+, :~].include?(ss.combinator) 15 | parent_has_anon = false 16 | # option is not anonymous 17 | elsif ss.is_a?(CSSPool::Selectors::Type) and ss.name == 'option' 18 | parent_has_anon = true 19 | next 20 | else 21 | return true 22 | end 23 | end 24 | parent_has_anon = true if ss.is_a?(CSSPool::Selectors::Type) and ['input', 'select', 'option', 'textarea'].include?(ss.name) 25 | end 26 | end 27 | end 28 | return false 29 | end 30 | 31 | Style.active.where('code_error is null').includes(:style_code, {:style_options => :style_option_values}).find_in_batches(batch_size: 100) do |styles_batch| 32 | styles_batch.each do |style| 33 | #puts "Checking #{style.id}" 34 | turn_into_agent = false 35 | style.code_possibilities.each do |o, c| 36 | break unless /\/\*\s*AGENT_SHEET\s*\*\//.match(c).nil? 37 | begin 38 | doc = CSSPool::CSS::Document.parse(c) 39 | rescue 40 | break 41 | end 42 | if doc_has_agent_specific_stuff(doc) 43 | turn_into_agent = true 44 | break 45 | end 46 | end 47 | if turn_into_agent 48 | puts "AGENT: #{style.id} #{style.category} #{style.short_description}" 49 | style.style_code.code = "/* AGENT_SHEET */\n" + style.style_code.code 50 | style.style_code.save 51 | end 52 | end 53 | #puts "Completed up to #{styles_batch.last.id}" 54 | end 55 | -------------------------------------------------------------------------------- /runnerscripts/repair_namespaces.rb: -------------------------------------------------------------------------------- 1 | require 'csspool' 2 | 3 | def h(s) 4 | s.gsub('&', '&').gsub('<', '<').gsub('>', '>').gsub('"', '"') 5 | end 6 | 7 | limit = 1000 8 | offset = 0 9 | includes = [:style_code] 10 | conditions = 'obsolete = 0 and code_error is null and style_codes.code like "%namespace%"' 11 | order = 'styles.id' 12 | styles = Style.find(:all, :conditions => conditions, :include => includes, :order => order, :limit => limit, :offset => offset) 13 | until styles.empty? 14 | styles.each do |style| 15 | namespaces = style.calculate_namespaces 16 | next if namespaces.nil? 17 | namespaces = namespaces - ['http://www.w3.org/1999/xhtml', 'http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'http://docbook.org/ns/docbook', 'http://www.w3.org/2000/svg', 'http://www.gribuser.ru/xml/fictionbook/2.0', 'http://vimperator.org/namespaces/liberator'] 18 | next if namespaces.empty? 19 | new_code = style.style_code.code 20 | namespaces.each do |ns| 21 | re = Regexp.new "@namespace[^;]+#{Regexp.escape(ns)}[^;]+;\\s*" 22 | new_code = new_code.gsub(re, '') 23 | end 24 | puts "#{style.id}" 25 | #puts "#{style.id} #{new_code}" 26 | #puts "====================" 27 | doc = CSSPool::CSS::Document.parse(new_code) 28 | if true 29 | style.style_code.code = new_code 30 | style.category = style.calculate_category 31 | style.subcategory = style.calculate_subcategory 32 | style.userjs_available = style.calculate_userjs_available? 33 | style.opera_css_available = style.calculate_opera_css_available? 34 | style.ie_css_available = style.calculate_ie_css_available? 35 | style.chrome_json_available = style.calculate_chrome_json_available? 36 | style.screenshot_url = style.calculate_screenshot_url 37 | style.style_code.save(false) 38 | style.save(false) 39 | end 40 | end 41 | offset = offset + limit 42 | styles = Style.find(:all, :conditions => conditions, :include => includes, :order => order, :limit => limit, :offset => offset) 43 | end 44 | puts "Done" 45 | -------------------------------------------------------------------------------- /config/environments/test.rb: -------------------------------------------------------------------------------- 1 | Userstyles::Application.configure do 2 | # Settings specified here will take precedence over those in config/application.rb 3 | 4 | # The test environment is used exclusively to run your application's 5 | # test suite. You never need to work with it otherwise. Remember that 6 | # your test database is "scratch space" for the test suite and is wiped 7 | # and recreated between test runs. Don't rely on the data there! 8 | config.cache_classes = true 9 | 10 | # Show full error reports and disable caching 11 | config.consider_all_requests_local = true 12 | config.action_controller.perform_caching = false 13 | 14 | # Raise exceptions instead of rendering exception templates 15 | config.action_dispatch.show_exceptions = false 16 | 17 | # Disable request forgery protection in test environment 18 | config.action_controller.allow_forgery_protection = false 19 | 20 | # Tell Action Mailer not to deliver emails to the real world. 21 | # The :test delivery method accumulates sent emails in the 22 | # ActionMailer::Base.deliveries array. 23 | config.action_mailer.delivery_method = :test 24 | 25 | # Use SQL instead of Active Record's schema dumper when creating the test database. 26 | # This is necessary if your schema can't be completely dumped by the schema dumper, 27 | # like if you have constraints or database-specific column types 28 | # config.active_record.schema_format = :sql 29 | 30 | # Print deprecation notices to the stderr 31 | config.active_support.deprecation = :stderr 32 | 33 | config.eager_load = false 34 | 35 | config.active_support.test_order = :random 36 | end 37 | 38 | 39 | DOMAIN = 'userstyles.local' 40 | DOMAIN_PROTOCOL = 'http' 41 | FORUM_DOMAIN = 'forum.userstyles.local' 42 | UPDATE_DOMAIN = 'https://update.userstyles.org' 43 | SCREENSHOT_DOMAIN = 'https://df6a.https.cdn.softlayer.net/80DF6A/static.userstyles.org' 44 | MD5_PATH = '/tmp/' 45 | COOKIE_DOMAIN = '.userstyles.local' 46 | 47 | ActionMailer::Base.delivery_method = :test 48 | -------------------------------------------------------------------------------- /runnerscripts/add_mozdocs.rb: -------------------------------------------------------------------------------- 1 | require 'csspool' 2 | 3 | limit = 1000 4 | offset = 0 5 | includes = [:style_code, :user] 6 | conditions = "obsolete = 0 and code_error is null and code like '%.dashboard_options_form%' and code not like '%moz-document%'" 7 | order = 'users.name, styles.id' 8 | styles = Style.find(:all, :conditions => conditions, :include => includes, :order => order, :limit => limit, :offset => offset) 9 | until styles.empty? 10 | styles.each do |style| 11 | next if style.style_code.nil? 12 | begin 13 | doc = CSSPool::CSS::Document.parse(style.style_code.code) 14 | rescue Exception => e 15 | puts "#{style.id} is not valid to begin with" 16 | next 17 | end 18 | # add a moz-doc, see if it's still valid 19 | pre = "@-moz-document domain(tumblr.com) {\n" 20 | post = "\n}" 21 | begin 22 | if style.style_code.code.index('@namespace').nil? 23 | new_code = pre + style.style_code.code + post 24 | else 25 | new_code = style.style_code.code[0..style.style_code.code.index(';')] + "\n" + pre + style.style_code.code[style.style_code.code.index(';')+1..-1] + post 26 | end 27 | CSSPool::CSS::Document.parse(new_code) 28 | puts "#{style.id} is cool with the moz-doc" 29 | 30 | if true 31 | style.style_code.code = new_code 32 | style.category = style.calculate_category 33 | style.subcategory = style.calculate_subcategory 34 | style.userjs_available = style.calculate_userjs_available? 35 | style.opera_css_available = style.calculate_opera_css_available? 36 | style.ie_css_available = style.calculate_ie_css_available? 37 | style.chrome_json_available = style.calculate_chrome_json_available? 38 | style.screenshot_url = style.calculate_screenshot_url 39 | style.style_code.save(false) 40 | style.save(false) 41 | end 42 | rescue ParseError => e 43 | puts "#{style.id} is invalid with the moz-doc" 44 | end 45 | end 46 | offset = offset + limit 47 | styles = Style.find(:all, :conditions => conditions, :include => includes, :order => order, :limit => limit, :offset => offset) 48 | end 49 | puts "Done" 50 | -------------------------------------------------------------------------------- /app/views/users/new.html.erb: -------------------------------------------------------------------------------- 1 | <%= error_messages_for 'user' %> 2 | <%= form_for(:user, :action => "create") do |f| %> 3 || 7 | | <%=f.text_field :login, :size => 20, :maxlength => 20%> | 8 |
|---|---|
| 11 | | <%=f.text_field :name, :maxlength => 50, :required => 'required'%> | 12 |
| 15 | | <%=f.text_field :email%> Optional, lets you recover your password. | 16 |
| 19 | | <%=f.check_box :show_email%> Can other users see your e-mail address? | 20 |
| 23 | | <%=f.text_field :paypal_email%> Optional, if you write a style people will be invited to send you money. | 24 |
| 27 | | <%=password_field "user", "password", :size => 15, :maxlength => 15%> | 28 |
| 31 | | <%=password_field "user", "password_confirmation", :size => 15, :maxlength => 15%> | 32 |
| 35 | | <%=f.text_area(:about, :rows => 10)%> Optional, displayed on your user page. | 36 |
| 39 | | <%=f.text_field :homepage %> Optional, displayed on your user page. | 40 |
| 43 | | 44 | <% if !@return_to.nil?%> 45 | 46 | <% end %> 47 | <%=submit_tag "Create"%> 48 | | 49 |
Stylish stores your styles in a database file on your computer to work. If it can't open this database file, it can't work. It'll complain about this every time you start Firefox.
2 | 3 |The instructions below should get you going again. If you have problems, you can ask on the forum.
4 | 5 |Deleting the database should fix the issue, but you'll lose any styles you've installed. If you want to keep your styles, see the next section.
8 | 9 |To delete your database:
10 |When you start Firefox, Stylish will create a new, empty database file and will be functional once again.
19 | 20 | 21 |This option is a little more complicated, but you'll be able to keep your installed styles.
24 | 25 |When you start Firefox, things may be fixed. If not, you'll have to do something else.
37 | 38 | 39 |If you don't care to have Stylish any more, you can uninstall it.
42 | 43 |Maybe you want to watch a tutorial screencast or read the help docs?
49 | 50 | 51 | 52 |Or jump right in with styles like <%=link_to h(@best[0].short_description), @best[0]%>, <%=link_to h(@best[1].short_description), @best[1]%>, and <%=link_to h(@best[2].short_description), @best[2]%>. Start browsing the site to find other styles.
53 | 54 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /config/application.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path('../boot', __FILE__) 2 | 3 | require 'rails/all' 4 | require 'sprockets/railtie' 5 | 6 | # If you have a Gemfile, require the gems listed there, including any gems 7 | # you've limited to :test, :development, or :production. 8 | Bundler.require(:default, Rails.env) 9 | 10 | module Userstyles 11 | class Application < Rails::Application 12 | # Settings in config/environments/* take precedence over those specified here. 13 | # Application configuration should go into files in config/initializers 14 | # -- all .rb files in that directory are automatically loaded. 15 | 16 | # Custom directories with classes and modules you want to be autoloadable. 17 | # config.autoload_paths += %W(#{config.root}/extras) 18 | 19 | # Only load the plugins named here, in the order given (default is alphabetical). 20 | # :all can be used as a placeholder for all plugins not explicitly named. 21 | # config.plugins = [ :exception_notification, :ssl_requirement, :all ] 22 | 23 | # Activate observers that should always be running. 24 | # config.active_record.observers = :cacher, :garbage_collector, :forum_observer 25 | 26 | # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. 27 | # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. 28 | # config.time_zone = 'Central Time (US & Canada)' 29 | 30 | # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. 31 | # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] 32 | # config.i18n.default_locale = :de 33 | 34 | # Configure the default encoding used in templates for Ruby 1.9. 35 | config.encoding = "utf-8" 36 | 37 | # Configure sensitive parameters which will be filtered from the log file. 38 | config.filter_parameters += [:password] 39 | 40 | config.active_record.schema_format = :sql 41 | config.active_record.raise_in_transactional_callbacks = true 42 | 43 | config.assets.enabled = true 44 | config.assets.version = '1.0' 45 | config.assets.initialize_on_precompile = false 46 | config.assets.precompile += %w( edit.js edit.css ) 47 | 48 | config.generators do |g| 49 | g.assets false 50 | end 51 | 52 | end 53 | end 54 | -------------------------------------------------------------------------------- /runnerscripts/repair_tumblr_2014_4.rb: -------------------------------------------------------------------------------- 1 | def function_info(f) 2 | return ['url', f.value] if f.is_a?(CSSPool::Terms::URI) 3 | return [f.name, f.params.first.value] 4 | end 5 | 6 | ids = Style.connection.select_values("select style_id from styles join style_codes on style_id = styles.id where subcategory = 'tumblr' and !obsolete") 7 | 8 | ids.each do |id| 9 | style = Style.includes(:style_code).find(id) 10 | new_code = style.style_code.code.dup 11 | starting_code_invalid = false 12 | begin 13 | doc = CSSPool::CSS::Document.parse(new_code) 14 | rescue 15 | starting_code_invalid = true 16 | end 17 | next if starting_code_invalid 18 | # start at the last so that the code indexes don't change as we make changes 19 | doc.document_queries.reverse.each do |dq| 20 | # if it has a domain rule, it's cool 21 | next if dq.url_functions.find{ |uf| 22 | n, v = function_info(uf) 23 | next v == 'domain' && ['tumblr.com', 'www.tumblr.com'].include?(v) 24 | } 25 | # find http rules 26 | http_functions = dq.url_functions.select{ |uf| 27 | n, v = function_info(uf) 28 | next ['url', 'url-prefix'].include?(n) && v.starts_with?('http://www.tumblr.com') && v != 'http://www.tumblr.com/goodies' 29 | } 30 | # does it not have the equivalent https rule? 31 | missing_https_functions = http_functions.select{ |http_uf| 32 | hun, huv = function_info(http_uf) 33 | dq.url_functions.find{|uf| 34 | un, uv = function_info(uf) 35 | next un == hun && uv == huv.sub(/^http:/, 'https:') 36 | }.nil? 37 | } 38 | next if missing_https_functions.empty? 39 | #puts "style #{id} is missing #{missing_https_functions.map{|f|function_info(f)}}" 40 | new_code = new_code.insert(dq.inner_start_pos - 1, 41 | ', ' + 42 | missing_https_functions.map{|uf| 43 | un, uv = function_info(uf) 44 | next "#{un}(\"#{uv.sub(/^http:/, 'https:')}\")" 45 | }.join(', ') + ' ' 46 | ) 47 | #puts new_code 48 | end 49 | next if new_code == style.style_code.code 50 | # make sure it remains valid code 51 | CSSPool::CSS::Document.parse(new_code) 52 | 53 | if false 54 | File.open("public/tumblrfix/#{style.id}.css", 'w') { |file| file.write(new_code) } 55 | puts "" 56 | else 57 | puts style.id.to_s 58 | style.style_code.code = new_code 59 | style.style_code.save 60 | style.refresh_meta 61 | style.write_md5 62 | style.save(:validate => false) 63 | end 64 | end 65 | --------------------------------------------------------------------------------