Add set_queuefile_extension method, endpoint, and ui.
This commit is contained in:
parent
223d3d01fb
commit
741cddc2e4
4 changed files with 57 additions and 0 deletions
|
@ -134,3 +134,12 @@ def post_set_automark(channel_id):
|
|||
flask.abort(400)
|
||||
|
||||
return jsonify.make_json_response({})
|
||||
|
||||
@site.route('/channel/<channel_id>/set_queuefile_extension', methods=['POST'])
|
||||
def post_set_queuefile_extension(channel_id):
|
||||
extension = request.form['extension']
|
||||
channel = common.ycdldb.get_channel(channel_id)
|
||||
|
||||
channel.set_queuefile_extension(extension)
|
||||
|
||||
return jsonify.make_json_response({})
|
||||
|
|
|
@ -47,6 +47,15 @@ function set_automark(channel_id, state, callback)
|
|||
return common.post(url, data, callback);
|
||||
}
|
||||
|
||||
api.channels.set_queuefile_extension =
|
||||
function set_queuefile_extension(channel_id, extension, callback)
|
||||
{
|
||||
const url = `/channel/${channel_id}/set_queuefile_extension`;
|
||||
const data = new FormData();
|
||||
data.append("extension", extension);
|
||||
return common.post(url, data, callback);
|
||||
}
|
||||
|
||||
api.channels.callback_go_to_channels =
|
||||
function callback_go_to_channels(response)
|
||||
{
|
||||
|
|
|
@ -265,6 +265,11 @@ https://stackoverflow.com/a/35153397
|
|||
<span id="set_automark_spinner" class="hidden">Working...</span>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="text" id="set_queuefile_extension_input" placeholder="Queuefile extension" value="{{channel.queuefile_extension or ''}}"/>
|
||||
<button id="set_queuefile_extension_button" class="button_with_spinner" onclick="return set_queuefile_extension_form();">Set extension</button>
|
||||
</div>
|
||||
|
||||
<button class="red_button button_with_confirm"
|
||||
data-prompt="Delete channel and all videos?"
|
||||
data-onclick="return delete_channel_form();"
|
||||
|
@ -540,5 +545,22 @@ function set_automark_callback(response)
|
|||
set_automark_spinner.hide();
|
||||
}
|
||||
}
|
||||
|
||||
set_queuefile_extension_input = document.getElementById("set_queuefile_extension_input");
|
||||
set_queuefile_extension_button = document.getElementById("set_queuefile_extension_button");
|
||||
common.bind_box_to_button(set_queuefile_extension_input, set_queuefile_extension_button);
|
||||
function set_queuefile_extension_form(event)
|
||||
{
|
||||
const extension = set_queuefile_extension_input.value.trim();
|
||||
api.channels.set_queuefile_extension(CHANNEL_ID, extension, set_queuefile_extension_callback);
|
||||
}
|
||||
|
||||
function set_queuefile_extension_callback(response)
|
||||
{
|
||||
if (response.meta.status == 200)
|
||||
{
|
||||
window[set_queuefile_extension_button.dataset.spinnerCloser]();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</html>
|
||||
|
|
|
@ -80,6 +80,23 @@ class Channel(Base):
|
|||
if commit:
|
||||
self.ycdldb.commit()
|
||||
|
||||
def set_queuefile_extension(self, extension, commit=True):
|
||||
if not extension:
|
||||
extension = None
|
||||
|
||||
if extension is not None:
|
||||
extension = extension.strip()
|
||||
|
||||
pairs = {
|
||||
'id': self.id,
|
||||
'queuefile_extension': extension,
|
||||
}
|
||||
self.ycdldb.sql_update(table='channels', pairs=pairs, where_key='id')
|
||||
self.queuefile_extension = extension
|
||||
|
||||
if commit:
|
||||
self.ycdldb.commit()
|
||||
|
||||
def set_uploads_playlist_id(self, playlist_id, commit=True):
|
||||
if not isinstance(playlist_id, str):
|
||||
raise TypeError(f'Playlist id must be a string, not {type(playlist_id)}.')
|
||||
|
|
Loading…
Reference in a new issue