<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Symfony\Component\DomCrawler\Crawler;

class GalleryController extends Controller
{

    private $url = 'http://www.kansk-tc.ru';


    /**
     * Метод для получения списка альбомов
     * @return \Illuminate\Http\JsonResponse
     */

    public function albums()
    {

        /*
         * Получаем HTML со страницы альбомов
         */

        $html = file_get_contents($this->url . '/zhizn_kolledzha/fotogalereya');

        /*
         * Создаем экземпляр класса Crawler для дальнейшего парсинга данных
         */

        $crawler = new Crawler($html);

        /*
         * Переменная для хранения списка альбомов
         */

        $albums_list = [];

        /*
         * Перебираем все найденые альбомы и упаковываем в $albums_list
         * Примечание: из-за того, что html приходит в кривом виде, приходится узнавать кол-во альбомов по количеству заголовков
         * каждого альбома и уже потом, зная номер итерации, обращаться к нужному элементу и вытаскивать информацию
         */

        for ($i = 0; $i < count($crawler->filter('.newgallery')->filter('.gallery_cat')); $i++) {
            $albums_list[] = [
                "id" => explode('?cid=', $crawler->filter('.newgallery')->filter('.gallery_cat')->eq($i)->attr('href'))[1] * 1,
                "title" => $crawler->filter('.newgallery')->filter('.title')->eq($i)->text(),
                "date" => $crawler->filter('.newgallery')->filter('.date')->eq($i)->text(),
                "preview" => $this->url . $crawler->filter('.newgallery')->filter('.gallery_cat')->eq($i)->filter('img')->attr('src')
            ];
        }

        /*
         * Возвращаем список альбомов в JSON массиве
         */

        return response()->json($albums_list);

    }

    public function album($id)
    {
        /*
         * Получаем HTML со страницы альбома
         */

        $html = file_get_contents($this->url . '/zhizn_kolledzha/fotogalereya?cid=' . $id);

        /*
         * Создаем экземпляр класса Crawler для дальнейшего парсинга данных
         */

        $crawler = new Crawler($html);

        /*
         * Переменная для хранения списка фотографий
         */

        $photos = [];

        /*
         * Перебираем список фотографий и упаковывем в $photos
         */

        for ($i = 0; $i < count($crawler->filter('.newgalleryphoto')); $i++) {
            $photos[] = $this->url . $crawler->filter('.newgalleryphoto')->eq($i)->attr('href');
        }

        /*
         * Возвращаем ответ в виде JSON
         */

        return response()->json($photos);

    }

}

