aboutsummaryrefslogtreecommitdiff
path: root/bridges/WordPressPluginUpdateBridge.php
diff options
context:
space:
mode:
Diffstat (limited to 'bridges/WordPressPluginUpdateBridge.php')
-rw-r--r--bridges/WordPressPluginUpdateBridge.php120
1 files changed, 61 insertions, 59 deletions
diff --git a/bridges/WordPressPluginUpdateBridge.php b/bridges/WordPressPluginUpdateBridge.php
index 272022dd..a092d72f 100644
--- a/bridges/WordPressPluginUpdateBridge.php
+++ b/bridges/WordPressPluginUpdateBridge.php
@@ -1,62 +1,64 @@
<?php
-final class WordPressPluginUpdateBridge extends BridgeAbstract {
- const MAINTAINER = 'dvikan';
- const NAME = 'WordPress Plugins Update Bridge';
- const URI = 'https://wordpress.org/plugins/';
- const DESCRIPTION = 'Returns latest updates of wordpress.org plugins.';
-
- const PARAMETERS = [
- [
- // The incorrectly named pluginUrl is kept for BC
- 'pluginUrl' => [
- 'name' => 'Plugin slug',
- 'exampleValue' => 'akismet',
- 'required' => true,
- 'title' => 'Slug or url',
- ]
- ]
- ];
-
- public function collectData() {
- $input = trim($this->getInput('pluginUrl'));
- if (preg_match('#https://wordpress\.org/plugins/([\w-]+)#', $input, $m)) {
- $slug = $m[1];
- } else {
- $slug = str_replace(['/'], '', $input);
- }
-
- $pluginData = self::fetchPluginData($slug);
-
- if ($pluginData->versions === []) {
- throw new \Exception('This plugin does not have versioning data');
- }
-
- // We don't need trunk. I think it's the latest commit.
- unset($pluginData->versions->trunk);
-
- foreach ($pluginData->versions as $version => $downloadUrl) {
- $this->items[] = [
- 'title' => $version,
- 'uri' => sprintf('https://wordpress.org/plugins/%s/#developers', $slug),
- 'uid' => $downloadUrl,
- ];
- }
-
- usort($this->items, function($a, $b) {
- return version_compare($b['title'], $a['title']);
- });
- }
-
- /**
- * Fetch plugin data from wordpress.org json api
- *
- * https://codex.wordpress.org/WordPress.org_API#Plugins
- * https://wordpress.org/support/topic/using-the-wordpress-org-api/
- */
- private static function fetchPluginData(string $slug): \stdClass
- {
- $api = 'https://api.wordpress.org/plugins/info/1.2/?action=plugin_information&request[slug]=%s';
- return json_decode(getContents(sprintf($api, $slug)));
- }
+final class WordPressPluginUpdateBridge extends BridgeAbstract
+{
+ const MAINTAINER = 'dvikan';
+ const NAME = 'WordPress Plugins Update Bridge';
+ const URI = 'https://wordpress.org/plugins/';
+ const DESCRIPTION = 'Returns latest updates of wordpress.org plugins.';
+
+ const PARAMETERS = [
+ [
+ // The incorrectly named pluginUrl is kept for BC
+ 'pluginUrl' => [
+ 'name' => 'Plugin slug',
+ 'exampleValue' => 'akismet',
+ 'required' => true,
+ 'title' => 'Slug or url',
+ ]
+ ]
+ ];
+
+ public function collectData()
+ {
+ $input = trim($this->getInput('pluginUrl'));
+ if (preg_match('#https://wordpress\.org/plugins/([\w-]+)#', $input, $m)) {
+ $slug = $m[1];
+ } else {
+ $slug = str_replace(['/'], '', $input);
+ }
+
+ $pluginData = self::fetchPluginData($slug);
+
+ if ($pluginData->versions === []) {
+ throw new \Exception('This plugin does not have versioning data');
+ }
+
+ // We don't need trunk. I think it's the latest commit.
+ unset($pluginData->versions->trunk);
+
+ foreach ($pluginData->versions as $version => $downloadUrl) {
+ $this->items[] = [
+ 'title' => $version,
+ 'uri' => sprintf('https://wordpress.org/plugins/%s/#developers', $slug),
+ 'uid' => $downloadUrl,
+ ];
+ }
+
+ usort($this->items, function ($a, $b) {
+ return version_compare($b['title'], $a['title']);
+ });
+ }
+
+ /**
+ * Fetch plugin data from wordpress.org json api
+ *
+ * https://codex.wordpress.org/WordPress.org_API#Plugins
+ * https://wordpress.org/support/topic/using-the-wordpress-org-api/
+ */
+ private static function fetchPluginData(string $slug): \stdClass
+ {
+ $api = 'https://api.wordpress.org/plugins/info/1.2/?action=plugin_information&request[slug]=%s';
+ return json_decode(getContents(sprintf($api, $slug)));
+ }
}