- PodcastSettings (Migration 0014): skip_back / skip_forward (5–60 s),
smart_played, speed_presets (0,5–3,5×), keep_skipped, delete_dequeue,
mobile_downloads, mobile_streaming (allow/ask/never), times_by_speed;
die ersten vier sind anfangs leer (null) und werden mit POST
settings/ {"initial": {...}} nur dort gesetzt, wo noch nichts steht
- GET/POST /podcasts/settings/ und state.settings mit allen Feldern,
geprüft, nichts ändert sich bei einem ungültigen Wert
- PodcastFeed: episode_sort, episode_filter, skip_silence in
feeds/<id>/settings/ und den Feeds des States
- Tempo pro Podcast bis 3,5× (Server und AntennaPod-Import)
- AntennaPod-Import: Sortierung, Filter und Stille pro Podcast, soweit
diora sie zeigen kann; nicht darstellbare werden gezählt
- Browser-Host: Sprungweiten, "gehört" und keep_skipped aus dem Konto,
Tempo bis 3,5×, neue Einstellungen werden gespeichert
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
72 lines
2.4 KiB
Python
72 lines
2.4 KiB
Python
from django.db import migrations, models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('podcasts', '0013_feed_notify'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.AddField(
|
|
model_name='podcastfeed',
|
|
name='episode_sort',
|
|
field=models.CharField(blank=True, max_length=10),
|
|
),
|
|
migrations.AddField(
|
|
model_name='podcastfeed',
|
|
name='episode_filter',
|
|
field=models.JSONField(blank=True, default=list),
|
|
),
|
|
migrations.AddField(
|
|
model_name='podcastfeed',
|
|
name='skip_silence',
|
|
field=models.BooleanField(blank=True, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='podcastsettings',
|
|
name='skip_back',
|
|
field=models.PositiveSmallIntegerField(blank=True, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='podcastsettings',
|
|
name='skip_forward',
|
|
field=models.PositiveSmallIntegerField(blank=True, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='podcastsettings',
|
|
name='smart_played',
|
|
field=models.PositiveIntegerField(blank=True, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='podcastsettings',
|
|
name='speed_presets',
|
|
field=models.JSONField(blank=True, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='podcastsettings',
|
|
name='keep_skipped',
|
|
field=models.BooleanField(default=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='podcastsettings',
|
|
name='delete_dequeue',
|
|
field=models.BooleanField(default=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='podcastsettings',
|
|
name='mobile_downloads',
|
|
field=models.BooleanField(default=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='podcastsettings',
|
|
name='mobile_streaming',
|
|
field=models.CharField(choices=[('allow', 'Erlauben'), ('ask', 'Nachfragen'), ('never', 'Nie')],
|
|
default='allow', max_length=10),
|
|
),
|
|
migrations.AddField(
|
|
model_name='podcastsettings',
|
|
name='times_by_speed',
|
|
field=models.BooleanField(default=False),
|
|
),
|
|
]
|