add delete download queue pending or ignored, #85

This commit is contained in:
simon 2021-11-25 20:02:25 +07:00
parent 408b0a0c34
commit 3f31e50b69
No known key found for this signature in database
GPG Key ID: 2C15AA5E89985DD4
5 changed files with 48 additions and 6 deletions

View File

@ -225,6 +225,18 @@ class PendingList:
if not response.ok: if not response.ok:
print(response.text) print(response.text)
def delete_pending(self, status):
"""delete download queue based on status value"""
data = {"query": {"term": {"status": {"value": status}}}}
payload = json.dumps(data)
url = self.ES_URL + "/ta_download/_delete_by_query"
headers = {"Content-type": "application/json"}
response = requests.post(
url, data=payload, headers=headers, auth=self.ES_AUTH
)
if not response.ok:
print(response.text)
def ignore_from_pending(self, ignore_list): def ignore_from_pending(self, ignore_list):
"""build the bulk query string""" """build the bulk query string"""

View File

@ -21,7 +21,6 @@
<div class="show-form"> <div class="show-form">
<form id='hidden-form' action="/downloads/" method="post"> <form id='hidden-form' action="/downloads/" method="post">
{% csrf_token %} {% csrf_token %}
<!-- <textarea rows="4" placeholder="Enter Video Urls or IDs here..." id="vid-url" name="vid-url"></textarea> -->
{{ add_form }} {{ add_form }}
<button type="submit">Add to download queue</button> <button type="submit">Add to download queue</button>
</form> </form>
@ -47,11 +46,15 @@
<img src="{% static 'img/icon-listview.svg' %}" onclick="changeView(this)" data-origin="downloads" data-value="list" alt="list view"> <img src="{% static 'img/icon-listview.svg' %}" onclick="changeView(this)" data-origin="downloads" data-value="list" alt="list view">
</div> </div>
</div> </div>
{% if show_ignored_only %} <div class="title-split">
{% if show_ignored_only %}
<h2>Ignored from download</h2> <h2>Ignored from download</h2>
{% else %} <button onclick="deleteQueue(this)" data-id="ignore" title="Delete all previously ignored videos from the queue">Delete all ignored</button>
{% else %}
<h2>Download queue</h2> <h2>Download queue</h2>
{% endif %} <button onclick="deleteQueue(this)" data-id="pending" title="Delete all pending videos from the queue">Delete all queued</button>
{% endif %}
</div>
<h3>Total videos: {{ max_hits }}</h3> <h3>Total videos: {{ max_hits }}</h3>
<div class="dl-list {{ view_style }}"> <div class="dl-list {{ view_style }}">
{% if all_video_hits %} {% if all_video_hits %}

View File

@ -1005,6 +1005,7 @@ class PostData:
"show_ignored_only": self.show_ignored_only, "show_ignored_only": self.show_ignored_only,
"forgetIgnore": self.forget_ignore, "forgetIgnore": self.forget_ignore,
"addSingle": self.add_single, "addSingle": self.add_single,
"deleteQueue": self.delete_queue,
"manual-import": self.manual_import, "manual-import": self.manual_import,
"re-embed": self.re_embed, "re-embed": self.re_embed,
"db-backup": self.db_backup, "db-backup": self.db_backup,
@ -1172,6 +1173,16 @@ class PostData:
extrac_dl.delay(youtube_ids) extrac_dl.delay(youtube_ids)
return {"success": True} return {"success": True}
def delete_queue(self):
"""delete download queue"""
status = self.exec_val
print("deleting from download queue: " + status)
if status == "pending":
PendingList().delete_pending("pending")
elif status == "ignore":
PendingList().delete_pending("ignore")
return {"success": True}
@staticmethod @staticmethod
def manual_import(): def manual_import():
"""run manual import from settings page""" """run manual import from settings page"""

View File

@ -824,6 +824,11 @@ button:hover {
filter: var(--img-filter-error); filter: var(--img-filter-error);
} }
.title-split {
display: flex;
justify-content: space-between;
}
/* status message */ /* status message */
.download-progress { .download-progress {
background-color: var(--highlight-bg); background-color: var(--highlight-bg);

View File

@ -138,6 +138,17 @@ function addSingle(button) {
}, 500); }, 500);
} }
function deleteQueue(button) {
var to_delete = button.getAttribute('data-id');
var payload = JSON.stringify({'deleteQueue': to_delete});
console.log(payload);
sendPost(payload);
setTimeout(function(){
location.reload();
return false;
}, 1000);
}
function stopQueue() { function stopQueue() {
var payload = JSON.stringify({'queue': 'stop'}); var payload = JSON.stringify({'queue': 'stop'});
sendPost(payload); sendPost(payload);