diff --git a/composer.json b/composer.json index ca3c6d8..b517d77 100644 --- a/composer.json +++ b/composer.json @@ -3,7 +3,8 @@ "description": "Manage deals in LBC", "type": "project", "require": { - "shikiryu/lbcreposter-api": "0.*" + "shikiryu/lbcreposter-api": "0.*", + "monolog/monolog": "^1.23" }, "require-dev": { "phpunit/phpunit": "^5.7" @@ -17,4 +18,4 @@ "autoload": { "psr-4": {} } -} \ No newline at end of file +} diff --git a/composer.lock b/composer.lock index 1a31a26..5d23e05 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "1f27833b156f7e100122870f2bf123e3", - "content-hash": "818e49fe8e9ffc7b1f4a8e88edc1f278", + "hash": "da5cf0fa9c9ce6bd3e2984db7c5f28b8", + "content-hash": "95d6dcaa6784485a4831674141dabf0d", "packages": [ { "name": "fabpot/goutte", @@ -237,6 +237,84 @@ ], "time": "2017-03-20 17:10:46" }, + { + "name": "monolog/monolog", + "version": "1.23.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4", + "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "jakub-onderka/php-parallel-lint": "0.9", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpunit/phpunit": "~4.5", + "phpunit/phpunit-mock-objects": "2.3.0", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", + "swiftmailer/swiftmailer": "^5.3|^6.0" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "time": "2017-06-19 01:22:40" + }, { "name": "psr/http-message", "version": "1.0.1", @@ -287,13 +365,60 @@ ], "time": "2016-08-06 14:39:51" }, + { + "name": "psr/log", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2016-10-10 12:19:37" + }, { "name": "shikiryu/lbcreposter-api", - "version": "dev-master", + "version": "0.1.1", "source": { "type": "git", "url": "https://git.shikiryu.com/Shikiryu/LBCReposter-api.git", - "reference": "768af6e636c33af05e7a9a28aa5625bee13514de" + "reference": "ac21f74c11878955e86e74115f70408e590936f5" }, "require": { "fabpot/goutte": "^3.1" @@ -315,7 +440,7 @@ } ], "description": "Manage deals in LBC", - "time": "2017-09-30 13:42:28" + "time": "2017-11-07 20:24:59" }, { "name": "symfony/browser-kit", @@ -1860,9 +1985,7 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": { - "shikiryu/lbcreposter-api": 20 - }, + "stability-flags": [], "prefer-stable": false, "prefer-lowest": false, "platform": [], diff --git a/cron.php b/cron.php index 6c34334..d17d4bd 100644 --- a/cron.php +++ b/cron.php @@ -1,12 +1,22 @@ pushHandler(new StreamHandler(LOGS_DIR.'/cron.log', Logger::WARNING)); +$log->pushHandler(new \Monolog\Handler\NativeMailerHandler(LOG_MAIL_TO, LOG_MAIL_SUBJECT, LOG_MAIL_FROM)); $existing_deals = []; foreach (new DirectoryIterator(EXISTING_DEALS_DIR) as $existing_deal) { @@ -36,7 +46,7 @@ function delete_folder($folder) { return rmdir($folder); } -echo sprintf('%u annonces locales, normalement en ligne.%s', count($existing_deals), "\n"); +$log->info(sprintf('%u annonces locales, normalement en ligne.', count($existing_deals))); $script_params = parse_ini_file(sprintf('%s/lbcreposter.ini', DEALS_DIR), true); $config = new \Shikiryu\LBCReposter\Config($script_params); $account = new \Shikiryu\LBCReposter\Account($config); @@ -53,12 +63,12 @@ if ($actions->connect()) { foreach ($deals as $i => $deal) { // l'annonce existe déjà if (in_array($deal->getId(), array_keys($existing_deals))) { - echo sprintf('L\'annonce %s existe déjà, ', $deal->getId()); + $log->info(sprintf('L\'annonce %s existe déjà, ', $deal->getId())); // si elle est vieille, on supprime et on recréé if ($existing_deals[$deal->getId()]->getDateCreation()->add(new DateInterval('P1W')) <= (new DateTime())) { // Suppression - echo sprintf('elle est vieille (%s), on la supprime. %s', $existing_deals[$deal->getId()]->getDateCreation()->format('d/m/Y H:i'), "\n"); - $actions->delete($deal); + $log->error(sprintf('elle est vieille (%s), on la supprime.', $existing_deals[$deal->getId()]->getDateCreation()->format('d/m/Y H:i'))); +// $actions->delete($deal); // Backup if (!file_exists(BACKUP_DEALS_DIR.'/'.$deal->getId())) { mkdir(BACKUP_DEALS_DIR . '/' . $deal->getId()); @@ -68,11 +78,11 @@ if ($actions->connect()) { rename(EXISTING_DEALS_DIR.'/'.$deal->getId(), NEW_DEALS_DIR.'/'.$deal->getId()); } else { // sinon on la laisse - echo sprintf('et tout va bien. %s', "\n"); + $log->info('et tout va bien.'); } unset($deals_to_backup[$deal->getId()]); } else { - echo sprintf('L\'annonce %s n\'existait pas et est sauvegardée. %s', $deal->getSubject(), "\n"); + $log->error(sprintf('L\'annonce %s n\'existait pas et est sauvegardée.', $deal->getSubject())); // Une annonce non sauvegardée ? on la sauve $deal->save(EXISTING_DEALS_DIR); } @@ -91,17 +101,18 @@ if ($actions->connect()) { foreach (new DirectoryIterator(NEW_DEALS_DIR) as $new_deal) { if ($new_deal->isDir() && !$new_deal->isDot()) { $deal_to_create = \Shikiryu\LBCReposter\Deal::fromJSON($new_deal->getRealPath() . '/data.json'); - if ($actions->create($deal_to_create)) { + /*if ($actions->create($deal_to_create)) { delete_folder($new_deal->getRealPath()); - echo sprintf('L\'annonce %s a bien été créée. %s', $deal_to_create->getSubject(), "\n"); + $log->info(sprintf('L\'annonce %s a bien été créée.', $deal_to_create->getSubject())); break; } else { - echo sprintf('L\'annonce %s n\'a pas bien été créée. %s', $deal_to_create->getSubject(), "\n"); - } + $log->error(sprintf('L\'annonce %s n\'a pas bien été créée. %s', $deal_to_create->getSubject())); + }*/ sleep(30); } } } else { - echo 'not connected'; + $log->error('not connected'); } +$log->info('CRON terminé !');