newsreader/src/newsreader/news/collection/forms/twitter.py
2023-08-06 16:29:56 +02:00

35 lines
1.1 KiB
Python

from datetime import timezone
from django import forms
from django.utils.translation import gettext_lazy as _
from newsreader.news.collection.choices import RuleTypeChoices
from newsreader.news.collection.forms.base import CollectionRuleForm
from newsreader.news.collection.models import CollectionRule
from newsreader.news.collection.twitter import TWITTER_API_URL
class TwitterTimelineForm(CollectionRuleForm):
screen_name = forms.CharField(
max_length=255,
label=_("Twitter profile name"),
help_text=_("Profile name without hashtags"),
required=True,
)
def save(self, commit=True):
instance = super().save(commit=False)
instance.type = RuleTypeChoices.twitter_timeline
instance.timezone = str(timezone.utc)
instance.url = f"{TWITTER_API_URL}/statuses/user_timeline.json?screen_name={instance.screen_name}&tweet_mode=extended"
if commit:
instance.save()
self.save_m2m()
return instance
class Meta:
model = CollectionRule
fields = ("name", "screen_name", "favicon", "category")