From 6203746a700aa6829a63f98fdd21c2768bc3ee6f Mon Sep 17 00:00:00 2001 From: topilski Date: Tue, 11 Jun 2019 00:02:04 -0400 Subject: [PATCH] User agent --- CHANGELOG | 5 +++++ app/common_entries.py | 2 +- app/common_forms.py | 8 +++++--- app/config/public_config.py | 2 +- app/constants.py | 19 +++++++++++++++++++ app/templates/user/dashboard.html | 10 ++-------- 6 files changed, 33 insertions(+), 13 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 73188d2..895d43a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,8 @@ +1.2.0 / +[Alexandr Topilski] +- User agents +- Subscribers + 1.1.0 / June 6, 2019 [Alexandr Topilski] - User type diff --git a/app/common_entries.py b/app/common_entries.py index 020085c..5483746 100644 --- a/app/common_entries.py +++ b/app/common_entries.py @@ -19,7 +19,7 @@ class Url(EmbeddedDocument): class InputUrl(Url): - pass + user_agent = IntField(default=constants.UserAgent.GSTREAMER, required=True) class OutputUrl(Url): diff --git a/app/common_forms.py b/app/common_forms.py index d683195..594f0d3 100644 --- a/app/common_forms.py +++ b/app/common_forms.py @@ -1,6 +1,6 @@ from wtforms import Form from flask_babel import lazy_gettext -from wtforms.fields import StringField, FieldList, IntegerField, FormField, FloatField +from wtforms.fields import StringField, FieldList, IntegerField, FormField, FloatField, SelectField from wtforms.validators import InputRequired, Length, NumberRange import app.constants as constants @@ -16,7 +16,9 @@ class UrlForm(Form): class InputUrlForm(UrlForm): - pass + user_agent = SelectField(lazy_gettext(u'User agent:'), + validators=[InputRequired()], + choices=constants.AVAILABLE_USER_AGENTS, coerce=constants.UserAgent.coerce) class InputUrlsForm(Form): @@ -25,7 +27,7 @@ class InputUrlsForm(Form): def get_data(self) -> InputUrls: urls = InputUrls() for url in self.data['urls']: - urls.urls.append(InputUrl(url['id'], url['uri'])) + urls.urls.append(InputUrl(url['id'], url['uri'], url['user_agent'])) return urls diff --git a/app/config/public_config.py b/app/config/public_config.py index 9a63d23..7e130d9 100644 --- a/app/config/public_config.py +++ b/app/config/public_config.py @@ -3,4 +3,4 @@ PUBLIC_CONFIG = {'site': {'title': 'FastoCloud', 'keywords': 'video,cloud,iptv,s 'support': {'contact_email': 'support@fastogt.com', 'contact_address': 'Republic of Belarus, Minsk, Stadionnay str. 5', 'community_channel': 'https://discord.gg/cnUXsws'}, - 'project': {'version': '1.1.0', 'version_type': 'release'}} + 'project': {'version': '1.2.0', 'version_type': 'release'}} diff --git a/app/constants.py b/app/constants.py index 29a19da..75f61a0 100644 --- a/app/constants.py +++ b/app/constants.py @@ -195,3 +195,22 @@ class Roles(IntEnum): def __str__(self): return str(self.value) + + +class UserAgent(IntEnum): + GSTREAMER = 0 + VLC = 1 + + @classmethod + def choices(cls): + return [(choice, choice.name) for choice in cls] + + @classmethod + def coerce(cls, item): + return cls(int(item)) if not isinstance(item, cls) else item + + def __str__(self): + return str(self.value) + + +AVAILABLE_USER_AGENTS = [(UserAgent.GSTREAMER, 'GStreamer'), (UserAgent.VLC, 'VLC'), ] diff --git a/app/templates/user/dashboard.html b/app/templates/user/dashboard.html index b6bd938..d6e106c 100644 --- a/app/templates/user/dashboard.html +++ b/app/templates/user/dashboard.html @@ -588,11 +588,12 @@ Dashboard | {{ config['PUBLIC_CONFIG'].site.title }} } function edit_stream_entry(url) { + var data_ser = $('#stream_entry_form').serialize(); $.ajax({ url: url, type: "POST", dataType: 'json', - data: $('#stream_entry_form').serialize(), + data: data_ser, success: function (response) { console.log(response); $('#stream_dialog').modal('hide'); @@ -808,12 +809,5 @@ Dashboard | {{ config['PUBLIC_CONFIG'].site.title }} } }); } - - - - - - - {% endblock %}