Commit graph

2491 commits

Author SHA1 Message Date
j
7620795862 add update_itemsfolder command 2016-02-20 10:41:22 +00:00
j
0367816257 only crop with 4 crop points 2016-02-20 10:41:22 +00:00
j
1ef547f885 update celery integration 2016-02-20 10:41:22 +00:00
j
f060601d40 django 1.9 returns parsed value not raw data 2016-02-20 15:15:02 +05:30
j
e9bcd19161 fix initdb 2016-02-20 15:15:02 +05:30
j
29c6dc866b fix index 2016-02-20 15:15:02 +05:30
j
7a6515183a add wsgi 2016-02-20 15:15:02 +05:30
j
cc84487193 commit_unless_managed->commit 2016-02-20 15:15:02 +05:30
j
62caf55fe6 stop using RequestContext 2016-02-20 15:15:02 +05:30
j
3f02f6086a fix clip random 2016-02-20 15:15:01 +05:30
j
2fe857d4fd remove optparse 2016-02-20 15:15:01 +05:30
j
4219246909 db migration 2016-02-20 15:15:01 +05:30
j
976860ec30 use django.conf.urls url instead of patterns 2016-02-20 06:00:13 +00:00
j
158c68fbc7 use object class for MetaClip 2016-02-20 05:58:53 +00:00
j
1cc795995d user.get_profile()->user.profile 2016-02-19 22:06:11 +05:30
j
3e8f28ff47 update imports 2016-02-19 22:06:10 +05:30
j
5d63ad1760 default/upload_to=lambda breaks migrations, use functions 2016-02-19 21:59:26 +05:30
j
e22cc432b3 use transaction.atomic 2016-02-19 21:55:09 +05:30
j
e738503380 remove old migrations 2016-02-19 15:17:18 +00:00
j
35bdfba77c fix default values 2016-02-19 19:01:38 +05:30
j
d241b90b63 check data is a dict 2016-02-19 18:46:53 +05:30
j
6b1ce30eb2 from __future__ import print_function 2016-02-18 16:19:26 +05:30
47d8d67c3d Allow 'query' to be omitted from find*() (fixes #2883)
I hit this in findDocuments() so thought I'd fix them all.
2016-02-15 14:58:50 +00:00
j
b121b58a86 support caching local files, lookup by oshash 2016-02-14 00:32:14 +05:30
691b3fa934 Entity: only update annotations when name has changed (fixes #2877)
Just like ace0468 this doesn't exactly fix #2827, but it does reduce the
unnecessary work.
2016-02-05 19:03:16 +05:30
6008f3b44e findEntities: fix negated conditions, fixes #2876 2016-02-05 19:01:30 +05:30
cdaa50c4d3 addAnnotations: report which key is missing in error 2016-02-04 10:38:02 +00:00
729856eb30 Rename getTaskStatus -> taskStatus in API docs (fixes #2859) 2016-02-04 10:38:01 +00:00
j
c7515517da remove persona support 2016-01-12 14:04:34 +05:30
j
face7da3da avoid duplicate users for or queries, fixes #2871 2016-01-12 12:06:12 +05:30
j
f47febb09c joined audio timelines 2015-12-09 18:29:18 +00:00
j
d23a6eb317 fix cuts for multipart videos 2015-12-01 20:11:08 +01:00
j
a919724821 typo 2015-11-29 14:13:44 +01:00
j
f6bfa26ae3 dont count empty annots 2015-11-26 09:21:52 +01:00
j
8f6f39caaf dont include emtpy annotations in srt export 2015-11-20 18:19:55 +01:00
j
2b3853c7aa remove debug 2015-11-18 14:45:31 +01:00
j
e216a7b307 make it easer to copy&paste default values 2015-11-18 14:28:40 +01:00
j
48e1435601 switch to git 2015-11-14 15:22:40 +01:00
j
b7cfcfa182 add some encoding options: crop, trim, aspect 2015-11-12 16:15:02 +00:00
j
310343c81c improve output if config can not be parsed 2015-11-12 13:06:34 +01:00
j
9e88f29126 only loop over annotations without public_id once 2015-11-11 10:39:34 +01:00
j
9b1ed58ff2 only migrate AnnotationSequence if we have items 2015-11-11 09:48:16 +01:00
j
4bdce55364 fix joining audio only timelines 2015-11-02 09:34:41 +01:00
j
eb472b88ae allow annotation import/export on 0x 2015-10-31 13:54:12 +01:00
j
54b7c4be9a update dimensions replacing documents, add modified to image urls to get latest version 2015-10-26 16:10:12 +01:00
j
6f9fb06da3 Replace Document, still some cache issues, fixes #2855 2015-10-25 22:08:13 +01:00
j
21a6007f8c only add video sitemap for films that can be played 2015-10-22 19:40:20 +02:00
j
90d8d46603 update sitemap video namespace 2015-10-22 00:11:44 +02:00
j
86599a4341 Indiancine.ma: new items should be Under Copyright by default not Private 2015-10-21 14:26:13 +02:00
j
f0e3c2775e logg addMedia call 2015-10-20 12:17:04 +02:00
j
d16bbf6ba8 remove facet duplicates 2015-10-12 18:44:20 +01:00
j
c17f0a4376 add new file for r5049 2015-10-12 18:43:41 +01:00
j
aafac3c1d8 only store one item/key/value facet, remove facets with other case 2015-10-12 17:45:08 +02:00
rolux
69254bbe48 changeid can also be list of ids, use text 2015-10-12 15:25:24 +01:00
rolux
4ed2d940cf migrate annotation sequence in item not annotation 2015-10-12 15:24:03 +01:00
j
2e3b61d163 dont fail if files are already gone 2015-10-04 18:17:34 +01:00
j
6f4c010be0 only return layers defined in config 2015-10-04 14:11:39 +01:00
j
be1589569e fix clip index for newly added clips 2015-10-04 11:04:46 +01:00
j
5649892bbd annotation layer flag is boolean 2015-10-04 11:20:45 +02:00
9265b8a53b Clip.save: fetch annotations once, not ~ 2 * n_layers
With 17 layers and 12 clipLayers, this repeated fetching was around 49%
of the cost of this function, which was in turn 94% of the cost of
creating many new annotations with mostly-unique endpoints. This helps a
bit...

If the order of clipLayers is not meant to be significant to sortvalue
(which I assume it is) then this could be simpler.
2015-10-04 11:17:22 +02:00
j
a430c6bdf4 make facets case insensitive 2015-09-25 14:44:02 +01:00
j
1e81dc4fa1 switch 2015-09-24 18:35:13 +01:00
j
79dbeabafc not again 2015-09-24 18:26:59 +01:00
j
eea9321b2e not not not 2015-09-24 18:23:25 +01:00
j
96301d6a9c not 2015-09-24 18:21:01 +01:00
j
f12dfdc4a3 import subtitles if no subtitles exist 2015-09-24 18:16:29 +01:00
j
65fb9ccb6d reduce ffmpeg output 2015-09-16 15:04:44 +01:00
4f064fda76 Make Annotation.public_id non-NULLable (fixes #2829)
This fixes this race:

     request 1                          request 2
     -----------------------------      -------------------------
     addAnnotation(...)
     super(Annotation.self).save()
                                        findAnnotations(...)
                                        returns [{id: null, ...}]
     annotation.public_id = x
     returns {id: x}
2015-09-14 14:18:10 +02:00
eaa07b1ccb ClipManager: match annotation layer case-sensitively (fixes #2832)
The case must be correct anyway for the layer to be found in
settings.CONFIG['layers']. Running this:

    Q(annotation__layer__iexact='foo') &
    Q(annotation__findvalue__icontains='bar')

compiles to

    upper(layer) = upper('foo') and
    ...

which can't use the case-sensitive annotation_annotation_layer index.
This:

    Q(annotation__layer__exact='foo') &
    Q(annotation__findvalue__icontains='bar')

can. (It still can't use the findvalue_like index, though! The other
option is to add indices on upper(layer) and upper(findvalue)
[varchar_pattern_ops].)
2015-09-14 14:13:06 +02:00
da1ad5b9c1 ClipManager.filter_annotations: fix 'opterator' typo (fixes #2832) 2015-09-14 14:11:40 +02:00
8759b569da Cache serialized entities when fetching many annotations
For a scene with ~5600 annotations, of which ~3100 are entities, this
cuts fetching the scene from 12 seconds to 2 seconds.
2015-09-14 14:08:02 +02:00
eebb0b5681 Combine {Item,Clip,edit.Clip}.get_layers()
This has several benefits:

    • Clip.get_layers() (used by smart edits) and Item.get_layers() pick up
    the select_related('user') optimization added for static edits in
    r5007.

    • Static edits and items pick up the optimization from r4941 to select
    annotations once, not once per layer.

Fetching an item with ~1000 annotations took ~1s without this patch,
~0.34s with this patch. Another item with ~6000 annotations took ~11.6s
before, ~8.6s after.

Because this block is moved out to the top:

if user and user.is_anonymous():
user = None

then, for anonymous users,

"editable": false,

is no longer included in the annotations. The old behaviour ended up
including this key in all layers listed before the first private layer
in the config, and leaving it out from later ones. So this new behaviour
is more consistent.
2015-09-14 14:06:43 +02:00
j
2c406a76e0 create trusty container 2015-09-03 19:33:48 +02:00
j
fd2992c588 add option to sort by number of annotations per layer 2015-09-03 00:52:20 +02:00
ace04688f2 Entity.save(): update annotations async (fixes #2827, kinda) 2015-09-02 14:32:16 +02:00
j
41b50ccdb8 add canPlayClips flag to annotation layers and use those layers to limit playback to clips 2015-08-27 11:27:27 +02:00
j
83013bbe5e Update items when entities are renamed (fixes #2825) 2015-08-26 19:42:03 +02:00
j
944fe1a9dd only run migration if we have items 2015-08-07 17:32:17 +02:00
3da3bd37fd addClips: return error if item/in/out missing, not 500 2015-08-07 13:37:56 +02:00
j
819181726a slightly faster json serialization of annotations 2015-08-02 16:22:45 +02:00
f3fdded07d Edit.json: preload annotation users
The expensive part of fetching an edit is JSONifying the clips'
annotations. Profiling showed that the main cost was Annotation.json(),
and within that:

File: /srv/pandora/pandora/annotation/models.py
Function: json at line 216

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
216                                               def json(self, layer=False, keys=None, user=None):
217       632          827      1.3      0.1          j = {
218       632      1048170   1658.5     89.6              'user': self.user.username,
219                                                   }

Obviously this join just moves some of the cost further out, but it
brings my micro-benchmark down from 1.3s to 0.3s.
2015-08-02 16:02:47 +02:00
ab5a20d3a2 Treat findEdits({}) like findEdits({query: {}}) (fixes #2820) 2015-07-22 21:37:55 +02:00
d3c18a5859 editAnnotation: explicitly refuse to change layer, fixes #2818 2015-07-14 10:48:05 +02:00
1ef7101761 annotations: fix 'unkown' typo 2015-07-14 10:47:00 +02:00
j
5e6b054896 extend cookie age if its still used 2015-06-30 20:02:09 +02:00
j
9208e09dd2 sync config documentation 2015-06-26 07:27:56 +00:00
j
1a2f051bdd fix documentation update 2015-06-26 07:27:13 +00:00
j
9758b7d312 fail if entity is unknown 2015-06-24 16:41:49 +02:00
j
ce701d38d0 space 2015-06-24 16:41:11 +02:00
j
adb831ce70 dont turn data into string, fixes #2797 2015-05-28 13:10:39 +02:00
j
5da83f6f6d don't return empty string for undefined values, handle in context browser 2015-05-23 15:11:18 +05:30
j
0504eaf227 audio files should not have aspect ratio 2015-05-23 15:10:24 +05:30
j
9191a9c196 extension should be lowercase 2015-05-23 11:06:22 +02:00
j
27e9bc62fb typo 2015-05-23 14:25:58 +05:30
j
23398c4307 get resolution from videos while uploading and dont return sort value 2015-05-23 14:22:44 +05:30
j
7359a24d78 keep video height if its < profile height 2015-05-22 19:01:05 +05:30
8b0459592c logError: log HTTP_USER_AGENT
include user agent in error text
2015-05-20 12:38:49 +02:00
3ad9d4821b Fix findEntities( ... name == x ... ), fixes #2769 2015-05-20 12:30:31 +02:00
fe7f961ff6 Entity: fix name_find when alternativeNames is non-empty
Previously, given:

    name = "foo"
    alternativeNames = ("bar", "baz")

then:

    name_find = '||foobar||baz||'
2015-05-20 12:16:32 +02:00
b7a83554ab Fix references to findDocument[s] in docstrings 2015-05-20 12:14:21 +02:00