Jacek Kowalski
2019-06-21 b6272077e75e77d7828ff5752e7ea7c9ec4942e8
Move configuration of data sources to a separate file (config.php)
2 files modified
1 files added
77 ■■■■ changed files
config.php 38 ●●●●● patch | view | raw | blame | history
lib/mapper.php 2 ●●●●● patch | view | raw | blame | history
parse.php 37 ●●●●● patch | view | raw | blame | history
config.php
New file
@@ -0,0 +1,38 @@
<?php
$sources = [
    'bus' => [
        'gtfsrt' => 'ftp://ztp.krakow.pl/VehiclePositions_A.pb',
        'gtfsrt_file' => 'VehiclePositions_A.pb',
        'ttss' => 'http://ttss.mpk.krakow.pl/internetservice/geoserviceDispatcher/services/vehicleinfo/vehicles',
        'ttss_file' => 'vehicles_A.json',
        'database' => 'mapping_A.sqlite3',
        'result' => 'mapping_A.json',
        'mapper' => 'numToTypeB',
    ],
    'tram' => [
        'gtfsrt' => 'ftp://ztp.krakow.pl/VehiclePositions_T.pb',
        'gtfsrt_file' => 'VehiclePositions_T.pb',
        'ttss' => 'http://www.ttss.krakow.pl/internetservice/geoserviceDispatcher/services/vehicleinfo/vehicles',
        'ttss_file' => 'vehicles_T.json',
        'database' => 'mapping_T.sqlite3',
        'result' => 'mapping_T.json',
        'mapper' => 'numToTypeT',
    ],
    'tram2' => [
        'gtfsrt' => 'ftp://ztp.krakow.pl/VehiclePositions.pb',
        'gtfsrt_file' => 'VehiclePositions_T.pb',
        'ttss' => 'http://www.ttss.krakow.pl/internetservice/geoserviceDispatcher/services/vehicleinfo/vehicles',
        'ttss_file' => 'vehicles_T.json',
        'database' => 'mapping_T.sqlite3',
        'result' => 'mapping_T.json',
        'mapper' => 'numToTypeT',
    ],
];
foreach($sources as $name => &$source) {
    foreach(['gtfsrt_file', 'ttss_file', 'database', 'result'] as $field) {
        $source[$field] = __DIR__.'/data/'.$source[$field];
    }
    $source['result_temp'] = $source['result'].'.tmp';
}
unset($source);
lib/mapper.php
@@ -1,6 +1,4 @@
<?php
require_once(__DIR__.'/../vendor/autoload.php');
use transit_realtime\FeedMessage;
class Mapper {
parse.php
@@ -1,47 +1,14 @@
<?php
require_once(__DIR__.'/vendor/autoload.php');
require_once(__DIR__.'/lib/database.php');
require_once(__DIR__.'/lib/fetch.php');
require_once(__DIR__.'/lib/mapper.php');
require_once(__DIR__.'/lib/vehicle_types.php');
$sources = [
    'bus' => [
        'gtfsrt' => 'ftp://ztp.krakow.pl/VehiclePositions_A.pb',
        'gtfsrt_file' => 'VehiclePositions_A.pb',
        'ttss' => 'http://ttss.mpk.krakow.pl/internetservice/geoserviceDispatcher/services/vehicleinfo/vehicles',
        'ttss_file' => 'vehicles_A.json',
        'database' => 'mapping_A.sqlite3',
        'result' => 'mapping_A.json',
        'mapper' => 'numToTypeB',
    ],
    'tram' => [
        'gtfsrt' => 'ftp://ztp.krakow.pl/VehiclePositions_T.pb',
        'gtfsrt_file' => 'VehiclePositions_T.pb',
        'ttss' => 'http://www.ttss.krakow.pl/internetservice/geoserviceDispatcher/services/vehicleinfo/vehicles',
        'ttss_file' => 'vehicles_T.json',
        'database' => 'mapping_T.sqlite3',
        'result' => 'mapping_T.json',
        'mapper' => 'numToTypeT',
    ],
    'tram2' => [
        'gtfsrt' => 'ftp://ztp.krakow.pl/VehiclePositions.pb',
        'gtfsrt_file' => 'VehiclePositions_T.pb',
        'ttss' => 'http://www.ttss.krakow.pl/internetservice/geoserviceDispatcher/services/vehicleinfo/vehicles',
        'ttss_file' => 'vehicles_T.json',
        'database' => 'mapping_T.sqlite3',
        'result' => 'mapping_T.json',
        'mapper' => 'numToTypeT',
    ],
];
require_once(__DIR__.'/config.php');
foreach($sources as $name => $source) {
    $logger = new Monolog\Logger('fetch_'.$name);
    try {
        foreach(['gtfsrt_file', 'ttss_file', 'database', 'result'] as $field) {
            $source[$field] = __DIR__.'/data/'.$source[$field];
        }
        $source['result_temp'] = $source['result'].'.tmp';
        $logger->info('Fetching '.$name.' position data from FTP...');
        $updated = ftp_fetch_if_newer($source['gtfsrt'], $source['gtfsrt_file']);
        if(!$updated) {