diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 53e047f9..3d858651 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -43,7 +43,7 @@ jobs: actions: read id-token: write contents: write - uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1.10.0 + uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v2.0.0 with: base64-subjects: "${{ needs.release.outputs.hashes }}" draft-release: true diff --git a/cfg/conf.sample.php b/cfg/conf.sample.php index cd64a5fa..75831f45 100644 --- a/cfg/conf.sample.php +++ b/cfg/conf.sample.php @@ -37,9 +37,12 @@ defaultformatter = "plaintext" ; size limit per paste or comment in bytes, defaults to 10 Mebibytes sizelimit = 10485760 -; template to include, default is "bootstrap" (tpl/bootstrap.php) -; Also available is a dark version ("bootstrap-dark",) and -; a theme that resembles the classic ZeroBin style ("page".) +; template to include, default is "bootstrap" (tpl/bootstrap.php), also +; available are "page" (tpl/page.php), the classic ZeroBin style and several +; bootstrap variants: "bootstrap-dark", "bootstrap-compact", "bootstrap-page", +; which can be combined with "-dark" and "-compact" for "bootstrap-dark-page" +; and finally "bootstrap-compact-page" - previews at: +; https://privatebin.info/screenshots.html template = "bootstrap" ; (optional) info text to display diff --git a/composer.json b/composer.json index bbd720ae..0d792ebf 100644 --- a/composer.json +++ b/composer.json @@ -30,8 +30,8 @@ "yzalis/identicon": "2.0.0" }, "suggest" : { - "google/cloud-storage" : "1.32.0", - "aws/aws-sdk-php" : "3.275.1" + "google/cloud-storage" : "1.41.0", + "aws/aws-sdk-php" : "3.302.0" }, "require-dev" : { "phpunit/phpunit" : "^9" diff --git a/composer.lock b/composer.lock index b455c50c..a08c960e 100644 --- a/composer.lock +++ b/composer.lock @@ -809,16 +809,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.18", + "version": "9.6.19", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "32c2c2d6580b1d8ab3c10b1e9e4dc263cc69bb04" + "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/32c2c2d6580b1d8ab3c10b1e9e4dc263cc69bb04", - "reference": "32c2c2d6580b1d8ab3c10b1e9e4dc263cc69bb04", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a1a54a473501ef4cdeaae4e06891674114d79db8", + "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8", "shasum": "" }, "require": { @@ -892,7 +892,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.18" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.19" }, "funding": [ { @@ -908,7 +908,7 @@ "type": "tidelift" } ], - "time": "2024-03-21T12:07:32+00:00" + "time": "2024-04-05T04:35:58+00:00" }, { "name": "sebastian/cli-parser", diff --git a/doc/Installation.md b/doc/Installation.md index 77f79fbb..b09de9e1 100644 --- a/doc/Installation.md +++ b/doc/Installation.md @@ -22,6 +22,7 @@ for more information. ### Minimal Requirements - PHP version 7.3 or above +- ctype extension - GD extension (when using identicon or vizhash icons, jdenticon works without it) - zlib extension - some disk space or a database supported by [PDO](https://php.net/manual/book.pdo.php) diff --git a/i18n/it.json b/i18n/it.json index cb672e55..591ebf4f 100644 --- a/i18n/it.json +++ b/i18n/it.json @@ -215,7 +215,7 @@ "Trying to shorten a URL that isn't pointing at our instance.": "Tantativo in corso di accorciare un URL che non punta alla nostra istanza.", "Error calling YOURLS. Probably a configuration issue, like wrong or missing \"apiurl\" or \"signature\".": "Errore nella chiamata a YOURLS. Probabilmente un problema di configurazione, come un \"apiurl\" o una \"signature\" sbagliati o mancanti.", "Error parsing YOURLS response.": "Errore nell'analizzare la risposta YOURLS.", - "This secret message can only be displayed once. Would you like to see it now?": "Messaggi di tipo Distruggi-dopo-lettura piovono essere visualizzata solo una volta al caricamento. Vuoi vederlo ora?", - "Yes, see it": "Sì, vederlo", + "This secret message can only be displayed once. Would you like to see it now?": "Questo messaggio di tipo Distruggi-dopo-lettura può essere visualizzato solo una volta. Vuoi vederlo ora?", + "Yes, see it": "Sì, visualizzalo", "Dark Mode": "Dark Mode" } diff --git a/i18n/tr.json b/i18n/tr.json index b4c95f87..f6ef1ded 100644 --- a/i18n/tr.json +++ b/i18n/tr.json @@ -3,7 +3,7 @@ "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s sunucunun burada paylaştığınız veriyi görmediği, minimal, açık kaynak bir pastebindir. Veriler tarayıcıda 256 bit AES kullanılarak şifrelenir/çözülür.", "More information on the project page.": "Daha fazla bilgi için proje sayfası'na göz atabilirsiniz.", "Because ignorance is bliss": "Çünkü, cehalet mutluluktur", - "Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.", + "Paste does not exist, has expired or has been deleted.": "Bu mevcut değil, süresi dolmuş veya silinmiş.", "%s requires php %s or above to work. Sorry.": "%s PHP %s veya daha üstünü gerektirir.", "%s requires configuration section [%s] to be present in configuration file.": "%s konfigürasyon bölümünün [%s] bulunmasını gerektir.", "Please wait %d seconds between each post.": [ @@ -188,7 +188,7 @@ "Decrypting paste…": "Yazı şifresi çözülüyor…", "Preparing new paste…": "Yeni yazı hazırlanıyor…", "In case this message never disappears please have a look at this FAQ for information to troubleshoot.": "In case this message never disappears please have a look at this FAQ for information to troubleshoot.", - "+++ no paste text +++": "+++ no paste text +++", + "+++ no paste text +++": "+++ yazı içeriği yok +++", "Could not get paste data: %s": "Yazı verisi alınamıyor: %s", "QR code": "QR kodu", "This website is using an insecure HTTP connection! Please use it only for testing.": "This website is using an insecure HTTP connection! Please use it only for testing.", @@ -216,6 +216,6 @@ "Error calling YOURLS. Probably a configuration issue, like wrong or missing \"apiurl\" or \"signature\".": "Error calling YOURLS. Probably a configuration issue, like wrong or missing \"apiurl\" or \"signature\".", "Error parsing YOURLS response.": "Error parsing YOURLS response.", "This secret message can only be displayed once. Would you like to see it now?": "This secret message can only be displayed once. Would you like to see it now?", - "Yes, see it": "Yes, see it", + "Yes, see it": "Evet, görüyorum", "Dark Mode": "Dark Mode" } diff --git a/lib/Vizhash16x16.php b/lib/Vizhash16x16.php index b61fd56b..2d296af8 100644 --- a/lib/Vizhash16x16.php +++ b/lib/Vizhash16x16.php @@ -109,9 +109,9 @@ class Vizhash16x16 for ($i = 0; $i < 7; ++$i) { $action = $this->getInt(); $color = imagecolorallocate($image, $r, $g, $b); - $r = $r0 = ($r0 + $this->getInt() / 25) % 256; - $g = $g0 = ($g0 + $this->getInt() / 25) % 256; - $b = $b0 = ($b0 + $this->getInt() / 25) % 256; + $r = $r0 = ((int) $r0 + $this->getInt() / 25) % 256; + $g = $g0 = ((int) $g0 + $this->getInt() / 25) % 256; + $b = $b0 = ((int) $b0 + $this->getInt() / 25) % 256; $this->drawshape($image, $action, $color); } @@ -136,7 +136,7 @@ class Vizhash16x16 { $v = $this->VALUES[$this->VALUES_INDEX]; ++$this->VALUES_INDEX; - $this->VALUES_INDEX %= count($this->VALUES); // Warp around the array + $this->VALUES_INDEX %= count($this->VALUES); // Wrap around the array return $v; } @@ -148,7 +148,7 @@ class Vizhash16x16 */ private function getX() { - return $this->width * $this->getInt() / 256; + return (int) $this->width * $this->getInt() / 256; } /** @@ -159,7 +159,7 @@ class Vizhash16x16 */ private function getY() { - return $this->height * $this->getInt() / 256; + return (int) $this->height * $this->getInt() / 256; } /** @@ -190,9 +190,9 @@ class Vizhash16x16 ($color2[2] - $color1[2]) / $size, ); for ($i = 0; $i < $size; ++$i) { - $r = $color1[0] + ($diffs[0] * $i); - $g = $color1[1] + ($diffs[1] * $i); - $b = $color1[2] + ($diffs[2] * $i); + $r = $color1[0] + ((int) $diffs[0] * $i); + $g = $color1[1] + ((int) $diffs[1] * $i); + $b = $color1[2] + ((int) $diffs[2] * $i); if ($direction == 'h') { imageline($img, $i, 0, $i, $sizeinv, imagecolorallocate($img, $r, $g, $b)); } else { @@ -222,7 +222,7 @@ class Vizhash16x16 break; case 3: $points = array($this->getX(), $this->getY(), $this->getX(), $this->getY(), $this->getX(), $this->getY(), $this->getX(), $this->getY()); - imagefilledpolygon($image, $points, 4, $color); + version_compare(PHP_VERSION, '8.1', '<') ? imagefilledpolygon($image, $points, 4, $color) : imagefilledpolygon($image, $points, $color); break; default: $start = $this->getInt() * 360 / 256; diff --git a/tst/Bootstrap.php b/tst/Bootstrap.php index 7f4caa32..183d1b1d 100644 --- a/tst/Bootstrap.php +++ b/tst/Bootstrap.php @@ -508,6 +508,11 @@ class ConnectionInterfaceStub implements ConnectionInterface throw new BadMethodCallException('not supported by this stub'); } + public function restoreObject(array $args = array()) + { + throw new BadMethodCallException('not supported by this stub'); + } + public function copyObject(array $args = array()) { throw new BadMethodCallException('not supported by this stub');