Source code for detectem.plugins.generic.wordpress

import json
import pkgutil
import re

from detectem.plugin import GenericPlugin
from detectem.utils import get_url


[docs]class WordpressGenericPlugin(GenericPlugin): name = "wordpress_generic" homepage = "https://wordpress.org/plugins/%s/" tags = ["wordpress"] plugins = {} def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) wordpress_data = pkgutil.get_data("detectem", "data/wordpress.jl") for line in wordpress_data.splitlines(): data = json.loads(line) self.plugins[data["name"]] = data["vendor"] matchers = [{"url": "/wp-content/plugins/"}] def get_information(self, entry): name_match = re.findall("/wp-content/plugins/([^/]+)/", get_url(entry)) # There are weird cases with malformed plugins urls if not name_match: return {} name = name_match[0].lower() homepage = self.homepage % name try: vendor = self.plugins[name] except KeyError: vendor = None return {"name": name, "homepage": homepage, "vendor": vendor}