django-restit 4.2.131__py3-none-any.whl → 4.2.132__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-restit
3
- Version: 4.2.131
3
+ Version: 4.2.132
4
4
  Summary: A Rest Framework for DJANGO
5
5
  License: MIT
6
6
  Author: Ian Starnes
@@ -173,7 +173,7 @@ medialib/fixtures/medialib_test_fixture.json,sha256=7M7zvGI2S5G3ENV8OQ3Ks4149lEi
173
173
  medialib/forms.py,sha256=nrE6QTPNPiIeX7Nx4l9DEmAQeQXqFyCg1C3JEDBYJfE,5442
174
174
  medialib/migrations/0001_initial.py,sha256=H3JliH5aw7tiHef8MhrJr_9rGetqgA7UjTF-eKziRSM,20518
175
175
  medialib/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
- medialib/models.py,sha256=XVqqyMeikK5qPGQ_kMsM9H9VcTPko9s3JmTGGfIScvs,53647
176
+ medialib/models.py,sha256=snD9Lyskp6i1YTOcERrclPUPIbINkGOhGOTbDKC8dFk,54791
177
177
  medialib/ocr.py,sha256=zlP7-NBiXhW7jR9pljmEPl5xzLVZpLN5QLAELQgU0Fk,1189
178
178
  medialib/pdf.py,sha256=l28WwM0JKbT9boV-b_9TFh9jhvGcrquR8GqC8wfEaLk,1275
179
179
  medialib/qrcode.py,sha256=vHyA5egXOX70EFiUDgr1njI9zcF6bXQJ_hKAQrppRow,545
@@ -205,7 +205,7 @@ medialib/render/presets/video_still.py,sha256=VSWtr6k3UJta3YdOpEfU9d7p46XKi98aPt
205
205
  medialib/render/presets/video_validate.py,sha256=pC6MzzgVWZKGJj6NkQ8SHcDj8z45kxHMuwxK82f8vIU,3228
206
206
  medialib/render/presets/websnap.py,sha256=RSxJ7T2ICU_KQn48yHWLj4qXCABTC7uVIPwe-z_CSkI,863
207
207
  medialib/render/presets/youtube.py,sha256=M4bTZju1u7rrvwLOG89cNUaelHUtnRFss7hggvZCAuE,2282
208
- medialib/render/render_utils.py,sha256=ld0hMfiAWSqC8Nhi408ZPSjKHWYuQXtPdjbeBfav41o,16451
208
+ medialib/render/render_utils.py,sha256=kJlluBmkXoABQqZ6cJFQ3u07cl5ela-Gvu6w96hd6uA,16460
209
209
  medialib/render/schedule.py,sha256=iDSekfsY31SEXF-MR-YdJ9-a3UJ3SoJsZJpiEcbiNZA,370
210
210
  medialib/rpc/__init__.py,sha256=K84yMB6sUr7zTeECxca-_2jyHiUGCHTM-XYmJK6jQCo,82
211
211
  medialib/rpc/legacy.py,sha256=KTNmNJIxfFkZfAj0LXx9-e8bJonOfCoNE0-c_cugsNc,37925
@@ -376,7 +376,7 @@ pushit/utils.py,sha256=IeTCGa-164nmB1jIsK1lu1O1QzUhS3BKfuXHGjCW-ck,2121
376
376
  rest/.gitignore,sha256=TbEvWRMnAiajCTOdhiNrd9eeCAaIjRp9PRjE_VkMM5g,118
377
377
  rest/README.md,sha256=V3ETc-cJu8PZIbKr9xSe_pA4JEUpC8Dhw4bQeVCDJPw,5460
378
378
  rest/RemoteEvents.py,sha256=nL46U7AuxIrlw2JunphR1tsXyqi-ep_gD9CYGpYbNgE,72
379
- rest/__init__.py,sha256=NmUDpJwDRPihaYYG56xnn8xE0-EGE9ysndPTc4P9bDQ,122
379
+ rest/__init__.py,sha256=-RkqJ1C1aVmCpKUVK79846yJzPNqTf7-orNjsU35Rjo,122
380
380
  rest/arc4.py,sha256=y644IbF1ec--e4cUJ3KEYsewTCITK0gmlwa5mJruFC0,1967
381
381
  rest/cache.py,sha256=1Qg0rkaCJCaVP0-l5hZg2CIblTdeBSlj_0fP6vlKUpU,83
382
382
  rest/crypto/__init__.py,sha256=Tl0U11rgj1eBYqd6OXJ2_XSdNLumW_JkBZnaJqI6Ldw,72
@@ -492,7 +492,7 @@ wiki/renderers/__init__.py,sha256=lLEoJvjU3ezXwBGcjleKk_kMyNeMD9MpfBlEiKayEiM,46
492
492
  wiki/renderers/mistune/__init__.py,sha256=baClLWELOwy5n8UUFi7qmoFBU6QaeegD-wRNZ7fIW_w,84
493
493
  wiki/renderers/mistune/highlight.py,sha256=BosglMQUxc_KVbLapQ4gCt6rCc0rAF1vCtUR7R1Ad4c,1264
494
494
  wiki/renderers/mistune/math.py,sha256=dgQpH9CIDiqyESphoK5XUVFxK5Yb5VhEIoLgjp3Vtcs,1901
495
- wiki/renderers/mistune/media.py,sha256=xD3NJSTYjyZr1mUTeL1QLzB_E5BFprV_12KqPNPYhq8,2610
495
+ wiki/renderers/mistune/media.py,sha256=SYwjhX6_DKfqJ00yLxfKrIHu6JnnwKnroqRm6ySDMfY,2688
496
496
  wiki/renderers/mistune/meta.py,sha256=1lry9m-4wiwsivWnqYHYjwmGv91BGUSB7niJuZ1Xx54,805
497
497
  wiki/renderers/mistune/task_list.py,sha256=Ex0gUPX_d9jtbPbnEEktlqAJsM6wIt5Md2wsltX7LIY,1889
498
498
  wiki/renderers/mistune/toc.py,sha256=TKGiuMVpKqzDGUx5bAjJYpZIzG6n3wTjtuBdBc-TM_8,2302
@@ -512,7 +512,7 @@ ws4redis/servers/uwsgi.py,sha256=VyhoCI1DnVFqBiJYHoxqn5Idlf6uJPHvfBKgkjs34mo,172
512
512
  ws4redis/settings.py,sha256=K0yBiLUuY81iDM4Yr-k8hbvjn5VVHu5zQhmMK8Dtz0s,1536
513
513
  ws4redis/utf8validator.py,sha256=S0OlfjeGRP75aO6CzZsF4oTjRQAgR17OWE9rgZdMBZA,5122
514
514
  ws4redis/websocket.py,sha256=R0TUyPsoVRD7Y_oU7w2I6NL4fPwiz5Vl94-fUkZgLHA,14848
515
- django_restit-4.2.131.dist-info/LICENSE.md,sha256=VHN4hhEeVOoFjtG-5fVv4jesA4SWi0Z-KgOzzN6a1ps,1068
516
- django_restit-4.2.131.dist-info/METADATA,sha256=lsS45ob1xhvxwvB4KRvDhmmLZSXP04I4797ajfnV5uc,7663
517
- django_restit-4.2.131.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
518
- django_restit-4.2.131.dist-info/RECORD,,
515
+ django_restit-4.2.132.dist-info/LICENSE.md,sha256=VHN4hhEeVOoFjtG-5fVv4jesA4SWi0Z-KgOzzN6a1ps,1068
516
+ django_restit-4.2.132.dist-info/METADATA,sha256=NeQ9W-DZO4uEAlKI7xrNkeWyD8YQ60YuSsK3cxTsxjg,7663
517
+ django_restit-4.2.132.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
518
+ django_restit-4.2.132.dist-info/RECORD,,
medialib/models.py CHANGED
@@ -20,6 +20,7 @@ import hashlib
20
20
  import time
21
21
  import mimetypes
22
22
  import tempfile
23
+ import re
23
24
 
24
25
  from medialib import utils
25
26
  from rest import settings
@@ -29,6 +30,7 @@ from rest.decorators import rest_async
29
30
  from taskqueue.models import Task
30
31
 
31
32
 
33
+ MEDIA_FRIENDLY_FILENAMES = settings.get("MEDIA_FRIENDLY_FILENAMES", True)
32
34
  TASKQUEUE_RENDERING = settings.get("TASKQUEUE_RENDERING", False)
33
35
 
34
36
  from rest.log import getLogger
@@ -1155,9 +1157,36 @@ class MediaItemRendition(models.Model):
1155
1157
  from medialib.stores import s3
1156
1158
  return s3.generate_upload_url(self.url, filetype)
1157
1159
 
1158
- def generateURL(self, name, prefix="", store=None):
1160
+ def generateFriendlyURL(self, name, prefix="", store=None):
1161
+ from rest import helpers as rh
1162
+ rh.log_error("generateFriendlyURL", name, self.use, self.mediaitem.name, " ")
1159
1163
  if store is None:
1160
1164
  store = self.mediaitem.default_store()
1165
+ if self.use != "original":
1166
+ if "." in self.mediaitem.name:
1167
+ orig_name = self.mediaitem.name.split('.')
1168
+ orig_ext = orig_name.pop()
1169
+ orig_name = "".join(orig_name)
1170
+ if "." in name:
1171
+ ext = name.split('.')[-1]
1172
+ else:
1173
+ ext = orig_ext
1174
+ name = f"{orig_name}__{self.name}.{ext}"
1175
+ rh.log_error("--- now ---", name, " ")
1176
+ name = name.replace(" ", "_")
1177
+ name = re.sub(r'[^A-Za-z0-9._-]', '', name)
1178
+ paths = []
1179
+ paths.append(store)
1180
+ paths.append("/")
1181
+ paths.append(int_to_base36(self.mediaitem.pk))
1182
+ paths.append("/")
1183
+ paths.append(name)
1184
+ return "".join(paths)
1185
+
1186
+ def generateURL(self, name, prefix="", store=None):
1187
+ if MEDIA_FRIENDLY_FILENAMES:
1188
+ return self.generateFriendlyURL(name, prefix, store)
1189
+
1161
1190
  paths = []
1162
1191
  paths.append(store)
1163
1192
  paths.append("/{}/".format(int_to_base36(self.mediaitem.pk)))
@@ -1169,7 +1198,7 @@ class MediaItemRendition(models.Model):
1169
1198
  paths.append("_")
1170
1199
  paths.append(utils.toMD5(path, int(time.time())))
1171
1200
  paths.append(".")
1172
- ext = ".dat"
1201
+ ext = "dat"
1173
1202
  if "." in name:
1174
1203
  ext = name.split('.')[-1]
1175
1204
  elif hasattr(self.mediaitem, "ext"):
@@ -343,7 +343,7 @@ def new_rendition(item, renditiondef, fp, kind, width=None, height=None, bytes=N
343
343
  if fp:
344
344
  rendition.upload(fp)
345
345
  elif direct:
346
- rendition.url = fname
346
+ rendition.url = fname + ".bob"
347
347
  rendition.save()
348
348
 
349
349
  if fp:
rest/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
1
  from .uberdict import UberDict # noqa: F401
2
2
  from .settings_helper import settings # noqa: F401
3
3
 
4
- __version__ = "4.2.131"
4
+ __version__ = "4.2.132"
@@ -38,6 +38,7 @@ class MediaMixin(object):
38
38
  return url
39
39
 
40
40
  def link(self, link, text=None, title=None):
41
+ label = text
41
42
  if text is None:
42
43
  text = link
43
44
  o = urllib.parse.urlparse(link)
@@ -47,6 +48,8 @@ class MediaMixin(object):
47
48
  params = {"href":href}
48
49
  if title:
49
50
  params["title"] = title
51
+ if label:
52
+ params["download"] = label
50
53
  if not href.startswith("http"):
51
54
  params["data-action"] = "local_page"
52
55
  flat_params = ' '.join("{}='{}'".format(key,val) for (key,val) in list(params.items()))