Хорошо, вот сделка. Я и некоторые друзья делаем подкаст (уже более 4-х лет), и в апреле мы повторно запустили сайт, который включал новый Backend. Поскольку у меня было всего 2 недели, чтобы все заработало, я решил создать что-то с нуля, чтобы все соответствовало нашим потребностям. Все это было написано на Python на основе mod_python.
В настоящее время у меня не так уж много работы, поэтому я подумал о рефакторинге кода (поскольку код, который вы пишете за 2 недели, не самый чистый, как вы можете себе представить), я пришел к мысли, что могу основать это на CMS.
Мне понадобилось несколько минут, чтобы написать модель для всего этого, но вот она:
Все
- Создать по
- Создать в
- Под редакцией
- Отредактировано в
Пользователи
- Usermame
- Пароль
- REALNAME
- Администратор (True / False)
- Модератор (True / False)
- Профиль виден (True / False)
- Картинка профиля
- Текст профиля
Теги (принадлежат_ человеку_ постам)
Сообщений (has_many: файлы,: комментарии,: теги)
- Название
- Заголовок канала
- EpisodeNumber
- Тип (Podcast / Новости)
- Дата
- Изображение
- Комментарии (Open / Closed / Hidden)
- State (Public / Авто / Hidden)
- Текст
- Files
- Метки
Файлы (принадлежащие_мани: сообщения)
- Файл
- Размер
- Продолжительность (Для определения длины файлов mp3 / mp4 / m4v необходимы библиотеки)
Комментарии (принадлежат_ сообщениям)
- Сообщение
- Пользователь (если размещен подкастером, поэтому мы можем выделить комментарий и т. Д.)
- Дата
- Hidden (True / False)
- Имя * * 1092
- E-mail
- IP
- Текст
Страницы
Хорошо, все вышеперечисленное довольно просто, только получение продолжительности mp3 и т. Д. Может быть как-то хлопотно.
Теперь самая большая проблема - отслеживание загрузок.
Для этого нужны пользовательские таблицы с именем Year_Month в следующем формате:
- строки с: fileID all, itunes, feed, прочее и т. д.
При каждой загрузке мы создаем новые таблицы и строки по мере необходимости.
Часть получения информации и ее преобразования в диаграммы довольно сложна.
Выбор ...
Итак, я взглянул на Drupal, Django и Ruby on Rails.
Drupal - это PHP ... ну, у меня нет проблем с PHP, главный вопрос здесь - как реализовать проверку продолжительности для mp3.
Django - это Python, так как я тоже писал текущий сайт на python, многие вопросы отпали.
Ruby on Rails, кажется, очень хорош для кикстарт-разработки (я люблю Railscasts), к сожалению, попытка разработать Demo с Aptana RadRails эпически провалилась до трассы стека в 200 строк. Так как я ничего не делал с Руби, прежде чем я остановился там.
Я надеюсь, что некоторые из вас, люди, могут помочь мне с выбором здесь, так как вы, возможно, уже имеете опыт работы с Drupal / Django / Ruby on Rails, которого у меня нет, и я действительно ненавижу его начинать заново после того, как я на полпути, хотя проект, только потому, что есть небольшая вещь, которая не может быть реализована с помощью технологии XYZ.