From 2ddd4314f1b0328b2f454fddc5d509507807bf6b Mon Sep 17 00:00:00 2001 From: James Cole Date: Wed, 2 Nov 2016 14:33:57 +0100 Subject: [PATCH] Extend help pages. --- app/Helpers/Help/Help.php | 18 ++++++++++++++---- app/Http/Controllers/HelpController.php | 19 ++++++++++--------- resources/lang/en_US/firefly.php | 2 ++ resources/views/layout/default.twig | 3 +++ 4 files changed, 29 insertions(+), 13 deletions(-) diff --git a/app/Helpers/Help/Help.php b/app/Helpers/Help/Help.php index a4546e49af..79e3e7e721 100644 --- a/app/Helpers/Help/Help.php +++ b/app/Helpers/Help/Help.php @@ -26,6 +26,8 @@ use Route; */ class Help implements HelpInterface { + /** @var string */ + protected $userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36'; /** * @param string $route @@ -51,9 +53,10 @@ class Help implements HelpInterface $uri = sprintf('https://raw.githubusercontent.com/firefly-iii/help/master/%s/%s.md', $language, $route); Log::debug(sprintf('Trying to get %s...', $uri)); + $opt = ['useragent' => $this->userAgent]; $content = ''; try { - $result = Requests::get($uri); + $result = Requests::get($uri, [], $opt); } catch (Requests_Exception $e) { Log::error($e); @@ -71,6 +74,9 @@ class Help implements HelpInterface $converter = new CommonMarkConverter(); $content = $converter->convertToHtml($content); } + if (strlen($content) === 0) { + Log::warning('Raw content length is zero.'); + } return $content; @@ -95,7 +101,7 @@ class Help implements HelpInterface */ public function inCache(string $route, string $language):bool { - $line = sprintf('help.%s.%s', $route, $language); + $line = sprintf('help.%s.%s', $route, $language); $result = Cache::has($line); if ($result) { Log::debug(sprintf('Cache has this entry: %s', 'help.' . $route . '.' . $language)); @@ -119,7 +125,11 @@ class Help implements HelpInterface public function putInCache(string $route, string $language, string $content) { $key = sprintf('help.%s.%s', $route, $language); - Log::debug(sprintf('Will store entry in cache: %s', $key)); - Cache::put($key, $content, 10080); // a week. + if (strlen($content) > 0) { + Log::debug(sprintf('Will store entry in cache: %s', $key)); + Cache::put($key, $content, 10080); // a week. + return; + } + Log::info(sprintf('Will not cache %s because content is empty.', $key)); } } diff --git a/app/Http/Controllers/HelpController.php b/app/Http/Controllers/HelpController.php index 3096ac15eb..2d4299818e 100644 --- a/app/Http/Controllers/HelpController.php +++ b/app/Http/Controllers/HelpController.php @@ -44,7 +44,6 @@ class HelpController extends Controller $language = Preferences::get('language', config('firefly.default_language', 'en_US'))->data; $content = '

' . strval(trans('firefly.route_has_no_help')) . '

'; - $alternative = false; if (!$help->hasRoute($route)) { Log::error('No such route: ' . $route); @@ -54,7 +53,7 @@ class HelpController extends Controller if ($help->inCache($route, $language)) { $content = $help->getFromCache($route, $language); - Log::debug('Help text was in cache.'); + Log::debug(sprintf('Help text %s was in cache.', $language)); return Response::json($content); } @@ -63,13 +62,15 @@ class HelpController extends Controller // get backup language content (try English): if (strlen($content) === 0) { - $language = 'en_US'; - $content = $help->getFromGithub($language, $route); - $alternative = true; - } - - if ($alternative && strlen($content) > 0) { - $content = '

' . strval(trans('firefly.help_may_not_be_your_language')) . '

' . $content; + $language = 'en_US'; + if ($help->inCache($route, $language)) { + Log::debug(sprintf('Help text %s was in cache.', $language)); + $content = $help->getFromCache($route, $language); + } + if (!$help->inCache($route, $language)) { + $content = $help->getFromGithub($language, $route); + $content = '

' . strval(trans('firefly.help_may_not_be_your_language')) . '

' . $content; + } } if (strlen($content) === 0) { diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php index 435ab3f18b..2fa1eb4e59 100644 --- a/resources/lang/en_US/firefly.php +++ b/resources/lang/en_US/firefly.php @@ -72,6 +72,8 @@ return [ 'destination_accounts' => 'Destination account(s)', 'user_id_is' => 'Your user id is :user', 'field_supports_markdown' => 'This field supports Markdown.', + 'need_more_help' => 'If you need more help using Firefly III, please open a ticker on Github.', + // repeat frequencies: 'repeat_freq_yearly' => 'yearly', diff --git a/resources/views/layout/default.twig b/resources/views/layout/default.twig index 921138dd81..cd63a16aa3 100644 --- a/resources/views/layout/default.twig +++ b/resources/views/layout/default.twig @@ -148,6 +148,9 @@