Latest commit

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

BAF's Allegro.cc JS Extensions

Summary

This is a work in progress suite of JavaScript extensions for Allegro.cc. These extensions are written in CoffeeScript (which compiles down to JavaScript).

Compatibility

At the moment, these extensions have only been tested in Google Chrome. Pull requests to improve compatibility are welcome.

Editing and Uploading

You'll need CoffeeScript and uglify-js installed to compile the source to JS. cake, coffee, and uglifyjs will need to be in your PATH to perform build tasks.

You'll also need knox if you're going to use the cakefile task to upload to Amazon S3. You can install this locally by running npm install knox.

Run cake build to rebuild the accjs.js and accjs.min.js files after editing.

Run cake upload to upload the JavaScript output to Amazon S3. Create a config.json using config.json.sample or pass your S3 credentials to the upload command.

Installation

jQuery is required by these extensions. The easiest thing to do is to add //ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js to the remote JS URLs textbox on your Custom CSS/JS page on Allegro.cc.

To use the latest tested version, hosted by me on Amazon CloudFront, add //d2kjp5wpflq1en.cloudfront.net/stable/accjs.min.js to the remote JS URLs textbox.

Alternatively, you can host this file someplace on your own and add the URL to it to the remote JS URLs textbox, or you can even copying the contents of the file directly to the Code box on the Custom CSS/JS page. If you're linking the file in from a non-HTTPS host, however, you may get warnings now that A.cc uses SSL for everything now.

Use

Quote Extension

The Quote Extension provides automatic quote generation for posts. After installation, a quote button will be added to the upper-right corner of each post. Clicking this button will toggle quoting of the post on and off.

A 'Generate Quotes' button is also added to the toolbar of the post editor. Clicking this button will generate quote automatically for all selected posts from the current thread.

Tweaking may be needed from time to time to properly handle new post features or to fix bugs in handling of existing features. Pull requests welcome.

Quote selections are stored in session storage. Persistence of these selections is in line with session storage persistence.

This is a reincarnation of a similar extension I wrote quite a while ago, back before I knew as much about web development, JavaScript, and jQuery. A thread discussing the original version can be found here.

Version Footer

This doesn't really do much. It adds a note to the page footer showing the version of the script that is active, along with a link to the repository on GitHub.

Future

This is an ongoing work-in-progress. I'll add new features as I desire them. I'm always open to suggestions as well!

About

My own custom javascript extensions for the allegro.cc forums.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

BAF's Allegro.cc JS Extensions

Summary

This is a work in progress suite of JavaScript extensions for Allegro.cc. These extensions are written in CoffeeScript (which compiles down to JavaScript).

Compatibility

At the moment, these extensions have only been tested in Google Chrome. Pull requests to improve compatibility are welcome.

Editing and Uploading

You'll need CoffeeScript and uglify-js installed to compile the source to JS. cake, coffee, and uglifyjs will need to be in your PATH to perform build tasks.

You'll also need knox if you're going to use the cakefile task to upload to Amazon S3. You can install this locally by running npm install knox.

Run cake build to rebuild the accjs.js and accjs.min.js files after editing.

Run cake upload to upload the JavaScript output to Amazon S3. Create a config.json using config.json.sample or pass your S3 credentials to the upload command.

Installation

jQuery is required by these extensions. The easiest thing to do is to add //ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js to the remote JS URLs textbox on your Custom CSS/JS page on Allegro.cc.

To use the latest tested version, hosted by me on Amazon CloudFront, add //d2kjp5wpflq1en.cloudfront.net/stable/accjs.min.js to the remote JS URLs textbox.

Alternatively, you can host this file someplace on your own and add the URL to it to the remote JS URLs textbox, or you can even copying the contents of the file directly to the Code box on the Custom CSS/JS page. If you're linking the file in from a non-HTTPS host, however, you may get warnings now that A.cc uses SSL for everything now.

Use

Quote Extension

The Quote Extension provides automatic quote generation for posts. After installation, a quote button will be added to the upper-right corner of each post. Clicking this button will toggle quoting of the post on and off.

A 'Generate Quotes' button is also added to the toolbar of the post editor. Clicking this button will generate quote automatically for all selected posts from the current thread.

Tweaking may be needed from time to time to properly handle new post features or to fix bugs in handling of existing features. Pull requests welcome.

Quote selections are stored in session storage. Persistence of these selections is in line with session storage persistence.

This is a reincarnation of a similar extension I wrote quite a while ago, back before I knew as much about web development, JavaScript, and jQuery. A thread discussing the original version can be found here.

Version Footer

This doesn't really do much. It adds a note to the page footer showing the version of the script that is active, along with a link to the repository on GitHub.

Future

This is an ongoing work-in-progress. I'll add new features as I desire them. I'm always open to suggestions as well!

About

My own custom javascript extensions for the allegro.cc forums.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

BAF's Allegro.cc JS Extensions

Summary

This is a work in progress suite of JavaScript extensions for Allegro.cc. These extensions are written in CoffeeScript (which compiles down to JavaScript).

Compatibility

At the moment, these extensions have only been tested in Google Chrome. Pull requests to improve compatibility are welcome.

Editing and Uploading

You'll need CoffeeScript and uglify-js installed to compile the source to JS. cake, coffee, and uglifyjs will need to be in your PATH to perform build tasks.

You'll also need knox if you're going to use the cakefile task to upload to Amazon S3. You can install this locally by running npm install knox.

Run cake build to rebuild the accjs.js and accjs.min.js files after editing.

Run cake upload to upload the JavaScript output to Amazon S3. Create a config.json using config.json.sample or pass your S3 credentials to the upload command.

Installation

jQuery is required by these extensions. The easiest thing to do is to add //ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js to the remote JS URLs textbox on your Custom CSS/JS page on Allegro.cc.

To use the latest tested version, hosted by me on Amazon CloudFront, add //d2kjp5wpflq1en.cloudfront.net/stable/accjs.min.js to the remote JS URLs textbox.

Alternatively, you can host this file someplace on your own and add the URL to it to the remote JS URLs textbox, or you can even copying the contents of the file directly to the Code box on the Custom CSS/JS page. If you're linking the file in from a non-HTTPS host, however, you may get warnings now that A.cc uses SSL for everything now.

Use

Quote Extension

The Quote Extension provides automatic quote generation for posts. After installation, a quote button will be added to the upper-right corner of each post. Clicking this button will toggle quoting of the post on and off.

A 'Generate Quotes' button is also added to the toolbar of the post editor. Clicking this button will generate quote automatically for all selected posts from the current thread.

Tweaking may be needed from time to time to properly handle new post features or to fix bugs in handling of existing features. Pull requests welcome.

Quote selections are stored in session storage. Persistence of these selections is in line with session storage persistence.

This is a reincarnation of a similar extension I wrote quite a while ago, back before I knew as much about web development, JavaScript, and jQuery. A thread discussing the original version can be found here.

Version Footer

This doesn't really do much. It adds a note to the page footer showing the version of the script that is active, along with a link to the repository on GitHub.

Future

This is an ongoing work-in-progress. I'll add new features as I desire them. I'm always open to suggestions as well!

About

My own custom javascript extensions for the allegro.cc forums.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

BAF's Allegro.cc JS Extensions

Summary

This is a work in progress suite of JavaScript extensions for Allegro.cc. These extensions are written in CoffeeScript (which compiles down to JavaScript).

Compatibility

At the moment, these extensions have only been tested in Google Chrome. Pull requests to improve compatibility are welcome.

Editing and Uploading

You'll need CoffeeScript and uglify-js installed to compile the source to JS. cake, coffee, and uglifyjs will need to be in your PATH to perform build tasks.

You'll also need knox if you're going to use the cakefile task to upload to Amazon S3. You can install this locally by running npm install knox.

Run cake build to rebuild the accjs.js and accjs.min.js files after editing.

Run cake upload to upload the JavaScript output to Amazon S3. Create a config.json using config.json.sample or pass your S3 credentials to the upload command.

Installation

jQuery is required by these extensions. The easiest thing to do is to add //ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js to the remote JS URLs textbox on your Custom CSS/JS page on Allegro.cc.

To use the latest tested version, hosted by me on Amazon CloudFront, add //d2kjp5wpflq1en.cloudfront.net/stable/accjs.min.js to the remote JS URLs textbox.

Alternatively, you can host this file someplace on your own and add the URL to it to the remote JS URLs textbox, or you can even copying the contents of the file directly to the Code box on the Custom CSS/JS page. If you're linking the file in from a non-HTTPS host, however, you may get warnings now that A.cc uses SSL for everything now.

Use

Quote Extension

The Quote Extension provides automatic quote generation for posts. After installation, a quote button will be added to the upper-right corner of each post. Clicking this button will toggle quoting of the post on and off.

A 'Generate Quotes' button is also added to the toolbar of the post editor. Clicking this button will generate quote automatically for all selected posts from the current thread.

Tweaking may be needed from time to time to properly handle new post features or to fix bugs in handling of existing features. Pull requests welcome.

Quote selections are stored in session storage. Persistence of these selections is in line with session storage persistence.

This is a reincarnation of a similar extension I wrote quite a while ago, back before I knew as much about web development, JavaScript, and jQuery. A thread discussing the original version can be found here.

Version Footer

This doesn't really do much. It adds a note to the page footer showing the version of the script that is active, along with a link to the repository on GitHub.

Future

This is an ongoing work-in-progress. I'll add new features as I desire them. I'm always open to suggestions as well!

About

My own custom javascript extensions for the allegro.cc forums.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

BAF's Allegro.cc JS Extensions

Summary

This is a work in progress suite of JavaScript extensions for Allegro.cc. These extensions are written in CoffeeScript (which compiles down to JavaScript).

Compatibility

At the moment, these extensions have only been tested in Google Chrome. Pull requests to improve compatibility are welcome.

Editing and Uploading

You'll need CoffeeScript and uglify-js installed to compile the source to JS. cake, coffee, and uglifyjs will need to be in your PATH to perform build tasks.

You'll also need knox if you're going to use the cakefile task to upload to Amazon S3. You can install this locally by running npm install knox.

Run cake build to rebuild the accjs.js and accjs.min.js files after editing.

Run cake upload to upload the JavaScript output to Amazon S3. Create a config.json using config.json.sample or pass your S3 credentials to the upload command.

Installation

jQuery is required by these extensions. The easiest thing to do is to add //ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js to the remote JS URLs textbox on your Custom CSS/JS page on Allegro.cc.

To use the latest tested version, hosted by me on Amazon CloudFront, add //d2kjp5wpflq1en.cloudfront.net/stable/accjs.min.js to the remote JS URLs textbox.

Alternatively, you can host this file someplace on your own and add the URL to it to the remote JS URLs textbox, or you can even copying the contents of the file directly to the Code box on the Custom CSS/JS page. If you're linking the file in from a non-HTTPS host, however, you may get warnings now that A.cc uses SSL for everything now.

Use

Quote Extension

The Quote Extension provides automatic quote generation for posts. After installation, a quote button will be added to the upper-right corner of each post. Clicking this button will toggle quoting of the post on and off.

A 'Generate Quotes' button is also added to the toolbar of the post editor. Clicking this button will generate quote automatically for all selected posts from the current thread.

Tweaking may be needed from time to time to properly handle new post features or to fix bugs in handling of existing features. Pull requests welcome.

Quote selections are stored in session storage. Persistence of these selections is in line with session storage persistence.

This is a reincarnation of a similar extension I wrote quite a while ago, back before I knew as much about web development, JavaScript, and jQuery. A thread discussing the original version can be found here.

Version Footer

This doesn't really do much. It adds a note to the page footer showing the version of the script that is active, along with a link to the repository on GitHub.

Future

This is an ongoing work-in-progress. I'll add new features as I desire them. I'm always open to suggestions as well!

About

My own custom javascript extensions for the allegro.cc forums.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

BAF's Allegro.cc JS Extensions

Summary

This is a work in progress suite of JavaScript extensions for Allegro.cc. These extensions are written in CoffeeScript (which compiles down to JavaScript).

Compatibility

At the moment, these extensions have only been tested in Google Chrome. Pull requests to improve compatibility are welcome.

Editing and Uploading

You'll need CoffeeScript and uglify-js installed to compile the source to JS. cake, coffee, and uglifyjs will need to be in your PATH to perform build tasks.

You'll also need knox if you're going to use the cakefile task to upload to Amazon S3. You can install this locally by running npm install knox.

Run cake build to rebuild the accjs.js and accjs.min.js files after editing.

Run cake upload to upload the JavaScript output to Amazon S3. Create a config.json using config.json.sample or pass your S3 credentials to the upload command.

Installation

jQuery is required by these extensions. The easiest thing to do is to add //ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js to the remote JS URLs textbox on your Custom CSS/JS page on Allegro.cc.

To use the latest tested version, hosted by me on Amazon CloudFront, add //d2kjp5wpflq1en.cloudfront.net/stable/accjs.min.js to the remote JS URLs textbox.

Alternatively, you can host this file someplace on your own and add the URL to it to the remote JS URLs textbox, or you can even copying the contents of the file directly to the Code box on the Custom CSS/JS page. If you're linking the file in from a non-HTTPS host, however, you may get warnings now that A.cc uses SSL for everything now.

Use

Quote Extension

The Quote Extension provides automatic quote generation for posts. After installation, a quote button will be added to the upper-right corner of each post. Clicking this button will toggle quoting of the post on and off.

A 'Generate Quotes' button is also added to the toolbar of the post editor. Clicking this button will generate quote automatically for all selected posts from the current thread.

Tweaking may be needed from time to time to properly handle new post features or to fix bugs in handling of existing features. Pull requests welcome.

Quote selections are stored in session storage. Persistence of these selections is in line with session storage persistence.

This is a reincarnation of a similar extension I wrote quite a while ago, back before I knew as much about web development, JavaScript, and jQuery. A thread discussing the original version can be found here.

Version Footer

This doesn't really do much. It adds a note to the page footer showing the version of the script that is active, along with a link to the repository on GitHub.

Future

This is an ongoing work-in-progress. I'll add new features as I desire them. I'm always open to suggestions as well!

About

My own custom javascript extensions for the allegro.cc forums.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

BAF's Allegro.cc JS Extensions

Summary

This is a work in progress suite of JavaScript extensions for Allegro.cc. These extensions are written in CoffeeScript (which compiles down to JavaScript).

Compatibility

At the moment, these extensions have only been tested in Google Chrome. Pull requests to improve compatibility are welcome.

Editing and Uploading

You'll need CoffeeScript and uglify-js installed to compile the source to JS. cake, coffee, and uglifyjs will need to be in your PATH to perform build tasks.

You'll also need knox if you're going to use the cakefile task to upload to Amazon S3. You can install this locally by running npm install knox.

Run cake build to rebuild the accjs.js and accjs.min.js files after editing.

Run cake upload to upload the JavaScript output to Amazon S3. Create a config.json using config.json.sample or pass your S3 credentials to the upload command.

Installation

jQuery is required by these extensions. The easiest thing to do is to add //ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js to the remote JS URLs textbox on your Custom CSS/JS page on Allegro.cc.

To use the latest tested version, hosted by me on Amazon CloudFront, add //d2kjp5wpflq1en.cloudfront.net/stable/accjs.min.js to the remote JS URLs textbox.

Alternatively, you can host this file someplace on your own and add the URL to it to the remote JS URLs textbox, or you can even copying the contents of the file directly to the Code box on the Custom CSS/JS page. If you're linking the file in from a non-HTTPS host, however, you may get warnings now that A.cc uses SSL for everything now.

Use

Quote Extension

The Quote Extension provides automatic quote generation for posts. After installation, a quote button will be added to the upper-right corner of each post. Clicking this button will toggle quoting of the post on and off.

A 'Generate Quotes' button is also added to the toolbar of the post editor. Clicking this button will generate quote automatically for all selected posts from the current thread.

Tweaking may be needed from time to time to properly handle new post features or to fix bugs in handling of existing features. Pull requests welcome.

Quote selections are stored in session storage. Persistence of these selections is in line with session storage persistence.

This is a reincarnation of a similar extension I wrote quite a while ago, back before I knew as much about web development, JavaScript, and jQuery. A thread discussing the original version can be found here.

Version Footer

This doesn't really do much. It adds a note to the page footer showing the version of the script that is active, along with a link to the repository on GitHub.

Future

This is an ongoing work-in-progress. I'll add new features as I desire them. I'm always open to suggestions as well!

About

My own custom javascript extensions for the allegro.cc forums.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

BAF's Allegro.cc JS Extensions

Summary

This is a work in progress suite of JavaScript extensions for Allegro.cc. These extensions are written in CoffeeScript (which compiles down to JavaScript).

Compatibility

At the moment, these extensions have only been tested in Google Chrome. Pull requests to improve compatibility are welcome.

Editing and Uploading

You'll need CoffeeScript and uglify-js installed to compile the source to JS. cake, coffee, and uglifyjs will need to be in your PATH to perform build tasks.

You'll also need knox if you're going to use the cakefile task to upload to Amazon S3. You can install this locally by running npm install knox.

Run cake build to rebuild the accjs.js and accjs.min.js files after editing.

Run cake upload to upload the JavaScript output to Amazon S3. Create a config.json using config.json.sample or pass your S3 credentials to the upload command.

Installation

jQuery is required by these extensions. The easiest thing to do is to add //ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js to the remote JS URLs textbox on your Custom CSS/JS page on Allegro.cc.

To use the latest tested version, hosted by me on Amazon CloudFront, add //d2kjp5wpflq1en.cloudfront.net/stable/accjs.min.js to the remote JS URLs textbox.

Alternatively, you can host this file someplace on your own and add the URL to it to the remote JS URLs textbox, or you can even copying the contents of the file directly to the Code box on the Custom CSS/JS page. If you're linking the file in from a non-HTTPS host, however, you may get warnings now that A.cc uses SSL for everything now.

Use

Quote Extension

The Quote Extension provides automatic quote generation for posts. After installation, a quote button will be added to the upper-right corner of each post. Clicking this button will toggle quoting of the post on and off.

A 'Generate Quotes' button is also added to the toolbar of the post editor. Clicking this button will generate quote automatically for all selected posts from the current thread.

Tweaking may be needed from time to time to properly handle new post features or to fix bugs in handling of existing features. Pull requests welcome.

Quote selections are stored in session storage. Persistence of these selections is in line with session storage persistence.

This is a reincarnation of a similar extension I wrote quite a while ago, back before I knew as much about web development, JavaScript, and jQuery. A thread discussing the original version can be found here.

Version Footer

This doesn't really do much. It adds a note to the page footer showing the version of the script that is active, along with a link to the repository on GitHub.

Future

This is an ongoing work-in-progress. I'll add new features as I desire them. I'm always open to suggestions as well!

About

My own custom javascript extensions for the allegro.cc forums.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages