www.TwiMov.ru как это всё случилось?!

1
  • написал: MpaK
  • 118
Хотелось бы в этом небольшом тексте рассказать о том как зародилась идея, как рождался код и что имеем на данный момент на моём проекте 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 Название фильма+Ваше описание этого супер фильма!


Удачи вам и с приближающимся Старым Новым! ;-)

7 комментариев

avatar
  • swamp
  • 0
хотел спросить — а только по фильмам будет или можно будет писать о сериалах?
avatar
  • MpaK
  • 0
Сериалы, хм, прикольно, почему бы и нет, не вопрос.
avatar
  • bald1412
  • 0
Жаль сейчас последний месяц ничего не смотрю — просто нет с собой фильмов :(((

и еще вопрос: насколько критичны пробелы:

@twimov Царь+унылый высер коверкающий российскую историю
@twimov Царь + унылый высер коверкающий российскую историю
D twimov Царь+ унылый высер коверкающий российскую историю
D twimov Царь +унылый высер коверкающий российскую историю

это идентичный эффект даст?

и еще, если в названии присутствует "+"
«Ромео + Джульета» и т.д.
как вводить такие названия? дублировать плюс "++"? или "/+" или еще как?

avatar
  • MpaK
  • 0
Зря ты фильмов не взял, в след. раз я тебе спецом со своих террабайтов вылью :)))

По пробелам все будет нормально во всех 4х вариантах…
По плюсу да :) не поймёт, надо видимо писать «Ромео плюс Джульета+мои слова дальше»
avatar
  • eye-ru
  • 0
Классная идея!

Неплохо было бы:
добавить возможность оценки микрорецензии (рейтинг);
дернуть рейтинг фильмов с iMDB или русского аналога.
avatar
  • MpaK
  • 0
:) мысли читаешь, оценки уже в разработке, всякие +1 и -1

рейтинг можно дергать, только зачем, imdb порой такую чушь выдают… а в российских аналогов с доступным веб-сервисом я даже не наблюдал, увы :(
avatar
  • eye-ru
  • 0
рейтинг с iMDB в целом релевантен.
Отсутствие API у российских сервисов наверное общая беда, хотя Яндекс неплохо так ваяет их для собственных сервисов.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.