Hi - need some suggestions.

I am trying to put together an app that allows users to submit links
to videos at popular video sharing sites (e.g., youtube, vimeo, etc)
-- the links get submitted, data about the video (title, description,
play count, etc) is collected from the respective site and populates
model fields, and the video entry is queued for review.

Caveats: I would like to keep the original "synced" data in its own
field and the "approved" data (as edited) in separate field.  I
imagine that the data first gets brought into the "edit" field, admin
may make changes and save, but the "originating" data will remain
separate and continue to be updated (synced).

This means I need at least

I am stuck, though, on the most appropriate/logical approach to this
app.  Some approaches I've considered.

[1] My first thought is to create base model "Video" (with the main
fields) and then create child models like YoutubeVideo and VimeoVideo
and BlipVideo ... when the user submits a url, would do a regex on it
in the view, and send it through the appropriate child class.  I could
then grab the base Video model in my views (not having to distinguish
the type of video) and use a "leaf" technique (eg,
http://www.djangosnippets.org/snippets/1031/) to run the child's
"sync" or "update" command.  CONS: seems tacky and not easy to build
on.  The leaf technique isn't working when I override the save()
function in leaf models.

[2] Perhaps create only a single model and then create separate
classes/functions to handle the the syncing of data based on the
URLField data ... so, perhaps when Video.update() is called, it would
run the logic then to see what kind of url it has, and how to update
it.  CONS: I thought maybe I could just create a ForeignKey field to a
non-model group of classes with common functions (update, sync,
etc) ... but I am not sure how, or if, I can do that.

[3] Outsourcing.

Hope this makes sense and folks have some feedback about how they
might approach this.  I would like this to be easily expandable -- for
example, add YouTube and Vimeo support to start, and easily add other
sites without having to "hack" it.

I know this is a huge question, but am interested in your "Design
Approach" thoughts ...

Thanks,
Damon
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to