diff --git a/AGENTS.md b/AGENTS.md deleted file mode 100644 index 1d1bca7..0000000 --- a/AGENTS.md +++ /dev/null @@ -1,29 +0,0 @@ -# Agent Guidelines for vid-queue - -This document outlines the conventions and commands for agentic coding in this repository. - -## Build/Lint/Test Commands - -* **Tests:** There are no working tests. The user will do manual tests. -* **Linting:** Adhere to PSR-12 coding standards. No explicit linting command is configured, but static analysis tools like PHPStan or Psalm may be used locally. - -## Code Style Guidelines - -* **Imports:** Use fully qualified class names and `use` statements at the top of files. -* **Formatting:** - * Indent with 4 spaces. - * Use `lf` for line endings. - * Ensure a final newline at the end of files. - * Trim trailing whitespace. -* **Types:** Utilize PHP 7.4+ type hints for arguments, return types, and properties where appropriate. -* **Naming Conventions:** - * Classes: PascalCase (e.g., `GetShow`, `TraktLogin`). - * Methods/Functions: camelCase. - * Variables: camelCase. -* **Error Handling:** Use exceptions for error handling. -* **Dependency Injection:** Prefer dependency injection over using Facades or resolving from the IOC Container directly. - -## Git Commit Guidelines -- **Format**: Prepend commit messages with a gitmoji emoji (see https://gitmoji.dev) -- **Style**: Write detailed commit messages that explain what changed and why -- **Examples**: `✨ Add JSON export functionality for log entries`, `🐛 Fix date parsing for RFC3339 timestamps`, `📝 Update README with configuration examples` diff --git a/app/Commands/TraktLogin.php b/app/Commands/TraktLogin.php index 1be6a85..592080a 100644 --- a/app/Commands/TraktLogin.php +++ b/app/Commands/TraktLogin.php @@ -5,16 +5,16 @@ declare(strict_types=1); namespace App\Commands; use App\Services\Trakt; -use Illuminate\Contracts\Config\Repository; class TraktLogin extends Command { protected $signature = 'trakt:login'; protected $description = 'Login and get new token.'; - public function handle(Trakt $trakt, Repository $config): int + + public function handle(Trakt $trakt): int { $data = [ - 'client_id' => $config->get('trakt.app_id'), + 'client_id' => env('TRAKT_APP_ID'), ]; $resp = $trakt->requestNoAuth()->post('/oauth/device/code', $data); @@ -33,8 +33,8 @@ class TraktLogin extends Command $this->line("TRAKT_DEVICE_RESP='" . json_encode($body) . "'"); $data = [ - 'client_id' => $config->get('trakt.app_id'), - 'client_secret' => $config->get('trakt.app_secret'), + 'client_id' => env('TRAKT_APP_ID'), + 'client_secret' => env('TRAKT_APP_SECRET'), 'code' => $body['device_code'], ]; diff --git a/app/Commands/TraktRefreshLogin.php b/app/Commands/TraktRefreshLogin.php index 3baf499..b17b3c4 100644 --- a/app/Commands/TraktRefreshLogin.php +++ b/app/Commands/TraktRefreshLogin.php @@ -5,25 +5,25 @@ declare(strict_types=1); namespace App\Commands; use App\Services\Trakt; -use Illuminate\Contracts\Config\Repository; class TraktRefreshLogin extends Command { protected $signature = 'trakt:refresh'; protected $description = 'Refresh access token.'; - public function handle(Trakt $trakt, Repository $config): int + + public function handle(Trakt $trakt): int { - $refresh_token = $config->get('trakt.login.oauth.refresh_token'); - if (empty($refresh_token)) { - $this->line("Failed to get refresh token"); + $oauth_resp = json_decode(env('TRAKT_OAUTH_RESP'), true); + if (empty($oauth_resp)) { + $this->line("Failed to get OAuth response"); return static::FAILURE; } $data = [ - 'refresh_token' => $refresh_token, - 'client_id' => $config->get('trakt.app_id'), - 'client_secret' => $config->get('trakt.app_secret'), - 'redirect_uri' => $config->get('trakt.redirect_uri'), + 'refresh_token' => $oauth_resp['refresh_token'], + 'client_id' => env('TRAKT_APP_ID'), + 'client_secret' => env('TRAKT_APP_SECRET'), + 'redirect_uri' => env('TRAKT_REDIRECT_URI'), 'grant_type' => 'refresh_token', ]; diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 93d92fa..8c37147 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -7,7 +7,6 @@ use Illuminate\Support\ServiceProvider; use Illuminate\Contracts\Queue\Factory as QueueFactoryContract; use App\Queue\DatabaseConnector; use App\Services\Trakt; -use Illuminate\Contracts\Config\Repository; class AppServiceProvider extends ServiceProvider { @@ -30,6 +29,6 @@ class AppServiceProvider extends ServiceProvider public function register() { $this->app->instance(ProcessInput::class, new ProcessInput()); - $this->app->singleton(Trakt::class, fn ($app) => new Trakt($app->make(Repository::class))); + $this->app->instance(Trakt::class, new Trakt()); } } diff --git a/app/Services/Trakt.php b/app/Services/Trakt.php index 3a4c3f9..127406d 100644 --- a/app/Services/Trakt.php +++ b/app/Services/Trakt.php @@ -6,19 +6,18 @@ use App\Data\WatchData; use Illuminate\Http\Client\PendingRequest; use Illuminate\Http\Client\Response; use Illuminate\Support\Facades\Http; -use Illuminate\Contracts\Config\Repository; use Symfony\Component\Console\Output\OutputInterface; class Trakt { - protected array $headers = []; + protected $headers = []; - public function __construct(Repository $config) + public function __construct() { $this->headers = [ 'trakt-api-version' => 2, - 'trakt-api-key' => $config->get('trakt.app_id'), - 'Authorization' => 'Bearer ' . $config->get('trakt.login.oauth.access_token'), + 'trakt-api-key' => env('TRAKT_APP_ID'), + 'Authorization' => 'Bearer ' . env('TRAKT_OAUTH_TOKEN'), ]; } diff --git a/config/trakt.php b/config/trakt.php deleted file mode 100644 index 5b91722..0000000 --- a/config/trakt.php +++ /dev/null @@ -1,11 +0,0 @@ - env('TRAKT_APP_ID'), - 'app_secret' => env('TRAKT_APP_secret'), - 'redirect_uri' => env('TRAKT_REDIRECT_URI', 'urn:ietf:wg:oauth:2.0:oob'), - 'login' => [ - 'device' => json_decode(env('TRAKT_DEVICE_RESP', '{}}'), true), - 'oauth' => json_decode(env('TRAKT_OAUTH_RESP', '{}}'), true), - ], -];