Как стать автором
Обновить

Смешав Twitter + Movie мы получем TwiMov

Время на прочтение4 мин
Количество просмотров555
Хотелось бы в этом небольшом тексте рассказать о том как зародилась идея, как рождался код и что имеем на данный момент на моём проекте TwiMov.

Я с детства любил кино, этот сказочный и фантастический мир, где полно совершенно нереальных вещей. Мир не ограниченный ничем, только фантазией автора. Мир который заставляет сопереживать, сочувствовать, понимать. Кино это не настоящая жизнь, это и есть виртуальная реальность.

Так как иногда мне просто хочется, что-то сказать о фильме который я посмотрел, например нападает на меня какое графоманство, что аж не могу в себе это держать и нужно обязательно вылить это на клавиатуре, это как памятка для себя на будущее и еще раз возможность проанализировать фильм, я сажусь за компьютер и пишу рецензию. Удачная она получится или не очень мне не известно и мало волнительно, правило 80/20 всегда в уме. Но хорошие, четкие рецензии с большим количеством мыслей, идей и анализа это удел профессиональных авторов и журналистов, к радости или сожалению я ни один из них. Потому в какой-то момент по одному из топиков на нашем уфимском рок-форуме я понял, что люди не всегда готовы писать крупные рецензии, зато с охотностью вставляют свои «пять копеек». Ну а благо я стараюсь следить за всяческими тендециями в сети, хотя с первого раза и не понял к чему мне Twitter, то в этот раз он с точностью подходил к моим задачам!

Идея.
Идею я увидел сразу, прозрачно и запросто.
Есть к примеру некий сайт на нём публикуются краткие заметки от разных пользователей по разным фильмам. Заметки группируются по названию фильма. Короткие и лаконичные как перышки воробья. Так как всё хотелось завязать на независимые клиенты, очереди и доставку, то выбрал сразу Twitter, день прочтения документации по API позволил сказать, что всё это возможно и без особых проблем.
Был зарегистрирован некий бот @twimov, который пока молчун, но уже скоро тоже заговорит :) Так же ряд доменов, среди которых основной это www.TwiMov.ru. И работа закипела.

twimov
Кодирование.
Задача кода была разделена на 3 составляющих:
1. Бот, забирающий в определенный промежуток времени ленту обращений к нему в Твиттере, проверяющий и обрабатывающий сообщения
2. Фронтэнд, вывод рецензий, фильмов, информации о пользователях
3. Администрирование и контроль

1. Бот. Казалось бы четко и логично. Но с чего это я решил делать его на Perl, до сих пор не пойму, взял LWP, DBI::MYSQL, IMAGE::MAGICK и пошёл делать… Да вот как-то всё туго и туго, то авторизация отваливается на LWP, ставить модули специально для Twitter'а не было желания, так как я уже представлял, сколько это кода например на PHP. Странно, но эта задача для меня перелилась в полный уход в PHP.
Сказано, сделано. За день переписан код в «чистый» PHP, то всё своё, ну может кроме PDO. Написан удобный класс для запросов к Twitter'у, работает через стандартные функции запроса файлов, если allow_url_open включен, если нет через CURL.
Написан класс для парсинга Твиттер ленты, то, что сразу был намек на универсальность класса помог мне быстро создать второй объект, который парсит еще и приватную ленту сообщений на наличие рецензий.
Именно БОТ как таковой и есть сердце и ядро заполнения, он развивался всеми идеями которые я считал приемлемы в нашем случае, например:
— кэширование аватар пользователей, чтобы в какой-то момент не потерять их и связь с Твиттером.
— поиск обложки фильма с помощью Google и так же кэширование её на свой сервер с коррекцией размеров (за это спасибо PHPThumb)
— поиск так же в Google трейлера фильма
Все эти пункты были выполнены в целом на 5, циклично и не всё сразу, а в процессе работы, но я остался доволен и даже сейчас есть еще идеи, чтобы и как помочь себе в автоматизации.

2. Фронтэнд. Вывод это было самое простое. Я не стал тянуть за собой какой-либо старый багаж библиотек или модулей. Взял чистый фреймворк CodeIgniter (извините, на «лапше» писать уже жалко времени), расширил его рядом своих классов на Модель, на Фронт контроллер и Административный контроллер, чтобы было удобнее и проще.
Макет дизайна я даже не рисовал, просто взял свои любимые мрачно-готически-эмо цвета и в css набросал, то как я примерно хочу видеть сайт. Дизайн пока оставлен на потом, благо архитектура MVС позволит мне изменить его моментально на всём сайте. Есть ряд «фишек» и моих личных правил по поводу расширения и написания кода под CodeIgniter, которые я взял для себя из Ruby on Rails, в целом это как именование таблиц, функций, расширение модели, автозагрузка и инициализация оных. Если кому-то будет интересно готов поделиться и описать их в очередной статье, я не жадный, авось кому и пригодится.

3. Администрирование. Всё опять же на базе CodeIgniter, маленькая авторизация:
вход

Ну тут тоже без особых прикрас, UI дизайнер из меня никакой, потому я всегда делаю как удобно мне любимому и на сколько быстро я буду управляться с контентом сам, так как единственный пока администратор сайта. Но уже ряд фишек для себя наметил.

Сразу же определил, что и как я хочу администрировать.

Это рецензии по отдельности всех пользователей, с листалкой по странице и в будущем будет внутренний поиск.
список рецензий

редактор рецензий

Это управление фильмами, рядом с каждым фильмом мы наблюдаем его информацию и состояние заполненности обложки, видео-ролика, текстового описания с помощью иконок.
список фильмов

И редактор фильмов. На нём бы я хотел чуток остановиться.
Технически всё просто, бот иногда может ошибиться, как и Google не редкость, потому у Администратора должна быть возможность самостоятельно исправить название ленты, так же «перезалить» новую обложку фильма и возможно выбрать новый видео файл трейлера для ленты. Разумеется есть возможность самостоятельно указывать адрес изобращения и ролика, но в основном я пытаюсь по ряду ключевых слов, опять же спросить Google о их наличии, опять же если кому интересно как работать с поиском в Google, спрашивайте, поставлю себе заметку на новый материал. А дальше дело человека, посмотрел, выбрал, указал. Кстати, указывается через AJAX, чтобы не перегружать столь большие массивы данных. Чтобы не писать свою обертку вокруг этого всего я обычным делом взял JQuery, немного не привычно с ним работать после Prototype, но богатство плагинов и расширений всё же вынудило перейти на эту JS библиотеку. Ответы сервер как обычно отдаёт в JSON, мне так удобнее.
редактор фильмов

И разумеется список пользователей так же с листалкой и в будущем с поиском
список пользователей
на данный момент, чтобы не вторгаться в приватность пользователей их невозможно редактировать, они всегда остаются вместе с их аватарами на сайте, но есть возможность БАНИТЬ, возможно на столько суровые меры могут пригодиться в борьбе со спамерами и флудерастами.

Ну вот в целом и всё, а теперь просто присоединяйтесь к www.twitter.com/twimov и пишите ему в таком формате

@twimov Название фильма+Ваше описание этого супер фильма!

P.S. Спасибо за инвайт и надеюсь модераторы перенесут в блог «Стартап».
P.P.S. Спасибо за карму, перенес в «Я пиарюсь»
Теги:
Хабы:
Всего голосов 33: ↑24 и ↓9+15
Комментарии24

Публикации