update 2023-06-22 12:54:59
This commit is contained in:
parent
52551e8b9a
commit
8c3de64c5c
@ -16,6 +16,7 @@ class Load << (F,LightGreen) >> #Green {
|
|||||||
# Database $load
|
# Database $load
|
||||||
+ __construct(Table $table, Model $model, ...)
|
+ __construct(Table $table, Model $model, ...)
|
||||||
+ value(array $keys, string $field, ...) : mixed
|
+ value(array $keys, string $field, ...) : mixed
|
||||||
|
+ max(array $keys, string $field, ...) : mixed
|
||||||
+ item(array $keys, string $table) : ?object
|
+ item(array $keys, string $table) : ?object
|
||||||
+ items(array $keys, string $table) : ?array
|
+ items(array $keys, string $table) : ?array
|
||||||
- prefix(array $keys) : array
|
- prefix(array $keys) : array
|
||||||
@ -52,6 +53,26 @@ Example: $this->value(
|
|||||||
string $table
|
string $table
|
||||||
end note
|
end note
|
||||||
|
|
||||||
|
note right of Load::max
|
||||||
|
Get the max value from a given table
|
||||||
|
Example: $this->value(
|
||||||
|
[
|
||||||
|
'abbreviation' => 'kjv',
|
||||||
|
'book_nr' => 62,
|
||||||
|
'chapter' => 3,
|
||||||
|
'verse' => 16
|
||||||
|
], 'value_key', 'table_name'
|
||||||
|
);
|
||||||
|
|
||||||
|
since: 2.0.1
|
||||||
|
return: mixed
|
||||||
|
|
||||||
|
arguments:
|
||||||
|
array $keys
|
||||||
|
string $field
|
||||||
|
string $table
|
||||||
|
end note
|
||||||
|
|
||||||
note right of Load::item
|
note right of Load::item
|
||||||
Get values from a given table
|
Get values from a given table
|
||||||
Example: $this->item(
|
Example: $this->item(
|
||||||
|
@ -101,6 +101,43 @@ final class Load
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the max value from a given table
|
||||||
|
* Example: $this->value(
|
||||||
|
* [
|
||||||
|
* 'abbreviation' => 'kjv',
|
||||||
|
* 'book_nr' => 62,
|
||||||
|
* 'chapter' => 3,
|
||||||
|
* 'verse' => 16
|
||||||
|
* ], 'value_key', 'table_name'
|
||||||
|
* );
|
||||||
|
*
|
||||||
|
* @param array $keys The item keys
|
||||||
|
* @param string $field The field key
|
||||||
|
* @param string $table The table
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
* @since 2.0.1
|
||||||
|
*/
|
||||||
|
public function max(array $keys, string $field, string $table)
|
||||||
|
{
|
||||||
|
// check if this is a valid table
|
||||||
|
if ($this->table->exist($table, $field))
|
||||||
|
{
|
||||||
|
return $this->model->value(
|
||||||
|
$this->load->value(
|
||||||
|
["all" => "MAX(`$field`)"],
|
||||||
|
['a' => $table],
|
||||||
|
$this->prefix($keys)
|
||||||
|
),
|
||||||
|
$field,
|
||||||
|
$table
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get values from a given table
|
* Get values from a given table
|
||||||
* Example: $this->item(
|
* Example: $this->item(
|
||||||
|
@ -75,6 +75,43 @@
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the max value from a given table
|
||||||
|
* Example: $this->value(
|
||||||
|
* [
|
||||||
|
* 'abbreviation' => 'kjv',
|
||||||
|
* 'book_nr' => 62,
|
||||||
|
* 'chapter' => 3,
|
||||||
|
* 'verse' => 16
|
||||||
|
* ], 'value_key', 'table_name'
|
||||||
|
* );
|
||||||
|
*
|
||||||
|
* @param array $keys The item keys
|
||||||
|
* @param string $field The field key
|
||||||
|
* @param string $table The table
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
* @since 2.0.1
|
||||||
|
*/
|
||||||
|
public function max(array $keys, string $field, string $table)
|
||||||
|
{
|
||||||
|
// check if this is a valid table
|
||||||
|
if ($this->table->exist($table, $field))
|
||||||
|
{
|
||||||
|
return $this->model->value(
|
||||||
|
$this->load->value(
|
||||||
|
["all" => "MAX(`$field`)"],
|
||||||
|
['a' => $table],
|
||||||
|
$this->prefix($keys)
|
||||||
|
),
|
||||||
|
$field,
|
||||||
|
$table
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get values from a given table
|
* Get values from a given table
|
||||||
* Example: $this->item(
|
* Example: $this->item(
|
||||||
|
@ -25,6 +25,9 @@ class Watcher << (F,LightGreen) >> #Green {
|
|||||||
+ api(string $translation, int $book, ...) : bool
|
+ api(string $translation, int $book, ...) : bool
|
||||||
+ getNextChapter(string $translation, int $book, ...) : ?int
|
+ getNextChapter(string $translation, int $book, ...) : ?int
|
||||||
+ getPreviousChapter(int $chapter, bool $force = false) : ?int
|
+ getPreviousChapter(int $chapter, bool $force = false) : ?int
|
||||||
|
+ getLastChapter(string $translation, int $book) : ?int
|
||||||
|
+ getNextBook(string $translation, int $book, ...) : ?int
|
||||||
|
+ getPreviousBook(string $translation, int $book, ...) : ?int
|
||||||
- translation(string $translation) : ?string
|
- translation(string $translation) : ?string
|
||||||
- book(string $translation, int $book) : ?string
|
- book(string $translation, int $book) : ?string
|
||||||
- chapter(string $translation, int $book, ...) : ?string
|
- chapter(string $translation, int $book, ...) : ?string
|
||||||
@ -83,21 +86,52 @@ note left of Watcher::getPreviousChapter
|
|||||||
return: ?int
|
return: ?int
|
||||||
end note
|
end note
|
||||||
|
|
||||||
note right of Watcher::translation
|
note right of Watcher::getLastChapter
|
||||||
|
Get the last chapter of a book
|
||||||
|
|
||||||
|
since: 2.0.1
|
||||||
|
return: ?int
|
||||||
|
end note
|
||||||
|
|
||||||
|
note left of Watcher::getNextBook
|
||||||
|
Get the next book
|
||||||
|
|
||||||
|
since: 2.0.1
|
||||||
|
return: ?int
|
||||||
|
|
||||||
|
arguments:
|
||||||
|
string $translation
|
||||||
|
int $book
|
||||||
|
int $try
|
||||||
|
end note
|
||||||
|
|
||||||
|
note right of Watcher::getPreviousBook
|
||||||
|
Get the previous book
|
||||||
|
|
||||||
|
since: 2.0.1
|
||||||
|
return: ?int
|
||||||
|
|
||||||
|
arguments:
|
||||||
|
string $translation
|
||||||
|
int $book
|
||||||
|
int $try
|
||||||
|
end note
|
||||||
|
|
||||||
|
note left of Watcher::translation
|
||||||
Get Translation Hash Value
|
Get Translation Hash Value
|
||||||
|
|
||||||
since: 2.0.1
|
since: 2.0.1
|
||||||
return: ?string
|
return: ?string
|
||||||
end note
|
end note
|
||||||
|
|
||||||
note left of Watcher::book
|
note right of Watcher::book
|
||||||
Get Book Hash Value
|
Get Book Hash Value
|
||||||
|
|
||||||
since: 2.0.1
|
since: 2.0.1
|
||||||
return: ?string
|
return: ?string
|
||||||
end note
|
end note
|
||||||
|
|
||||||
note right of Watcher::chapter
|
note left of Watcher::chapter
|
||||||
Get Chapter Hash Value
|
Get Chapter Hash Value
|
||||||
|
|
||||||
since: 2.0.1
|
since: 2.0.1
|
||||||
@ -109,7 +143,7 @@ note right of Watcher::chapter
|
|||||||
int $chapter
|
int $chapter
|
||||||
end note
|
end note
|
||||||
|
|
||||||
note left of Watcher::verses
|
note right of Watcher::verses
|
||||||
Load verses if not in local database
|
Load verses if not in local database
|
||||||
|
|
||||||
since: 2.0.1
|
since: 2.0.1
|
||||||
@ -121,7 +155,7 @@ note left of Watcher::verses
|
|||||||
int $chapter
|
int $chapter
|
||||||
end note
|
end note
|
||||||
|
|
||||||
note right of Watcher::update
|
note left of Watcher::update
|
||||||
Trigger the update of the verses of a translation-book-chapter
|
Trigger the update of the verses of a translation-book-chapter
|
||||||
|
|
||||||
since: 2.0.1
|
since: 2.0.1
|
||||||
@ -133,14 +167,14 @@ note right of Watcher::update
|
|||||||
int $chapter
|
int $chapter
|
||||||
end note
|
end note
|
||||||
|
|
||||||
note left of Watcher::getVerse
|
note right of Watcher::getVerse
|
||||||
Get a verse text from the API array of verses
|
Get a verse text from the API array of verses
|
||||||
|
|
||||||
since: 2.0.1
|
since: 2.0.1
|
||||||
return: ?object
|
return: ?object
|
||||||
end note
|
end note
|
||||||
|
|
||||||
note right of Watcher::updateHash
|
note left of Watcher::updateHash
|
||||||
Trigger the update of a chapter hash value
|
Trigger the update of a chapter hash value
|
||||||
|
|
||||||
since: 2.0.1
|
since: 2.0.1
|
||||||
@ -153,14 +187,14 @@ note right of Watcher::updateHash
|
|||||||
string $hash
|
string $hash
|
||||||
end note
|
end note
|
||||||
|
|
||||||
note left of Watcher::hold
|
note right of Watcher::hold
|
||||||
Check if its time to match the API hash
|
Check if its time to match the API hash
|
||||||
|
|
||||||
since: 2.0.1
|
since: 2.0.1
|
||||||
return: bool
|
return: bool
|
||||||
end note
|
end note
|
||||||
|
|
||||||
note right of Watcher::bump
|
note left of Watcher::bump
|
||||||
Bump the checking time
|
Bump the checking time
|
||||||
|
|
||||||
since: 2.0.1
|
since: 2.0.1
|
||||||
|
@ -248,6 +248,106 @@ final class Watcher
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the last chapter of a book
|
||||||
|
*
|
||||||
|
* @param string $translation The translation.
|
||||||
|
* @param int $book The book number.
|
||||||
|
*
|
||||||
|
* @return int|null Number if there is a previous, else null
|
||||||
|
* @since 2.0.1
|
||||||
|
*/
|
||||||
|
public function getLastChapter(string $translation, int $book): ?int
|
||||||
|
{
|
||||||
|
// we load the last chapter
|
||||||
|
return $this->load->max(
|
||||||
|
['abbreviation' => $translation, 'book_nr' => $book],
|
||||||
|
'chapter', 'chapter'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the next book
|
||||||
|
*
|
||||||
|
* @param string $translation The translation.
|
||||||
|
* @param int $book The book number.
|
||||||
|
* @param int $try The number of tries
|
||||||
|
*
|
||||||
|
* @return int|null Number if there is a next, else null
|
||||||
|
* @since 2.0.1
|
||||||
|
*/
|
||||||
|
public function getNextBook(string $translation, int $book, int $try = 0): ?int
|
||||||
|
{
|
||||||
|
// we load the next chapter
|
||||||
|
$next = $book + 1;
|
||||||
|
|
||||||
|
// if we already looked over 66
|
||||||
|
if ($next >= 66)
|
||||||
|
{
|
||||||
|
$next = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// check if this book exist
|
||||||
|
if ($this->load->value(
|
||||||
|
['abbreviation' => $translation, 'nr' => $next],
|
||||||
|
'sha', 'book'
|
||||||
|
))
|
||||||
|
{
|
||||||
|
return $next;
|
||||||
|
}
|
||||||
|
|
||||||
|
$try++;
|
||||||
|
|
||||||
|
// could not be found :(
|
||||||
|
if ($try >= 65)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->getNextBook($translation, $next, $try);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the previous book
|
||||||
|
*
|
||||||
|
* @param string $translation The translation.
|
||||||
|
* @param int $book The book number.
|
||||||
|
* @param int $try The number of tries
|
||||||
|
*
|
||||||
|
* @return int|null Number if there is a previous, else null
|
||||||
|
* @since 2.0.1
|
||||||
|
*/
|
||||||
|
public function getPreviousBook(string $translation, int $book, int $try = 0): ?int
|
||||||
|
{
|
||||||
|
// we load the previous book
|
||||||
|
$previous = $book - 1;
|
||||||
|
|
||||||
|
// if we already looked over 66
|
||||||
|
if ($previous <= 0)
|
||||||
|
{
|
||||||
|
$previous = 66;
|
||||||
|
}
|
||||||
|
|
||||||
|
// check if this book exist
|
||||||
|
if ($this->load->value(
|
||||||
|
['abbreviation' => $translation, 'nr' => $previous],
|
||||||
|
'sha', 'book'
|
||||||
|
))
|
||||||
|
{
|
||||||
|
return $previous;
|
||||||
|
}
|
||||||
|
|
||||||
|
$try++;
|
||||||
|
|
||||||
|
// could not be found :(
|
||||||
|
if ($try >= 65)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->getPreviousBook($translation, $previous, $try);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Translation Hash Value
|
* Get Translation Hash Value
|
||||||
*
|
*
|
||||||
|
@ -217,6 +217,106 @@
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the last chapter of a book
|
||||||
|
*
|
||||||
|
* @param string $translation The translation.
|
||||||
|
* @param int $book The book number.
|
||||||
|
*
|
||||||
|
* @return int|null Number if there is a previous, else null
|
||||||
|
* @since 2.0.1
|
||||||
|
*/
|
||||||
|
public function getLastChapter(string $translation, int $book): ?int
|
||||||
|
{
|
||||||
|
// we load the last chapter
|
||||||
|
return $this->load->max(
|
||||||
|
['abbreviation' => $translation, 'book_nr' => $book],
|
||||||
|
'chapter', 'chapter'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the next book
|
||||||
|
*
|
||||||
|
* @param string $translation The translation.
|
||||||
|
* @param int $book The book number.
|
||||||
|
* @param int $try The number of tries
|
||||||
|
*
|
||||||
|
* @return int|null Number if there is a next, else null
|
||||||
|
* @since 2.0.1
|
||||||
|
*/
|
||||||
|
public function getNextBook(string $translation, int $book, int $try = 0): ?int
|
||||||
|
{
|
||||||
|
// we load the next chapter
|
||||||
|
$next = $book + 1;
|
||||||
|
|
||||||
|
// if we already looked over 66
|
||||||
|
if ($next >= 66)
|
||||||
|
{
|
||||||
|
$next = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// check if this book exist
|
||||||
|
if ($this->load->value(
|
||||||
|
['abbreviation' => $translation, 'nr' => $next],
|
||||||
|
'sha', 'book'
|
||||||
|
))
|
||||||
|
{
|
||||||
|
return $next;
|
||||||
|
}
|
||||||
|
|
||||||
|
$try++;
|
||||||
|
|
||||||
|
// could not be found :(
|
||||||
|
if ($try >= 65)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->getNextBook($translation, $next, $try);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the previous book
|
||||||
|
*
|
||||||
|
* @param string $translation The translation.
|
||||||
|
* @param int $book The book number.
|
||||||
|
* @param int $try The number of tries
|
||||||
|
*
|
||||||
|
* @return int|null Number if there is a previous, else null
|
||||||
|
* @since 2.0.1
|
||||||
|
*/
|
||||||
|
public function getPreviousBook(string $translation, int $book, int $try = 0): ?int
|
||||||
|
{
|
||||||
|
// we load the previous book
|
||||||
|
$previous = $book - 1;
|
||||||
|
|
||||||
|
// if we already looked over 66
|
||||||
|
if ($previous <= 0)
|
||||||
|
{
|
||||||
|
$previous = 66;
|
||||||
|
}
|
||||||
|
|
||||||
|
// check if this book exist
|
||||||
|
if ($this->load->value(
|
||||||
|
['abbreviation' => $translation, 'nr' => $previous],
|
||||||
|
'sha', 'book'
|
||||||
|
))
|
||||||
|
{
|
||||||
|
return $previous;
|
||||||
|
}
|
||||||
|
|
||||||
|
$try++;
|
||||||
|
|
||||||
|
// could not be found :(
|
||||||
|
if ($try >= 65)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->getPreviousBook($translation, $previous, $try);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Translation Hash Value
|
* Get Translation Hash Value
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user