summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php')
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php215
1 files changed, 215 insertions, 0 deletions
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php
new file mode 100644
index 00000000..d1073026
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php
@@ -0,0 +1,215 @@
+<?php
+
+/**
+ * @author Takashi Nojima
+ * @copyright Copyright 2018, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * Twitter Text Configuration
+ *
+ * @author Takashi Nojima
+ * @copyright Copyright 2018, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ *
+ * @property int $version
+ * @property int $maxWeightedTweetLength
+ * @property int $scale
+ * @property int $defaultWeight
+ * @property bool $emojiParsingEnabled
+ * @property int $transformedURLLength
+ * @property array $ranges
+ */
+class Configuration
+{
+ /**
+ * configuration from v3.json
+ *
+ * @var array
+ */
+ private static $v3Config = array(
+ 'version' => 3,
+ 'maxWeightedTweetLength' => 280,
+ 'scale' => 100,
+ 'defaultWeight' => 200,
+ 'emojiParsingEnabled' => true,
+ 'transformedURLLength' => 23,
+ 'ranges' => array(
+ array(
+ 'start' => 0,
+ 'end' => 4351,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8192,
+ 'end' => 8205,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8208,
+ 'end' => 8223,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8242,
+ 'end' => 8247,
+ 'weight' => 100,
+ ),
+ ),
+ );
+
+ /**
+ * configuration from v2.json
+ *
+ * @var array
+ */
+ private static $v2Config = array(
+ 'version' => 2,
+ 'maxWeightedTweetLength' => 280,
+ 'scale' => 100,
+ 'defaultWeight' => 200,
+ 'transformedURLLength' => 23,
+ 'ranges' => array(
+ array(
+ 'start' => 0,
+ 'end' => 4351,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8192,
+ 'end' => 8205,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8208,
+ 'end' => 8223,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8242,
+ 'end' => 8247,
+ 'weight' => 100,
+ ),
+ ),
+ );
+
+ /**
+ * configuration from v1.json
+ *
+ * @var array
+ */
+ private static $v1Config = array(
+ 'version' => 1,
+ 'maxWeightedTweetLength' => 140,
+ 'scale' => 1,
+ 'defaultWeight' => 1,
+ 'transformedURLLength' => 23,
+ 'ranges' => array(),
+ );
+
+ /**
+ * @var array
+ */
+ private $config;
+
+ /**
+ * construct
+ *
+ * @param array $config
+ */
+ public function __construct(array $config = null)
+ {
+ if ($config === null) {
+ $config = static::$v3Config;
+ }
+
+ $this->config = $config;
+ }
+
+ /**
+ * property accessor
+ *
+ * @param string $name
+ * @return mixed
+ */
+ public function __get($name)
+ {
+ return isset($this->config[$name]) ? $this->config[$name] : null;
+ }
+
+ /**
+ * convert to array
+ *
+ * @return array
+ */
+ public function toArray()
+ {
+ return $this->config;
+ }
+
+ /**
+ * Create configuration from json string
+ *
+ * @param string $json as configuration
+ * @return Configuration
+ */
+ public static function fromJson($json)
+ {
+ return new Configuration(json_decode($json, true));
+ }
+
+ /**
+ * Get twitter-text 1.x configuration
+ *
+ * @return Configuration
+ */
+ public static function v1()
+ {
+ return new self(static::$v1Config);
+ }
+
+ /**
+ * Get twitter-text 2.x configuration
+ *
+ * @return Configuration
+ */
+ public static function v2()
+ {
+ return new self(static::$v2Config);
+ }
+
+ /**
+ * maxWeightedTweetLength * scale
+ *
+ * @return int
+ */
+ public function getScaledMaxWeightedTweetLength()
+ {
+ return $this->maxWeightedTweetLength * $this->scale;
+ }
+
+ /**
+ * transformedURLLength * scale
+ *
+ * @return int
+ */
+ public function getScaledTransformedURLLength()
+ {
+ return $this->transformedURLLength * $this->scale;
+ }
+
+ /**
+ * Get whether emoji parsing is enabled.
+ *
+ * @return bool `true` if emoji parsing is enabled, otherwise `false`.
+ */
+ public function getEmojiParsingEnabled()
+ {
+ return (bool)$this->emojiParsingEnabled;
+ }
+}