From 6288883d88c420e242ffc07e81d9ca315eec4a5a Mon Sep 17 00:00:00 2001 From: Zach DeCook Date: Wed, 11 May 2022 13:27:03 +0000 Subject: gemini: Add feature to search by bible verse --- laravel/app/Song.php | 7 +++++++ laravel/public/searchVerse.gmi | 29 +++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100755 laravel/public/searchVerse.gmi diff --git a/laravel/app/Song.php b/laravel/app/Song.php index 99b0aa4..6705dfa 100644 --- a/laravel/app/Song.php +++ b/laravel/app/Song.php @@ -12,6 +12,13 @@ class Song extends Model { return $this->belongsToMany('App\Playlist'); } + public static function whereVerse($passage) + { + $book = explode(' ',$passage)[0]; + $chapter = (int)explode(' ', $passage)[1]; + + return Song::where('verse', 'LIKE', "$book $chapter:%")->orWhere('verse',"$book $chapter"); + } public function textTranspose($key) { $sc = new SongController(); diff --git a/laravel/public/searchVerse.gmi b/laravel/public/searchVerse.gmi new file mode 100755 index 0000000..d779988 --- /dev/null +++ b/laravel/public/searchVerse.gmi @@ -0,0 +1,29 @@ +#!/usr/bin/php8 +make(Illuminate\Contracts\Http\Kernel::class); +use App\Song; + +$q = getenv('QUERY_STRING'); +if (!$q) { + printf("10 Enter a verse to search.\r\n"); + exit(0); +} + +$results = Song::whereVerse($q)->get(['id', 'verse', 'title']); + +if (!count($results)) { + printf("51 No songs found for '$q'."); + exit(0); +} + +printf("20 text/gemini\r\n"); +?> + +=> /song.gmi.php/id?> verse ?>: title ?> + + -- cgit 1.4.1