8000 Changes model logic · mauler/django-elastic-transcoder@dbb0eaa · GitHub
[go: up one dir, main page]

Skip to content

Commit dbb0eaa

Browse files
committed
Changes model logic
1 parent 5750ed9 commit dbb0eaa

File tree

5 files changed

+56
-65
lines changed

5 files changed

+56
-65
lines changed

dj_elastictranscoder/admin.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
from django.contrib import admin
2-
from .models import EncodeJob, Upload, Job, Output
3-
4-
5-
class OutputInline(admin.StackedInline):
6-
model = Output
2+
from .models import EncodeJob, Upload, Job
73

84

95
class JobAdmin(admin.ModelAdmin):
10-
inlines = (OutputInline, )
6+
pass
117

128

139
admin.site.register(Job, JobAdmin)
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from django.core.management.base import BaseCommand
2+
3+
from dj_elastictranscoder.models import Job
4+
from dj_elastictranscoder.utils import et_create_job, et_read_job
5+
6+
7+
class Command(BaseCommand):
8+
help = "Sends and receive jobs"
9+
10+
def handle(self, *args, **options):
11+
for job in Job.objects.filter(et_job_id=""):
12+
et_create_job(job)
13+
14+
for job in Job.objects.filter(output=""):
15+
et_read_job(job)
Lines changed: 10 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,43 +13,33 @@ def forwards(self, orm):
1313
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
1414
('pipeline_id', self.gf('django.db.models.fields.CharField')(default='1402976603358-rwcmfz', max_length=32)),
1515
('upload', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['dj_elastictranscoder.Upload'])),
16+
('preset', self.gf('django.db.models.fields.CharField')(default='1351620000001-100070', max_length=20)),
1617
('et_job_id', self.gf('django.db.models.fields.CharField')(max_length=100, blank=True)),
18+
('output', self.gf('django.db.models.fields.files.FileField')(max_length=100, blank=True)),
1719
))
1820
db.send_create_signal(u'dj_elastictranscoder', ['Job'])
1921

22+
# Adding unique constraint on 'Job', fields ['upload', 'preset']
23+
db.create_unique(u'dj_elastictranscoder_job', ['upload_id', 'preset'])
24+
2025
# Adding model 'Upload'
2126
db.create_table(u'dj_elastictranscoder_upload', (
2227
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
2328
('video', self.gf('django.db.models.fields.files.FileField')(max_length=100)),
2429
))
2530
db.send_create_signal(u'dj_elastictranscoder', ['Upload'])
2631

27-
# Adding model 'Output'
28-
db.create_table(u'dj_elastictranscoder_output', (
29-
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
30-
('job', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['dj_elastictranscoder.Job'])),
31-
('preset', self.gf('django.db.models.fields.CharField')(max_length=20)),
32-
('video', self.gf('django.db.models.fields.files.FileField')(max_length=100, blank=True)),
33-
))
34-
db.send_create_signal(u'dj_elastictranscoder', ['Output'])
35-
36-
# Adding unique constraint on 'Output', fields ['job', 'preset']
37-
db.create_unique(u'dj_elastictranscoder_output', ['job_id', 'preset'])
38-
3932

4033
def backwards(self, orm):
41-
# Removing unique constraint on 'Output', fields ['job', 'preset']
42-
db.delete_unique(u'dj_elastictranscoder_output', ['job_id', 'preset'])
34+
# Removing unique constraint on 'Job', fields ['upload', 'preset']
35+
db.delete_unique(u'dj_elastictranscoder_job', ['upload_id', 'preset'])
4336

4437
# Deleting model 'Job'
4538
db.delete_table(u'dj_elastictranscoder_job')
4639

4740
# Deleting model 'Upload'
4841
db.delete_table(u'dj_elastictranscoder_upload')
4942

50-
# Deleting model 'Output'
51-
db.delete_table(u'dj_elastictranscoder_output')
52-
5343

5444
models = {
5545
u'contenttypes.contenttype': {
@@ -70,19 +60,14 @@ def backwards(self, orm):
7060
'state': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'db_index': 'True'})
7161
},
7262
u'dj_elastictranscoder.job': {
73-
'Meta': {'object_name': 'Job'},
63+
'Meta': {'unique_together': "(('upload', 'preset'),)", 'object_name': 'Job'},
7464
'et_job_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
7565
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
66+
'output': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
7667
'pipeline_id': ('django.db.models.fields.CharField', [], {'default': "'1402976603358-rwcmfz'", 'max_length': '32'}),
68+
'preset': ('django.db.models.fields.CharField', [], {'default': "'1351620000001-100070'", 'max_length': '20'}),
7769
'upload': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['dj_elastictranscoder.Upload']"})
7870
},
79-
u'dj_elastictranscoder.output': {
80-
'Meta': {'unique_together': "(('job', 'preset'),)", 'object_name': 'Output'},
81-
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
82-
'job': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['dj_elastictranscoder.Job']"}),
83-
'preset': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
84-
'video': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'})
85-
},
8671
u'dj_elastictranscoder.upload': {
8772
'Meta': {'object_name': 'Upload'},
8873
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),

dj_elastictranscoder/models.py

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,47 +17,46 @@ def __unicode__(self):
1717
return self.video.name
1818

1919

20-
class Output(models.Model):
21-
PRESET = (
22-
('1351620000001-100070', 'Web: Facebook, SmugMug, Vimeo, YouTube'),
23-
)
24-
25-
job = models.ForeignKey("Job")
26-
preset = models.CharField(max_length=20, choices=PRESET)
27-
video = models.FileField(
28-
blank=True,
29-
storage=storage,
30-
upload_to="videos/output",
31-
)
32-
33-
class Meta:
34-
unique_together = ('job', 'preset', )
35-
36-
def __unicode__(self):
37-
if self.video:
38-
return u"%s as %s DONE" % (self.job, self.get_preset_display())
39-
return u"%s as %s" % (self.job, self.get_preset_display())
40-
41-
4220
class Job(models.Model):
4321
PIPELINE_ID = (
4422
('1402976603358-rwcmfz', 'Mediacenter'),
4523
)
4624

25+
PRESET = (
26+
('1351620000001-100070', 'Web: Facebook, SmugMug, Vimeo, YouTube'),
27+
)
28+
4729
pipeline_id = models.CharField(
4830
choices=PIPELINE_ID,
4931
default=PIPELINE_ID[0][0],
5032
max_length=32)
5133

5234
upload = models.ForeignKey("Upload")
5335

36+
preset = models.CharField(
37+
choices=PRESET,
38+
default=PRESET[0][0],
39+
max_length=20,
40+
)
41+
5442
et_job_id = models.CharField(
5543
blank=True,
5644
max_length=100,
5745
)
5846

47+
output = models.FileField(
48+
blank=True,
49+
storage=storage,
50+
upload_to="videos/output",
51+
)
52+
53+
class Meta:
54+
unique_together = ("upload", "preset", )
55+
5956
def __unicode__(self):
60-
return u"%s on %s" % (self.upload, self.pipeline_id)
57+
if self.output:
58+
return u"%s as %s DONE" % (self.upload, self.get_preset_display())
59+
return u"%s as %s" % (self.upload, self.get_preset_display())
6160

6261

6362
class EncodeJob(models.Model):

dj_elastictranscoder/utils.py

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,11 @@
44

55

66
def et_create_job(job):
7-
qs = job.output_set.filter(video="")
8-
if qs.exists():
9-
outputs = []
10-
for output in qs:
11-
outputs.append({
12-
'Key': 'outputs/%s.mp4' % slugify(unicode(output)),
13-
'PresetId': output.preset
14-
})
7+
if not job.output:
8+
outputs = [{
9+
'Key': 'outputs/%s.mp4' % slugify(unicode(job)),
10+
'PresetId': job.preset
11+
}]
1512

1613
transcoder = Transcoder(job.pipeline_id)
1714
transcoder.encode({'Key': job.upload.video.name}, outputs)
@@ -25,6 +22,5 @@ def et_read_job(job):
2522
data = et.read_job(job.et_job_id)
2623
for output in data['Job']['Outputs']:
2724
if output['Status'] == 'Complete':
28-
obj = job.output_set.get(preset=output['PresetId'])
29-
obj.video = output['Key']
30-
obj.save(update_fields=['video'])
25+
job.output = output['Key']
26+
job.save(update_fields=['output'])

0 commit comments

Comments
 (0)
0