Repository files navigation

Wordpress Plugin Simplified Search

Build StatusCoverage StatusLicense: MIT

A Node API that provides filtering and sorting for WordPress Plugins.

(or wp-plugin-ss, if you are into the brevity thing)

Why?

Searching for plugins on Wordpress.org can be time consuming since you cannot add filters
to specific fields and there is no such thing as sorting. To minimize these headaches, these features were introduced via wp-plugin-ss for you to use or extend upon.

Dependencies

MongoDb (required)

The WordPress Plugin Simplified Search API returns results directly from MongoDB. A data dump is available in the dump folder.

Redis (optional)

If you would like something more up to date than the data dump, you can run the cron and then run workers to up date your Mongo data.

Installation

You will need to add configurations somehow, and then you can either add this to a project, or it run it locally.

Configurations

Determine the configuration variables and save this to a /path/to/file.

export WP_PLUGIN_SS_MONGODB_URI=mongodb://127.0.0.1:27017/test
export WP_PLUGIN_SS_REDIS_URL=redis://127.0.0.1:19879
export WP_PLUGIN_SS_REDIS_QUEUE=plugins

You will either need to run the above script (locally) or assign these values in your IDE/cloud service. If not, export configurations to environment locally:

$ chmod 777 /path/to/file # Makes it executable
$ . /path/to/file # Runs the script above

Add to Project

$ npm install wp-plugin-ss

Run Locally

This is good if you want to do some searches for yourself and test it out (replace the values in braces, likely localhost and 27017 if local).

$ npm install wp-plugin-ss -g # Installs the API
$ mongorestore --db {mongo db} --host {mongo host} --port {mongo port} ~/.npm-packages/lib/node_modules/wp-plugin-ss/dump/test $ . /path/to/file # Loads the configuration
$ wp-plugin-ss # Starts the API

Populate database:

Run this to populate your mongo database with some starting data.

$ mongorestore --db {mongo db} --host {mongo host} --port {mongo port} ~/.npm-packages/lib/node_modules/wp-plugin-ss/dump/test 

Run

Use swagger docs to test at http://127.0.0.1:3000/api-docs/

OR

Go to http://127.0.0.1:3000/plugins and consult the API Usage below

Usage

GET /plugins

Parameters

  • search(required) — (string) Search text passed directly to the WordPress Plugin Search. Must be 3 characters.
  • author - Filters by author name.
  • minRating - (integer) Filter by having at least minRating
  • maxRating - (integer) Filter by having at most maxRating
  • minReviews - (integer) Filter by having at least minReviews
  • maxReviews - (integer) Filter by having at most maxReviews
  • minInstalls - (integer) Filter by having at least minInstalls
  • maxInstalls - (integer) Filter by having at most maxInstalls
  • minVersion - (string) Filter by having at least minVersion
  • maxVersion - (string) Filter by having at most maxVersion
  • sort — Comma separated list of values. Sorts ascending unless preceeded with minus symbol -
    Recognized values:
    • 'ratings'
    • 'reviews'
    • 'installs'
    • 'authors'
    • 'name'
    • 'version'

Examples:

Get SEO plugins with at least a rating of 4.

http://127.0.0.1:3000/plugins?search=seo&minRatings=4

Get input plugins with at least 1000 installs ordering by name.

http://127.0.0.1:3000/plugins?search=input&minInstalls=1000&sort=name

Get analytics plugins order by the most ratings first (descending)

http://127.0.0.1:3000/plugins?search=analytics&sort=-ratings

Get ajax plugin ordered by most recent version tested and then most installs.

http://127.0.0.1:3000/plugins?search=ajax&sort=-version,-installs

About

A Node Express API offering a simplified search for wordpress plugins.

Topics

Resources

Stars

1 star

Watchers

1 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

Repository files navigation

Wordpress Plugin Simplified Search

Build StatusCoverage StatusLicense: MIT

A Node API that provides filtering and sorting for WordPress Plugins.

(or wp-plugin-ss, if you are into the brevity thing)

Why?

Searching for plugins on Wordpress.org can be time consuming since you cannot add filters
to specific fields and there is no such thing as sorting. To minimize these headaches, these features were introduced via wp-plugin-ss for you to use or extend upon.

Dependencies

MongoDb (required)

The WordPress Plugin Simplified Search API returns results directly from MongoDB. A data dump is available in the dump folder.

Redis (optional)

If you would like something more up to date than the data dump, you can run the cron and then run workers to up date your Mongo data.

Installation

You will need to add configurations somehow, and then you can either add this to a project, or it run it locally.

Configurations

Determine the configuration variables and save this to a /path/to/file.

export WP_PLUGIN_SS_MONGODB_URI=mongodb://127.0.0.1:27017/test
export WP_PLUGIN_SS_REDIS_URL=redis://127.0.0.1:19879
export WP_PLUGIN_SS_REDIS_QUEUE=plugins

You will either need to run the above script (locally) or assign these values in your IDE/cloud service. If not, export configurations to environment locally:

$ chmod 777 /path/to/file # Makes it executable
$ . /path/to/file # Runs the script above

Add to Project

$ npm install wp-plugin-ss

Run Locally

This is good if you want to do some searches for yourself and test it out (replace the values in braces, likely localhost and 27017 if local).

$ npm install wp-plugin-ss -g # Installs the API
$ mongorestore --db {mongo db} --host {mongo host} --port {mongo port} ~/.npm-packages/lib/node_modules/wp-plugin-ss/dump/test $ . /path/to/file # Loads the configuration
$ wp-plugin-ss # Starts the API

Populate database:

Run this to populate your mongo database with some starting data.

$ mongorestore --db {mongo db} --host {mongo host} --port {mongo port} ~/.npm-packages/lib/node_modules/wp-plugin-ss/dump/test 

Run

Use swagger docs to test at http://127.0.0.1:3000/api-docs/

OR

Go to http://127.0.0.1:3000/plugins and consult the API Usage below

Usage

GET /plugins

Parameters

  • search(required) — (string) Search text passed directly to the WordPress Plugin Search. Must be 3 characters.
  • author - Filters by author name.
  • minRating - (integer) Filter by having at least minRating
  • maxRating - (integer) Filter by having at most maxRating
  • minReviews - (integer) Filter by having at least minReviews
  • maxReviews - (integer) Filter by having at most maxReviews
  • minInstalls - (integer) Filter by having at least minInstalls
  • maxInstalls - (integer) Filter by having at most maxInstalls
  • minVersion - (string) Filter by having at least minVersion
  • maxVersion - (string) Filter by having at most maxVersion
  • sort — Comma separated list of values. Sorts ascending unless preceeded with minus symbol -
    Recognized values:
    • 'ratings'
    • 'reviews'
    • 'installs'
    • 'authors'
    • 'name'
    • 'version'

Examples:

Get SEO plugins with at least a rating of 4.

http://127.0.0.1:3000/plugins?search=seo&minRatings=4

Get input plugins with at least 1000 installs ordering by name.

http://127.0.0.1:3000/plugins?search=input&minInstalls=1000&sort=name

Get analytics plugins order by the most ratings first (descending)

http://127.0.0.1:3000/plugins?search=analytics&sort=-ratings

Get ajax plugin ordered by most recent version tested and then most installs.

http://127.0.0.1:3000/plugins?search=ajax&sort=-version,-installs

About

A Node Express API offering a simplified search for wordpress plugins.

Topics

Resources

Stars

1 star

Watchers

1 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

Repository files navigation

Wordpress Plugin Simplified Search

Build StatusCoverage StatusLicense: MIT

A Node API that provides filtering and sorting for WordPress Plugins.

(or wp-plugin-ss, if you are into the brevity thing)

Why?

Searching for plugins on Wordpress.org can be time consuming since you cannot add filters
to specific fields and there is no such thing as sorting. To minimize these headaches, these features were introduced via wp-plugin-ss for you to use or extend upon.

Dependencies

MongoDb (required)

The WordPress Plugin Simplified Search API returns results directly from MongoDB. A data dump is available in the dump folder.

Redis (optional)

If you would like something more up to date than the data dump, you can run the cron and then run workers to up date your Mongo data.

Installation

You will need to add configurations somehow, and then you can either add this to a project, or it run it locally.

Configurations

Determine the configuration variables and save this to a /path/to/file.

export WP_PLUGIN_SS_MONGODB_URI=mongodb://127.0.0.1:27017/test
export WP_PLUGIN_SS_REDIS_URL=redis://127.0.0.1:19879
export WP_PLUGIN_SS_REDIS_QUEUE=plugins

You will either need to run the above script (locally) or assign these values in your IDE/cloud service. If not, export configurations to environment locally:

$ chmod 777 /path/to/file # Makes it executable
$ . /path/to/file # Runs the script above

Add to Project

$ npm install wp-plugin-ss

Run Locally

This is good if you want to do some searches for yourself and test it out (replace the values in braces, likely localhost and 27017 if local).

$ npm install wp-plugin-ss -g # Installs the API
$ mongorestore --db {mongo db} --host {mongo host} --port {mongo port} ~/.npm-packages/lib/node_modules/wp-plugin-ss/dump/test $ . /path/to/file # Loads the configuration
$ wp-plugin-ss # Starts the API

Populate database:

Run this to populate your mongo database with some starting data.

$ mongorestore --db {mongo db} --host {mongo host} --port {mongo port} ~/.npm-packages/lib/node_modules/wp-plugin-ss/dump/test 

Run

Use swagger docs to test at http://127.0.0.1:3000/api-docs/

OR

Go to http://127.0.0.1:3000/plugins and consult the API Usage below

Usage

GET /plugins

Parameters

  • search(required) — (string) Search text passed directly to the WordPress Plugin Search. Must be 3 characters.
  • author - Filters by author name.
  • minRating - (integer) Filter by having at least minRating
  • maxRating - (integer) Filter by having at most maxRating
  • minReviews - (integer) Filter by having at least minReviews
  • maxReviews - (integer) Filter by having at most maxReviews
  • minInstalls - (integer) Filter by having at least minInstalls
  • maxInstalls - (integer) Filter by having at most maxInstalls
  • minVersion - (string) Filter by having at least minVersion
  • maxVersion - (string) Filter by having at most maxVersion
  • sort — Comma separated list of values. Sorts ascending unless preceeded with minus symbol -
    Recognized values:
    • 'ratings'
    • 'reviews'
    • 'installs'
    • 'authors'
    • 'name'
    • 'version'

Examples:

Get SEO plugins with at least a rating of 4.

http://127.0.0.1:3000/plugins?search=seo&minRatings=4

Get input plugins with at least 1000 installs ordering by name.

http://127.0.0.1:3000/plugins?search=input&minInstalls=1000&sort=name

Get analytics plugins order by the most ratings first (descending)

http://127.0.0.1:3000/plugins?search=analytics&sort=-ratings

Get ajax plugin ordered by most recent version tested and then most installs.

http://127.0.0.1:3000/plugins?search=ajax&sort=-version,-installs

About

A Node Express API offering a simplified search for wordpress plugins.

Topics

Resources

Stars

1 star

Watchers

1 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

Repository files navigation

Wordpress Plugin Simplified Search

Build StatusCoverage StatusLicense: MIT

A Node API that provides filtering and sorting for WordPress Plugins.

(or wp-plugin-ss, if you are into the brevity thing)

Why?

Searching for plugins on Wordpress.org can be time consuming since you cannot add filters
to specific fields and there is no such thing as sorting. To minimize these headaches, these features were introduced via wp-plugin-ss for you to use or extend upon.

Dependencies

MongoDb (required)

The WordPress Plugin Simplified Search API returns results directly from MongoDB. A data dump is available in the dump folder.

Redis (optional)

If you would like something more up to date than the data dump, you can run the cron and then run workers to up date your Mongo data.

Installation

You will need to add configurations somehow, and then you can either add this to a project, or it run it locally.

Configurations

Determine the configuration variables and save this to a /path/to/file.

export WP_PLUGIN_SS_MONGODB_URI=mongodb://127.0.0.1:27017/test
export WP_PLUGIN_SS_REDIS_URL=redis://127.0.0.1:19879
export WP_PLUGIN_SS_REDIS_QUEUE=plugins

You will either need to run the above script (locally) or assign these values in your IDE/cloud service. If not, export configurations to environment locally:

$ chmod 777 /path/to/file # Makes it executable
$ . /path/to/file # Runs the script above

Add to Project

$ npm install wp-plugin-ss

Run Locally

This is good if you want to do some searches for yourself and test it out (replace the values in braces, likely localhost and 27017 if local).

$ npm install wp-plugin-ss -g # Installs the API
$ mongorestore --db {mongo db} --host {mongo host} --port {mongo port} ~/.npm-packages/lib/node_modules/wp-plugin-ss/dump/test $ . /path/to/file # Loads the configuration
$ wp-plugin-ss # Starts the API

Populate database:

Run this to populate your mongo database with some starting data.

$ mongorestore --db {mongo db} --host {mongo host} --port {mongo port} ~/.npm-packages/lib/node_modules/wp-plugin-ss/dump/test 

Run

Use swagger docs to test at http://127.0.0.1:3000/api-docs/

OR

Go to http://127.0.0.1:3000/plugins and consult the API Usage below

Usage

GET /plugins

Parameters

  • search(required) — (string) Search text passed directly to the WordPress Plugin Search. Must be 3 characters.
  • author - Filters by author name.
  • minRating - (integer) Filter by having at least minRating
  • maxRating - (integer) Filter by having at most maxRating
  • minReviews - (integer) Filter by having at least minReviews
  • maxReviews - (integer) Filter by having at most maxReviews
  • minInstalls - (integer) Filter by having at least minInstalls
  • maxInstalls - (integer) Filter by having at most maxInstalls
  • minVersion - (string) Filter by having at least minVersion
  • maxVersion - (string) Filter by having at most maxVersion
  • sort — Comma separated list of values. Sorts ascending unless preceeded with minus symbol -
    Recognized values:
    • 'ratings'
    • 'reviews'
    • 'installs'
    • 'authors'
    • 'name'
    • 'version'

Examples:

Get SEO plugins with at least a rating of 4.

http://127.0.0.1:3000/plugins?search=seo&minRatings=4

Get input plugins with at least 1000 installs ordering by name.

http://127.0.0.1:3000/plugins?search=input&minInstalls=1000&sort=name

Get analytics plugins order by the most ratings first (descending)

http://127.0.0.1:3000/plugins?search=analytics&sort=-ratings

Get ajax plugin ordered by most recent version tested and then most installs.

http://127.0.0.1:3000/plugins?search=ajax&sort=-version,-installs

About

A Node Express API offering a simplified search for wordpress plugins.

Topics

Resources

Stars

1 star

Watchers

1 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

Repository files navigation

Wordpress Plugin Simplified Search

Build StatusCoverage StatusLicense: MIT

A Node API that provides filtering and sorting for WordPress Plugins.

(or wp-plugin-ss, if you are into the brevity thing)

Why?

Searching for plugins on Wordpress.org can be time consuming since you cannot add filters
to specific fields and there is no such thing as sorting. To minimize these headaches, these features were introduced via wp-plugin-ss for you to use or extend upon.

Dependencies

MongoDb (required)

The WordPress Plugin Simplified Search API returns results directly from MongoDB. A data dump is available in the dump folder.

Redis (optional)

If you would like something more up to date than the data dump, you can run the cron and then run workers to up date your Mongo data.

Installation

You will need to add configurations somehow, and then you can either add this to a project, or it run it locally.

Configurations

Determine the configuration variables and save this to a /path/to/file.

export WP_PLUGIN_SS_MONGODB_URI=mongodb://127.0.0.1:27017/test
export WP_PLUGIN_SS_REDIS_URL=redis://127.0.0.1:19879
export WP_PLUGIN_SS_REDIS_QUEUE=plugins

You will either need to run the above script (locally) or assign these values in your IDE/cloud service. If not, export configurations to environment locally:

$ chmod 777 /path/to/file # Makes it executable
$ . /path/to/file # Runs the script above

Add to Project

$ npm install wp-plugin-ss

Run Locally

This is good if you want to do some searches for yourself and test it out (replace the values in braces, likely localhost and 27017 if local).

$ npm install wp-plugin-ss -g # Installs the API
$ mongorestore --db {mongo db} --host {mongo host} --port {mongo port} ~/.npm-packages/lib/node_modules/wp-plugin-ss/dump/test $ . /path/to/file # Loads the configuration
$ wp-plugin-ss # Starts the API

Populate database:

Run this to populate your mongo database with some starting data.

$ mongorestore --db {mongo db} --host {mongo host} --port {mongo port} ~/.npm-packages/lib/node_modules/wp-plugin-ss/dump/test 

Run

Use swagger docs to test at http://127.0.0.1:3000/api-docs/

OR

Go to http://127.0.0.1:3000/plugins and consult the API Usage below

Usage

GET /plugins

Parameters

  • search(required) — (string) Search text passed directly to the WordPress Plugin Search. Must be 3 characters.
  • author - Filters by author name.
  • minRating - (integer) Filter by having at least minRating
  • maxRating - (integer) Filter by having at most maxRating
  • minReviews - (integer) Filter by having at least minReviews
  • maxReviews - (integer) Filter by having at most maxReviews
  • minInstalls - (integer) Filter by having at least minInstalls
  • maxInstalls - (integer) Filter by having at most maxInstalls
  • minVersion - (string) Filter by having at least minVersion
  • maxVersion - (string) Filter by having at most maxVersion
  • sort — Comma separated list of values. Sorts ascending unless preceeded with minus symbol -
    Recognized values:
    • 'ratings'
    • 'reviews'
    • 'installs'
    • 'authors'
    • 'name'
    • 'version'

Examples:

Get SEO plugins with at least a rating of 4.

http://127.0.0.1:3000/plugins?search=seo&minRatings=4

Get input plugins with at least 1000 installs ordering by name.

http://127.0.0.1:3000/plugins?search=input&minInstalls=1000&sort=name

Get analytics plugins order by the most ratings first (descending)

http://127.0.0.1:3000/plugins?search=analytics&sort=-ratings

Get ajax plugin ordered by most recent version tested and then most installs.

http://127.0.0.1:3000/plugins?search=ajax&sort=-version,-installs

About

A Node Express API offering a simplified search for wordpress plugins.

Topics

Resources

Stars

1 star

Watchers

1 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

Repository files navigation

Wordpress Plugin Simplified Search

Build StatusCoverage StatusLicense: MIT

A Node API that provides filtering and sorting for WordPress Plugins.

(or wp-plugin-ss, if you are into the brevity thing)

Why?

Searching for plugins on Wordpress.org can be time consuming since you cannot add filters
to specific fields and there is no such thing as sorting. To minimize these headaches, these features were introduced via wp-plugin-ss for you to use or extend upon.

Dependencies

MongoDb (required)

The WordPress Plugin Simplified Search API returns results directly from MongoDB. A data dump is available in the dump folder.

Redis (optional)

If you would like something more up to date than the data dump, you can run the cron and then run workers to up date your Mongo data.

Installation

You will need to add configurations somehow, and then you can either add this to a project, or it run it locally.

Configurations

Determine the configuration variables and save this to a /path/to/file.

export WP_PLUGIN_SS_MONGODB_URI=mongodb://127.0.0.1:27017/test
export WP_PLUGIN_SS_REDIS_URL=redis://127.0.0.1:19879
export WP_PLUGIN_SS_REDIS_QUEUE=plugins

You will either need to run the above script (locally) or assign these values in your IDE/cloud service. If not, export configurations to environment locally:

$ chmod 777 /path/to/file # Makes it executable
$ . /path/to/file # Runs the script above

Add to Project

$ npm install wp-plugin-ss

Run Locally

This is good if you want to do some searches for yourself and test it out (replace the values in braces, likely localhost and 27017 if local).

$ npm install wp-plugin-ss -g # Installs the API
$ mongorestore --db {mongo db} --host {mongo host} --port {mongo port} ~/.npm-packages/lib/node_modules/wp-plugin-ss/dump/test $ . /path/to/file # Loads the configuration
$ wp-plugin-ss # Starts the API

Populate database:

Run this to populate your mongo database with some starting data.

$ mongorestore --db {mongo db} --host {mongo host} --port {mongo port} ~/.npm-packages/lib/node_modules/wp-plugin-ss/dump/test 

Run

Use swagger docs to test at http://127.0.0.1:3000/api-docs/

OR

Go to http://127.0.0.1:3000/plugins and consult the API Usage below

Usage

GET /plugins

Parameters

  • search(required) — (string) Search text passed directly to the WordPress Plugin Search. Must be 3 characters.
  • author - Filters by author name.
  • minRating - (integer) Filter by having at least minRating
  • maxRating - (integer) Filter by having at most maxRating
  • minReviews - (integer) Filter by having at least minReviews
  • maxReviews - (integer) Filter by having at most maxReviews
  • minInstalls - (integer) Filter by having at least minInstalls
  • maxInstalls - (integer) Filter by having at most maxInstalls
  • minVersion - (string) Filter by having at least minVersion
  • maxVersion - (string) Filter by having at most maxVersion
  • sort — Comma separated list of values. Sorts ascending unless preceeded with minus symbol -
    Recognized values:
    • 'ratings'
    • 'reviews'
    • 'installs'
    • 'authors'
    • 'name'
    • 'version'

Examples:

Get SEO plugins with at least a rating of 4.

http://127.0.0.1:3000/plugins?search=seo&minRatings=4

Get input plugins with at least 1000 installs ordering by name.

http://127.0.0.1:3000/plugins?search=input&minInstalls=1000&sort=name

Get analytics plugins order by the most ratings first (descending)

http://127.0.0.1:3000/plugins?search=analytics&sort=-ratings

Get ajax plugin ordered by most recent version tested and then most installs.

http://127.0.0.1:3000/plugins?search=ajax&sort=-version,-installs

About

A Node Express API offering a simplified search for wordpress plugins.

Topics

Resources

Stars

1 star

Watchers

1 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

Repository files navigation

Wordpress Plugin Simplified Search

Build StatusCoverage StatusLicense: MIT

A Node API that provides filtering and sorting for WordPress Plugins.

(or wp-plugin-ss, if you are into the brevity thing)

Why?

Searching for plugins on Wordpress.org can be time consuming since you cannot add filters
to specific fields and there is no such thing as sorting. To minimize these headaches, these features were introduced via wp-plugin-ss for you to use or extend upon.

Dependencies

MongoDb (required)

The WordPress Plugin Simplified Search API returns results directly from MongoDB. A data dump is available in the dump folder.

Redis (optional)

If you would like something more up to date than the data dump, you can run the cron and then run workers to up date your Mongo data.

Installation

You will need to add configurations somehow, and then you can either add this to a project, or it run it locally.

Configurations

Determine the configuration variables and save this to a /path/to/file.

export WP_PLUGIN_SS_MONGODB_URI=mongodb://127.0.0.1:27017/test
export WP_PLUGIN_SS_REDIS_URL=redis://127.0.0.1:19879
export WP_PLUGIN_SS_REDIS_QUEUE=plugins

You will either need to run the above script (locally) or assign these values in your IDE/cloud service. If not, export configurations to environment locally:

$ chmod 777 /path/to/file # Makes it executable
$ . /path/to/file # Runs the script above

Add to Project

$ npm install wp-plugin-ss

Run Locally

This is good if you want to do some searches for yourself and test it out (replace the values in braces, likely localhost and 27017 if local).

$ npm install wp-plugin-ss -g # Installs the API
$ mongorestore --db {mongo db} --host {mongo host} --port {mongo port} ~/.npm-packages/lib/node_modules/wp-plugin-ss/dump/test $ . /path/to/file # Loads the configuration
$ wp-plugin-ss # Starts the API

Populate database:

Run this to populate your mongo database with some starting data.

$ mongorestore --db {mongo db} --host {mongo host} --port {mongo port} ~/.npm-packages/lib/node_modules/wp-plugin-ss/dump/test 

Run

Use swagger docs to test at http://127.0.0.1:3000/api-docs/

OR

Go to http://127.0.0.1:3000/plugins and consult the API Usage below

Usage

GET /plugins

Parameters

  • search(required) — (string) Search text passed directly to the WordPress Plugin Search. Must be 3 characters.
  • author - Filters by author name.
  • minRating - (integer) Filter by having at least minRating
  • maxRating - (integer) Filter by having at most maxRating
  • minReviews - (integer) Filter by having at least minReviews
  • maxReviews - (integer) Filter by having at most maxReviews
  • minInstalls - (integer) Filter by having at least minInstalls
  • maxInstalls - (integer) Filter by having at most maxInstalls
  • minVersion - (string) Filter by having at least minVersion
  • maxVersion - (string) Filter by having at most maxVersion
  • sort — Comma separated list of values. Sorts ascending unless preceeded with minus symbol -
    Recognized values:
    • 'ratings'
    • 'reviews'
    • 'installs'
    • 'authors'
    • 'name'
    • 'version'

Examples:

Get SEO plugins with at least a rating of 4.

http://127.0.0.1:3000/plugins?search=seo&minRatings=4

Get input plugins with at least 1000 installs ordering by name.

http://127.0.0.1:3000/plugins?search=input&minInstalls=1000&sort=name

Get analytics plugins order by the most ratings first (descending)

http://127.0.0.1:3000/plugins?search=analytics&sort=-ratings

Get ajax plugin ordered by most recent version tested and then most installs.

http://127.0.0.1:3000/plugins?search=ajax&sort=-version,-installs

About

A Node Express API offering a simplified search for wordpress plugins.

Topics

Resources

Stars

1 star

Watchers

1 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

Repository files navigation

Wordpress Plugin Simplified Search

Build StatusCoverage StatusLicense: MIT

A Node API that provides filtering and sorting for WordPress Plugins.

(or wp-plugin-ss, if you are into the brevity thing)

Why?

Searching for plugins on Wordpress.org can be time consuming since you cannot add filters
to specific fields and there is no such thing as sorting. To minimize these headaches, these features were introduced via wp-plugin-ss for you to use or extend upon.

Dependencies

MongoDb (required)

The WordPress Plugin Simplified Search API returns results directly from MongoDB. A data dump is available in the dump folder.

Redis (optional)

If you would like something more up to date than the data dump, you can run the cron and then run workers to up date your Mongo data.

Installation

You will need to add configurations somehow, and then you can either add this to a project, or it run it locally.

Configurations

Determine the configuration variables and save this to a /path/to/file.

export WP_PLUGIN_SS_MONGODB_URI=mongodb://127.0.0.1:27017/test
export WP_PLUGIN_SS_REDIS_URL=redis://127.0.0.1:19879
export WP_PLUGIN_SS_REDIS_QUEUE=plugins

You will either need to run the above script (locally) or assign these values in your IDE/cloud service. If not, export configurations to environment locally:

$ chmod 777 /path/to/file # Makes it executable
$ . /path/to/file # Runs the script above

Add to Project

$ npm install wp-plugin-ss

Run Locally

This is good if you want to do some searches for yourself and test it out (replace the values in braces, likely localhost and 27017 if local).

$ npm install wp-plugin-ss -g # Installs the API
$ mongorestore --db {mongo db} --host {mongo host} --port {mongo port} ~/.npm-packages/lib/node_modules/wp-plugin-ss/dump/test $ . /path/to/file # Loads the configuration
$ wp-plugin-ss # Starts the API

Populate database:

Run this to populate your mongo database with some starting data.

$ mongorestore --db {mongo db} --host {mongo host} --port {mongo port} ~/.npm-packages/lib/node_modules/wp-plugin-ss/dump/test 

Run

Use swagger docs to test at http://127.0.0.1:3000/api-docs/

OR

Go to http://127.0.0.1:3000/plugins and consult the API Usage below

Usage

GET /plugins

Parameters

  • search(required) — (string) Search text passed directly to the WordPress Plugin Search. Must be 3 characters.
  • author - Filters by author name.
  • minRating - (integer) Filter by having at least minRating
  • maxRating - (integer) Filter by having at most maxRating
  • minReviews - (integer) Filter by having at least minReviews
  • maxReviews - (integer) Filter by having at most maxReviews
  • minInstalls - (integer) Filter by having at least minInstalls
  • maxInstalls - (integer) Filter by having at most maxInstalls
  • minVersion - (string) Filter by having at least minVersion
  • maxVersion - (string) Filter by having at most maxVersion
  • sort — Comma separated list of values. Sorts ascending unless preceeded with minus symbol -
    Recognized values:
    • 'ratings'
    • 'reviews'
    • 'installs'
    • 'authors'
    • 'name'
    • 'version'

Examples:

Get SEO plugins with at least a rating of 4.

http://127.0.0.1:3000/plugins?search=seo&minRatings=4

Get input plugins with at least 1000 installs ordering by name.

http://127.0.0.1:3000/plugins?search=input&minInstalls=1000&sort=name

Get analytics plugins order by the most ratings first (descending)

http://127.0.0.1:3000/plugins?search=analytics&sort=-ratings

Get ajax plugin ordered by most recent version tested and then most installs.

http://127.0.0.1:3000/plugins?search=ajax&sort=-version,-installs

About

A Node Express API offering a simplified search for wordpress plugins.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages