Version 5.1 - All the GraphQL #32

Closed
timw4mail wants to merge 1160 commits from develop into master
16 changed files with 88 additions and 42 deletions
Showing only changes of commit fc02a68691 - Show all commits

View File

@ -35,5 +35,5 @@
</table>
</form>
</main>
<script src="<?= $urlGenerator->asset_url('js.php?g=anime_collection') ?>"></script>
<script src="<?= $urlGenerator->asset_url('js.php/g/anime_collection') ?>"></script>
<?php endif ?>

View File

@ -65,5 +65,5 @@
<?php endif ?>
</main>
<?php if ($auth->is_authenticated()): ?>
<script src="<?= $urlGenerator->asset_url('js.php?g=edit') ?>"></script>
<script src="<?= $urlGenerator->asset_url('js.php/g/edit') ?>"></script>
<?php endif ?>

View File

@ -85,5 +85,5 @@
</table>
</form>
</main>
<script src="<?= $urlGenerator->asset_url('js.php?g=edit') ?>"></script>
<script src="<?= $urlGenerator->asset_url('js.php/g/edit') ?>"></script>
<?php endif ?>

View File

@ -74,4 +74,4 @@
<?php endif ?>
</main>
<?php $group = ($auth->is_authenticated()) ? 'table_edit' : 'table' ?>
<script src="<?= $urlGenerator->asset_url("js.php?g={$group}") ?>"></script>
<script src="<?= $urlGenerator->asset_url("js.php/g/{$group}") ?>"></script>

View File

@ -40,5 +40,5 @@
<img src="{{:cover_image}}" alt="{{:title}}" />
</article>
</template>
<script src="<?= $urlGenerator->asset_url('js.php?g=anime_collection') ?>"></script>
<script src="<?= $urlGenerator->asset_url('js.php/g/anime_collection') ?>"></script>
<?php endif ?>

View File

@ -52,5 +52,5 @@
<img src="{{:cover_image}}" alt="{{:title}}" />
</article>
</template>
<script src="<?= $urlGenerator->asset_url('js.php?g=anime_collection') ?>"></script>
<script src="<?= $urlGenerator->asset_url('js.php/g/anime_collection') ?>"></script>
<?php endif ?>

View File

@ -49,4 +49,4 @@
<?php endforeach ?>
<?php endif ?>
</main>
<script src="<?= $urlGenerator->asset_url('js.php?g=table') ?>"></script>
<script src="<?= $urlGenerator->asset_url('js.php/g/table') ?>"></script>

View File

@ -1,3 +1,3 @@
<script src="<?= $urlGenerator->asset_url('js.php?g=event') ?>"></script>
<script src="<?= $urlGenerator->asset_url('js.php/g/event') ?>"></script>
</body>
</html>

View File

@ -6,8 +6,8 @@
<meta charset="utf-8" />
<meta http-equiv="cache-control" content="no-store" />
<meta http-equiv="Content-Security-Policy" content="script-src 'self'" />
<link rel="stylesheet" href="<?= $urlGenerator->asset_url('css.php?g=base') ?>" />
<script src="<?= $urlGenerator->asset_url('js.php?g=base') ?>"></script>
<link rel="stylesheet" href="<?= $urlGenerator->asset_url('css.php/g/base') ?>" />
<script src="<?= $urlGenerator->asset_url('js.php/g/base') ?>"></script>
</head>
<body class="<?= $escape->attr($url_type) ?> list">
<header>

View File

@ -35,5 +35,5 @@
</table>
</form>
</main>
<script src="<?= $urlGenerator->asset_url('js.php?g=manga_collection') ?>"></script>
<script src="<?= $urlGenerator->asset_url('js.php/g/manga_collection') ?>"></script>
<?php endif ?>

View File

@ -56,5 +56,5 @@
<?php endif ?>
</main>
<?php if ($auth->is_authenticated()): ?>
<script src="<?= $urlGenerator->asset_url('js.php?g=edit') ?>"></script>
<script src="<?= $urlGenerator->asset_url('js.php/g/edit') ?>"></script>
<?php endif ?>

View File

@ -85,5 +85,4 @@
</table>
</form>
</main>
<script src="<?= $urlGenerator->asset_url('js.php?g=edit') ?>"></script>
<?php endif ?>

View File

@ -45,4 +45,4 @@
<?php endforeach ?>
<?php endif ?>
</main>
<script src="<?= $urlGenerator->asset_url('js.php?g=table') ?>"></script>
<script src="<?= $urlGenerator->asset_url('js.php/g/table') ?>"></script>

View File

@ -13,16 +13,19 @@
namespace Aviat\EasyMin;
require_once('./min.php');
/**
* Simple CSS Minifier
*/
class CSSMin {
class CSSMin extends BaseMin {
protected $css_root;
protected $path_from;
protected $path_to;
protected $group;
protected $last_modified;
protected $requested_time;
public function __construct(array $config, array $groups)
{
@ -33,6 +36,11 @@ class CSSMin {
$this->group = $groups[$group];
$this->last_modified = $this->get_last_modified();
$this->requested_time = $this->get_if_modified();
}
public function __destruct()
{
$this->send();
}
@ -43,16 +51,11 @@ class CSSMin {
*/
protected function send()
{
$requested_time=(isset($_SERVER['HTTP_IF_MODIFIED_SINCE']))
? strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE'])
: 0;
// Send 304 when not modified for faster response
if($this->last_modified === $requested_time)
/*if($this->last_modified >= $this->requested_time)
{
header("HTTP/1.1 304 Not Modified");
exit();
}
header('304 Not Modified');
die();
}*/
$css = ( ! array_key_exists('debug', $_GET))
? $this->compress($this->get_css())
@ -69,7 +72,6 @@ class CSSMin {
*/
public function compress($buffer)
{
//Remove CSS comments
$buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
@ -119,9 +121,8 @@ class CSSMin {
//Get the latest modified date
rsort($modified);
$last_modified = $modified[0];
return $last_modified;
return array_shift($modified);
}
/**
@ -133,18 +134,15 @@ class CSSMin {
{
$css = '';
if(isset($this->group))
foreach($this->group as $file)
{
foreach($this->group as $file)
{
$new_file = realpath("{$this->css_root}{$file}");
$css .= file_get_contents($new_file);
}
$new_file = realpath("{$this->css_root}{$file}");
$css .= file_get_contents($new_file);
}
// Correct paths that have changed due to concatenation
// based on rules in the config file
$css = str_replace($this->path_from, $this->path_to, $css);
// $css = str_replace($this->path_from, $this->path_to, $css);
return $css;
}

View File

@ -18,11 +18,12 @@ use GuzzleHttp\Psr7\Request;
// Include guzzle
require_once('../vendor/autoload.php');
require_once('./min.php');
/**
* Simple Javascript minfier, using google closure compiler
*/
class JSMin {
class JSMin extends BaseMin {
protected $js_root;
protected $js_group;
@ -43,14 +44,15 @@ class JSMin {
$this->cache_file = "{$this->js_root}cache/{$group}";
$this->last_modified = $this->get_last_modified();
$this->requested_time = (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']))
? strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE'])
: time();
$this->requested_time = $this->get_if_modified();
$this->cache_modified = (is_file($this->cache_file))
? filemtime($this->cache_file)
: 0;
}
public function __destruct()
{
// Output some JS!
$this->send();
}
@ -59,11 +61,11 @@ class JSMin {
{
// If the browser's cached version is up to date,
// don't resend the file
if($this->last_modified === $this->requested_time)
/*if($this->last_modified === $this->requested_time)
{
header('HTTP/1.1 304 Not Modified');
header($_SERVER['SERVER_PROTOCOL'].' 304 Not Modified');
exit();
}
}*/
//Determine what to do: rebuild cache, send files as is, or send cache.
// If debug is set, just concatenate
@ -86,7 +88,7 @@ class JSMin {
// Otherwise, send the cached file
else
{
return $this->output(file_get_contents($cache_file));
return $this->output(file_get_contents($this->cache_file));
}
}

47
public/min.php Normal file
View File

@ -0,0 +1,47 @@
<?php
/**
* Hummingbird Anime Client
*
* An API client for Hummingbird to manage anime and manga watch lists
*
* @package HummingbirdAnimeClient
* @author Timothy J. Warren
* @copyright Copyright (c) 2015 - 2016
* @link https://github.com/timw4mail/HummingBirdAnimeClient
* @license MIT
*/
namespace Aviat\EasyMin;
//Creative rewriting of /g/groupname to ?g=groupname
$pi = $_SERVER['PATH_INFO'];
$pia = explode('/', $pi);
$pia_len = count($pia);
$i = 1;
while($i < $pia_len)
{
$j = $i+1;
$j = (isset($pia[$j])) ? $j : $i;
$_GET[$pia[$i]] = $pia[$j];
$i = $j + 1;
};
class BaseMin {
public function get_if_modified()
{
return (array_key_exists('HTTP_IF_MODIFIED_SINCE', $_SERVER))
? strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE'])
: time();
}
public function get_if_none_match()
{
return (array_key_exists('HTTP_IF_NONE_MATCH', $_SERVER))
? $_SERVER['HTTP_IF_NONE_MATCH']
: '';
}
}