pandora_t_for_time/utils.py

65 lines
1.9 KiB
Python
Raw Normal View History

2026-01-29 13:05:01 +01:00
import os
import re
2023-10-21 15:33:28 +01:00
2026-01-29 13:05:01 +01:00
def resolve_roman(s):
extra = re.compile(r'^\d+(.*?)$').findall(s)
if extra:
extra = extra[0].lower()
new = {
'i': '1', 'ii': '2', 'iii': '3', 'iv': '4', 'v': '5',
'vi': '6', 'vii': 7, 'viii': '8', 'ix': '9', 'x': '10'
}.get(extra, extra)
return s.replace(extra, new)
return s
2023-10-21 15:33:28 +01:00
def upgrade_originals():
import item.models
import itemlist.models
nt = itemlist.models.List.objects.get(name='No Type')
2023-10-28 11:24:43 +02:00
no = itemlist.models.List.objects.get(name='New Originals')
2023-10-21 15:33:28 +01:00
for i in nt.get_items(nt.user):
orig = item.models.Item.objects.get(data__title=i.get('title'), data__type=["Original"])
print(i, orig)
orig.files.all().update(selected=False)
i.files.all().update(item=orig)
orig.save()
orig.remove_poster()
orig.make_poster()
i.data['type'] = ['Empty']
i.save()
2023-10-28 11:24:43 +02:00
no.items.add(orig)
2023-10-21 15:33:28 +01:00
def remove_deselected_files():
2023-10-28 11:24:43 +02:00
import itemlist.models
2023-10-21 15:33:28 +01:00
il = itemlist.models.List.objects.get(name='New Originals')
for i in il.items.all():
2023-10-21 15:46:08 +01:00
changed = False
2023-10-21 15:33:28 +01:00
for f in i.files.filter(selected=False):
f.data.delete()
f.delete()
2023-10-21 15:46:08 +01:00
changed = True
if changed:
i.save()
2026-01-29 13:05:01 +01:00
def write_if_new(path, data, mode=''):
read_mode = 'r' + mode
write_mode = 'w' + mode
if os.path.exists(path):
with open(path, read_mode) as fd:
old = fd.read()
else:
old = ""
is_new = data != old
if path.endswith(".kdenlive"):
is_new = re.sub(r'\{.{36}\}', '', data) != re.sub(r'\{.{36}\}', '', old)
if is_new:
with open(path, write_mode) as fd:
fd.write(data)
def format_duration(duration, fps, audio=False):
if audio:
return float('%0.5f' % (int(duration * fps) / fps))
else:
return float('%0.5f' % (round(duration * fps) / fps))