Подключите нашего Telegram-бота для уведомлений о новых проектах

Заказ закрыт
CMS MODX Revo: создание снипета + крон-скрипт

Разместить заказ
v
Заказчик
Отзывы фрилансеров: + 4 - 0
Зарегистрирован на сайте 9 лет и 11 месяцев
Бюджет: 15 000 руб
183.91 $ — 160.99 €
КОГО Я ИЩУ
<b>[b]222[/b]</b>
Здравствуйте. Разыскивается человек, нежно любящий CMS MODx Revolution, PHP и красоту в коде.

ЗАДАЧА

I. Создать контекст

Необходимо создать в админке MODx новый контекст Source. Далее мы будем работать с ним.

II. Обработка RSS лент

Есть порядка 20 RSS лент. По сложившейся традиции, они оформлены как попало. Необходимо написать снипет, который будет читать эти ленты и приводить их к единому виду.

Первое, что будет нужно сделать – проверить кодировку. Некоторые RSS приходят в кодировке 1251, некоторые заявлены как UTF 8, но мы понимаем, что «СЂСѓРєС†РёРё древнего» (цитата дословная, стилистика и пунктуация автора сохранены).

Из каждой RSS ленты будет нужно получить следующую информацию:

1. Заголовок записи.
2. Дата публикации.
3. Ссылка на публикацию.
4. Краткое описание публикации.

В некоторых лентах дополнительно встречаются данные, которые также надо будет получить, если они есть:

1. Категория (тематика) публикации.
2. Автор публикации.
3. Ссылка на изображение.
4. Полный текст публикации.

Со ссылками на изображения и полными текстами публикаций возникнут сложности.

Изображения.

Где то ссылка на изображение оформлена как <enclosure url="_url_" type="image/_ext_"/>, где-то вставлена в тег description через ![CDATA[ _HTML_tag_ ]]>, где-то она в теге content. Бывает, что ссылка на изображение в enclosure дублируется в description. Будет необходимо:

1. Если ссылка есть в теге enclosure, берем ее url.
2. Если ссылка есть в теге description, берем ее src.
3. Если ссылка есть и в description, и в enclosure, сравниваем src и url соответственно. Если дубль – удаляем повтор.
4. Далее парсим содержимое content, проверяем на наличие ссылок. Добавляем в массив.
5. Скачиваем эти изображения в папку asseets/images-store, присваивая им md5 имена. В БД сохраняем массив из имен изображений (имя + расширение) или false.

Content.

В content встречается все, что угодно: куски разметки и даже JS (через CDATA). Мы должны привнести гармонию в мир и выпилить это безобразие, оставляя только спецсимволы HTML (  &mdash « и т.п.).

Итогом этого этапа работы должны стать очищенные от мусора строковые данные или прямые ссылки.

III. Запись в БД.

Все данные из второго пункта необходимо положить в базу данных. Предварительно важно проверить, не лежат ли уже там эти самые данные.

IV. CRON

Необходимо написать CRON скрипт, который будет выполнять пункты 2 и 3 с периодичностью раз в 30 минут. Если у вас есть альтернативна крону, которая по каким-то причинам видится вам более разумной (стабильность, потребление ресурсов и проч.), я буду рад внять доводам профессионала.

V. API

Как вы поняли, создаем что-то вроде агрегатора новостей. Фронт-енд будет на AngularJS, для которого нужен API. Хранить мы его буем в созданном на первом шаге контексте. Мне будет нужно по запросу name.domain/source/somena... получить JSON с массивом объектов, ранее записанных в БД.

VI. Научить дурака

Будет нужна передача знаний. Я хотел бы понять, как у вас все работает, что нужно будет сделать, если мне понадобится добавить или удалить RSS поток.

ЛИРИКА

Я совсем не против использования сторонник библиотек, главное – чтобы они были с соответствующими лицензиями (MIT, Apache, любая халява). Короче, не воруем и не копипастим.

Если вы сочтете свой снипет настолько хорошим, что захотите им похвастаться и опубликовать на ресурсах modx.com – я буду рад. Только затрите упоминания обо мне :-)

ТЕХНИЧЕСКИЕ ИСХОДНЫЕ ДАННЫЕ

MODx Revo
Сервер VPS на Рег.ру
Процессор 2x2000МГц
Память 1024МБ
OS centos6_php_selector-x86_64_isp_lite5
ISP manager
MySQL 5.1.73-3.el6_5
PHP 5.3.3-40.el6_6
Протокол https

ОПЛАТА

1. Только безопасная сделка.
2. Демпингующие будут разочарованы безразличием.
3. Если хотите обсудить стоимость проекта, пишите.

О СРОКАХ

Сроки не поджимают. Делаем на совесть, а не на скорость.

С МЕНЯ

Доступ к VPS.
Доступ к админке.
Оплата.
Хороший отзыв за хорошую работу.

С ВАС В ОТКЛИКЕ НА ПРОЕКТ

Цена
Ориентировочный срок выполнения работ
Любые ссылки, которые могут заставить меня хотеть работать только с вами

ССЫЛКИ

Просто собрал, как выглядят айтемы из разных потоков, в одном файле блокнота: yadi.sk/i/FsDA_0tqmBMxN
Разделы:
Опубликован:
12.12.2015 | 20:36 [последние изменения: 11.02.2016 | 19:30]
Заказ находится в архиве
Откликнуться Посмотреть другие заказы

Теги: разработать сайт, создать личный сайт, создать одностраничный сайт, нужно сделать сайт, лучшие разработчики, нужно создать сайт, требуется разработчик

Наши партнеры
Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».