|
1
|
|
|
<?php |
|
2
|
|
|
|
|
3
|
|
|
declare(strict_types=1); |
|
4
|
|
|
|
|
5
|
|
|
namespace ReliqArts\Scavenger\Helper; |
|
6
|
|
|
|
|
7
|
|
|
final class FormattedMessage |
|
8
|
|
|
{ |
|
9
|
|
|
public const MISSING_SEARCH_KEY = self::PREFIX_ABORTED . 'Search enabled but %s (%s) is not set for target (%s).'; |
|
10
|
|
|
public const EXCEPTION_THROWN_FOR_ATTRIBUTE = self::PREFIX_EXCEPTION . 'thrown for attribute (%s) on target %s: %s'; |
|
11
|
|
|
public const FIRST_RESULT_PAGE_FOR_KEYWORD_ON_TARGET = '1st Result Page for \'%s\' on target \'%s\''; |
|
12
|
|
|
public const PREPROCESS_NOT_CALLABLE = 'Preprocess for attribute %s on target %s is not callable.' . self::SUFFIX_SKIPPED; |
|
13
|
|
|
public const PROCESSING_PAGE_N = 'Processing page %d:'; |
|
14
|
|
|
public const NO_ITEMS_FOUND_ON_PAGE_N = 'No items found on page %d.'; |
|
15
|
|
|
public const SEARCH_KEYWORD = 'Search keyword %s'; |
|
16
|
|
|
public const SCRAP_CONTAINS_BAD_WORD = 'Scrap was found to contain bad words. Discarded -- %s'; |
|
17
|
|
|
public const SCRAP_GATHERED = 'Scrap gathered: %s'; |
|
18
|
|
|
public const SCRAP_SAVE_EXCEPTION = 'Failed to save scrap: %s. Exception: %s'; |
|
19
|
|
|
public const NO_TITLE_LINK_FOUND_FOR_X = 'No title/link found for item which would be at: %d' . self::SUFFIX_SKIPPED; |
|
20
|
|
|
public const UNABLE_TO_RETRIEVE_SCRAP_FOR_X = 'Unable to retrieve scrap which would be at: %d' . self::SUFFIX_SKIPPED; |
|
21
|
|
|
public const EXAMPLE_TARGET = 'Target (%s) is for example purposes only.' . self::SUFFIX_SKIPPED; |
|
22
|
|
|
public const INVALID_SPECIAL_KEY = self::PREFIX_ERROR . 'Special key (%s) is not valid.'; |
|
23
|
|
|
public const TARGET = 'Target: %s'; |
|
24
|
|
|
public const TARGET_MODEL_RESOLUTION_FAILED = 'Could not resolve model for target %s. %s' . self::SUFFIX_SKIPPED; |
|
25
|
|
|
public const TARGET_NAME_MISSING = 'Missing target name. (%s)'; |
|
26
|
|
|
public const TARGET_PAGER_NEXT_NOT_FOUND = self::PREFIX_ERROR . 'Pager next link could not be found for target (%s). Specified as (%s), with expected text: "%s".'; |
|
27
|
|
|
public const TARGET_SOURCE_MISSING = 'Missing source for target (%s).' . self::SUFFIX_SKIPPED; |
|
28
|
|
|
public const TARGET_INVALID_SEARCH_FORM = 'Could not retrieve form for target (%s). Please check configuration.'; |
|
29
|
|
|
public const TARGET_UNKNOWN = self::PREFIX_ABORTED . 'Unknown target (%s).'; |
|
30
|
|
|
public const TARGET_UNEXPECTED_EXCEPTION = self::PREFIX_EXCEPTION . 'Target (%s) resulted in exception: %s'; |
|
31
|
|
|
public const TARGET_MISSING_TITLE_LINK = 'Missing title link in configuration for target (%s).'; |
|
32
|
|
|
public const TARGET_MISSING_ITEM_WRAPPER = 'Neither `inside` nor `item_wrapper` is specified for target (%s).'; |
|
33
|
|
|
|
|
34
|
|
|
private const PREFIX_ABORTED = '[!] Aborted - '; |
|
35
|
|
|
private const PREFIX_ERROR = '[!] Error - '; |
|
36
|
|
|
private const PREFIX_EXCEPTION = '[!] Exception - '; |
|
37
|
|
|
private const SUFFIX_SKIPPED = ' - Skipped'; |
|
38
|
|
|
|
|
39
|
|
|
/** |
|
40
|
|
|
* Message constructor. |
|
41
|
|
|
*/ |
|
42
|
|
|
private function __construct() |
|
43
|
|
|
{ |
|
44
|
|
|
} |
|
45
|
|
|
|
|
46
|
|
|
/** |
|
47
|
|
|
* @param mixed ...$args |
|
48
|
|
|
*/ |
|
49
|
|
|
public static function get(string $message, ...$args): string |
|
50
|
|
|
{ |
|
51
|
|
|
return sprintf($message, ...$args); |
|
52
|
|
|
} |
|
53
|
|
|
} |
|
54
|
|
|
|