Страница 2 из 38

Re: Календарь/менеджер задач

Добавлено: Пт дек 26, 2014 2:06 pm
Dark_Veter
Можно попробовать парсить производственный календарь (например http://www.superjob.ru/proizvodstvennyj_kalendar/2014/), и тогда уже определять выходной день или рабочий. Давно уже думаю об этом, но пока как-то руки не дошли.

Re: Календарь/менеджер задач

Добавлено: Пт дек 26, 2014 2:30 pm
LocalBrownie
Производственный календарь - это конечно хорошо, но зависимости возникают. Напр. зависимость от наличия интернета на момент парсинга, от авторов сайта (вдруг формат поменяют?). Этот календарь удобен для определения "плавающих" выходных - пасха, например, или перенесённых выходных. А большую часть - "стационарные" :) я бы просто вбил в систему.
Я когда-то давно писал небольшую прогу-скедуллер для запуска разных сервисов в разное время в зависимости от дня недели и от дат. Там всё организовал просто - папка с файлами расписаний для понедельника-воскресенья с именами напр. mon.txt, tue.txt и т.д. и отдельно для дат 1_1.txt, 3_8.txt (т.е первое января, 8-е марта .....)
Тут тоже можно что-то похожее сделать для "стационарных", но проще было-бы дёргать скрипт.

Re: Календарь/менеджер задач

Добавлено: Пт дек 26, 2014 2:32 pm
Dark_Veter
Так парсить можно один раз в год, и допустим просто в календаре праздники обновлять :-). А по поводу изменения формата, это да. Хотя я уже года три пользуюсь этим календарем на работе и формат еще не изменился.

Re: Календарь/менеджер задач

Добавлено: Пт дек 26, 2014 2:45 pm
LocalBrownie
Перенесённые выходные за год обычно никто не определяет, а насчёт формата, то я имел в виду внутренний формат html-ки. Accuweather, например раньше частенько страдал всякими мелкими изменениями, после которых парсер отказывался работать. Тег, например поменяли, а я как-раз на него опирался при поиске.
Сделать определение плавающих и перенесённых было-бы, конечно, просто замечательно, но пока не понятно как.
Посмотрим что Сергей по этому поводу скажет - может хоть стационарные встроенными средствами получится прикрутить...

Re: Календарь/менеджер задач

Добавлено: Пт дек 26, 2014 2:51 pm
Dark_Veter
Так я насколько знаю, производственный календарь составляется на год вперед, вот сейчас например за 2015 год доступен уже. Хотя может я и ошибаюсь. Но допустим даже раз в неделю парсить можно, или раз в день. А по поводу формата я понял, я и говорю о том, что он у меня уже на работе года 3 на атс парситься при звонке, для определения рабочего дня.

Re: Календарь/менеджер задач

Добавлено: Пт дек 26, 2014 3:04 pm
LocalBrownie
О, действительно, всё уже расписано наперед, даже переносы! Надо парсер делать! :)

Re: Календарь/менеджер задач

Добавлено: Пт дек 26, 2014 4:28 pm
Dark_Veter
Примерно так можно распарсить, может кто исправит, написал на скорую руку.

Код: Выделить всё

$year = date('Y');
$month = getMonthName();
$day = date('d');

$url = 'http://www.superjob.ru/proizvodstvennyj_kalendar/' . $year . '/';

$result = file_get_contents($url);

preg_match_all('/<td class="pk_container">(.*)<\/td>/isU', $result, $matches, PREG_PATTERN_ORDER);

foreach ($matches[1] as $value) {
    if (strripos($value, '<div class="pk_header">' . $month . '</div>')) {
            break;
    }
}

preg_match_all('/<div class="(.?)">' . $day . '<\/div>/isU', $value, $matches, PREG_PATTERN_ORDER);

if ($matches[1][0] == '') {
    print_r('Рабочий');
}
elseif ($matches[1][0] == 'pk_holiday pie') {
    print_r('Выходной');
}
elseif ($matches[1][0] == 'pk_preholiday pie') {
    print_r('Предпраздничный');
}


function getMonthName() {
    $mN = date('m');

    $monthAr = array(
        1 => 'Январь',
        2 => 'Февраль',
        3 => 'Март',
        4 => 'Апрель',
        5 => 'Май',
        6 => 'Июнь',
        7 => 'Июль',
        8 => 'Август',
        9 => 'Сентябрь',
        10 => 'Октябрь',
        11 => 'Ноябрь',
        12 => 'Декабрь'
    );

    return $monthAr[(int) $mN];
}

Re: Календарь/менеджер задач

Добавлено: Вс дек 28, 2014 5:43 pm
Ivan
Я скоро выложу синхронизатор гугл календаря. Прелесть его в том что можно подключать любой сторонний календарь разных празников стран итд. Там есть и производственный.
Причем формат там один и Апи гугловское. Если что то поменяют то нужно заменить только библиотеку

Re: Календарь/менеджер задач

Добавлено: Вс дек 28, 2014 5:53 pm
jeks0n
Ivan писал(а):Я скоро выложу синхронизатор гугл календаря.
ждем... очень надо )

Re: Календарь/менеджер задач

Добавлено: Вс дек 28, 2014 5:55 pm
Ivan
Это скорей будет импорт. Еще в календаре есть категории но они не выводятся. Их какраз и буду использовать для разных календарей. Еще хочется более красивый и функциональный вывод. Чего сейчас нет :(