Merge pull request #49 from arabcoders/dev
Fixed minor display issue when showing errors.
This commit is contained in:
commit
ca22500c1f
4 changed files with 67 additions and 50 deletions
5
.github/workflows/update-yt-dlp.yml
vendored
5
.github/workflows/update-yt-dlp.yml
vendored
|
|
@ -26,16 +26,21 @@ jobs:
|
|||
with:
|
||||
python-version: "3.11"
|
||||
- name: Update yt-dlp
|
||||
id: ytdlp_update
|
||||
run: |
|
||||
pip install pipenv
|
||||
pipenv sync
|
||||
VER=`pipenv run pip list -o | awk '$1 == "yt-dlp" {print $3}'`
|
||||
if [ -n "$VER" ]; then
|
||||
echo "YTLDLP_VER=${VER}" >> "$GITHUB_OUTPUT"
|
||||
pipenv update yt-dlp
|
||||
fi
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
with:
|
||||
title: "Update yt-dlp"
|
||||
commit-message: "Update yt-dlp to ${{ steps.ytdlp_update.outputs.YTLDLP_VER }}"
|
||||
body: "This is an automated request to update yt-dlp dependency to ${{ steps.ytdlp_update.outputs.YTLDLP_VER }}"
|
||||
delete-branch: true
|
||||
|
||||
|
||||
|
|
|
|||
84
Pipfile.lock
generated
84
Pipfile.lock
generated
|
|
@ -131,11 +131,11 @@
|
|||
},
|
||||
"attrs": {
|
||||
"hashes": [
|
||||
"sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04",
|
||||
"sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"
|
||||
"sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30",
|
||||
"sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==23.1.0"
|
||||
"version": "==23.2.0"
|
||||
},
|
||||
"bidict": {
|
||||
"hashes": [
|
||||
|
|
@ -558,41 +558,41 @@
|
|||
},
|
||||
"pycryptodomex": {
|
||||
"hashes": [
|
||||
"sha256:09c9401dc06fb3d94cb1ec23b4ea067a25d1f4c6b7b118ff5631d0b5daaab3cc",
|
||||
"sha256:0b2f1982c5bc311f0aab8c293524b861b485d76f7c9ab2c3ac9a25b6f7655975",
|
||||
"sha256:136b284e9246b4ccf4f752d435c80f2c44fc2321c198505de1d43a95a3453b3c",
|
||||
"sha256:1789d89f61f70a4cd5483d4dfa8df7032efab1118f8b9894faae03c967707865",
|
||||
"sha256:2126bc54beccbede6eade00e647106b4f4c21e5201d2b0a73e9e816a01c50905",
|
||||
"sha256:258c4233a3fe5a6341780306a36c6fb072ef38ce676a6d41eec3e591347919e8",
|
||||
"sha256:263de9a96d2fcbc9f5bd3a279f14ea0d5f072adb68ebd324987576ec25da084d",
|
||||
"sha256:50cb18d4dd87571006fd2447ccec85e6cec0136632a550aa29226ba075c80644",
|
||||
"sha256:5b883e1439ab63af976656446fb4839d566bb096f15fc3c06b5a99cde4927188",
|
||||
"sha256:5d73e9fa3fe830e7b6b42afc49d8329b07a049a47d12e0ef9225f2fd220f19b2",
|
||||
"sha256:61056a1fd3254f6f863de94c233b30dd33bc02f8c935b2000269705f1eeeffa4",
|
||||
"sha256:67c8eb79ab33d0fbcb56842992298ddb56eb6505a72369c20f60bc1d2b6fb002",
|
||||
"sha256:6e45bb4635b3c4e0a00ca9df75ef6295838c85c2ac44ad882410cb631ed1eeaa",
|
||||
"sha256:7cb51096a6a8d400724104db8a7e4f2206041a1f23e58924aa3d8d96bcb48338",
|
||||
"sha256:800a2b05cfb83654df80266692f7092eeefe2a314fa7901dcefab255934faeec",
|
||||
"sha256:8df69e41f7e7015a90b94d1096ec3d8e0182e73449487306709ec27379fff761",
|
||||
"sha256:917033016ecc23c8933205585a0ab73e20020fdf671b7cd1be788a5c4039840b",
|
||||
"sha256:a12144d785518f6491ad334c75ccdc6ad52ea49230b4237f319dbb7cef26f464",
|
||||
"sha256:a3866d68e2fc345162b1b9b83ef80686acfe5cec0d134337f3b03950a0a8bf56",
|
||||
"sha256:a588a1cb7781da9d5e1c84affd98c32aff9c89771eac8eaa659d2760666f7139",
|
||||
"sha256:a77b79852175064c822b047fee7cf5a1f434f06ad075cc9986aa1c19a0c53eb0",
|
||||
"sha256:af83a554b3f077564229865c45af0791be008ac6469ef0098152139e6bd4b5b6",
|
||||
"sha256:b801216c48c0886742abf286a9a6b117e248ca144d8ceec1f931ce2dd0c9cb40",
|
||||
"sha256:bfb040b5dda1dff1e197d2ef71927bd6b8bfcb9793bc4dfe0bb6df1e691eaacb",
|
||||
"sha256:c01678aee8ac0c1a461cbc38ad496f953f9efcb1fa19f5637cbeba7544792a53",
|
||||
"sha256:c74eb1f73f788facece7979ce91594dc177e1a9b5d5e3e64697dd58299e5cb4d",
|
||||
"sha256:c9a68a2f7bd091ccea54ad3be3e9d65eded813e6d79fdf4cc3604e26cdd6384f",
|
||||
"sha256:d4dd3b381ff5a5907a3eb98f5f6d32c64d319a840278ceea1dcfcc65063856f3",
|
||||
"sha256:e8e5ecbd4da4157889fce8ba49da74764dd86c891410bfd6b24969fa46edda51",
|
||||
"sha256:eb2fc0ec241bf5e5ef56c8fbec4a2634d631e4c4f616a59b567947a0f35ad83c",
|
||||
"sha256:edbe083c299835de7e02c8aa0885cb904a75087d35e7bab75ebe5ed336e8c3e2",
|
||||
"sha256:ff64fd720def623bf64d8776f8d0deada1cc1bf1ec3c1f9d6f5bb5bd098d034f"
|
||||
"sha256:011e859026ecbd15b8e720e8992361186e582cf726c50bde6ff8c0c05e820ddf",
|
||||
"sha256:0b42e2743893f386dfb58fe24a4c8be5305c3d1c825d5f23d9e63fd0700d1110",
|
||||
"sha256:0b7154aff2272962355f8941fd514104a88cb29db2d8f43a29af900d6398eb1c",
|
||||
"sha256:0bc4b7bfaac56e6dfd62044847443a3d110c7abea7fcb0d68c1aea64ed3a6697",
|
||||
"sha256:10c2eed4efdfa084b602ab922e699a0a2ba82053baebfc8afcaf27489def7955",
|
||||
"sha256:1c04cfff163c05d033bf28e3c4429d8222796738c7b6c1638b9d7090b904611e",
|
||||
"sha256:23707238b024b36c35dd3428f5af6c1f0c5ef54c21e387a2063633717699b8b2",
|
||||
"sha256:371bbe0be17b4dd8cc0c2f378d75ea33f00d5a39884c09a672016ac40145a5fa",
|
||||
"sha256:39eb1f82ac3ba3e39d866f38e480e8fa53fcdd22260340f05f54a8188d47d510",
|
||||
"sha256:3f3c58971784fba0e014bc3f8aed1197b86719631e1b597d36d7354be5598312",
|
||||
"sha256:5ca98de2e5ac100e57a7116309723360e8f799f722509e376dc396cdf65eec9c",
|
||||
"sha256:62f51a63d73153482729904381dd2de86800b0733a8814ee8f072fa73e5c92fb",
|
||||
"sha256:76414d39df6b45bcc4f38cf1ba2031e0f4b8e99d1ba3c2eee31ffe1b9f039733",
|
||||
"sha256:8dffe067d5fff14dba4d18ff7d459cc2a47576d82dafbff13a8f1199c3353e41",
|
||||
"sha256:96000b837bcd8e3bf86b419924a056c978e45027281e4318650c81c25a3ef6cc",
|
||||
"sha256:9919a1edd2a83c4dfb69f1d8a4c0c5efde7147ef15b07775633372b80c90b5d8",
|
||||
"sha256:aab7941c2ff53eb63cb26252770e4f14386d79ce07baeffbf98a1323c1646545",
|
||||
"sha256:ac562e239d98cfef763866c0aee4586affb0d58c592202f06c87241af99db241",
|
||||
"sha256:ae75eea2e908383fd4c659fdcfe9621a72869e3e3ee73904227e93b7f7b80b54",
|
||||
"sha256:b5c336dc698650283ad06f8c0237a984087d0af9f403ff21d633507335628156",
|
||||
"sha256:beb5f0664f49b6093da179ee8e27c1d670779f50b9ece0886ce491bb8bd63728",
|
||||
"sha256:c1ae2fb8d5d6771670436dcc889b293e363c97647a6d31c21eebc12b7b760010",
|
||||
"sha256:c9332b04bf3f838327087b028f690f4ddb9341eb014a0221e79b9c19a77f7555",
|
||||
"sha256:c9cb88ed323be1aa642b3c17cd5caa1a03c3a8fbad092d48ecefe88e328ffae3",
|
||||
"sha256:d45d0d35a238d838b872598fa865bbfb31aaef9aeeda77c68b04ef79f9a469dc",
|
||||
"sha256:d7a77391fd351ff1bdf8475558ddc6e92950218cb905419ee14aa02f370f1054",
|
||||
"sha256:de5a43901e47e7a6938490fc5de3074f6e35c8b481a75b227c0d24d6099bd41d",
|
||||
"sha256:e94a7e986b117b72e9472f8eafdd81748dafff30815401f9760f759f1debe9ef",
|
||||
"sha256:ed3bdda44cc05dd13eee697ab9bea6928531bb7b218e68e66d0d3eb2ebab043e",
|
||||
"sha256:f24f49fc6bd706d87048654d6be6c7c967d6836d4879e3a7c439275fab9948ad",
|
||||
"sha256:f8a97b1acd36e9ce9d4067d94a8be99c458f0eb8070828639302a95cfcf0770b",
|
||||
"sha256:f8b3d9e7c17c1ffc1fa5b11c0bbab8a5df3de8596bb32ad30281b21e5ede4bf5"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==3.19.0"
|
||||
"version": "==3.19.1"
|
||||
},
|
||||
"python-dateutil": {
|
||||
"hashes": [
|
||||
|
|
@ -604,11 +604,11 @@
|
|||
},
|
||||
"python-engineio": {
|
||||
"hashes": [
|
||||
"sha256:2a32585d8fecd0118264fe0c39788670456ca9aa466d7c026d995cfff68af164",
|
||||
"sha256:6055ce35b7f32b70641d53846faf76e06f2af0107a714cedb2750595c69ade43"
|
||||
"sha256:70a7700ec68e6a1e0f40eb34533f47dfbd0418a87746a60a54d2ff3b4179be25",
|
||||
"sha256:fadc39c66348f96476d8dc2d7aaee7ea0a39d96e333217f5321300677b980121"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==4.8.0"
|
||||
"version": "==4.8.1"
|
||||
},
|
||||
"python-socketio": {
|
||||
"hashes": [
|
||||
|
|
@ -849,11 +849,11 @@
|
|||
},
|
||||
"yt-dlp": {
|
||||
"hashes": [
|
||||
"sha256:0322ba85aa4afdb75f8641ed550e5958964daff034aeb477abb15031fd9a51ed",
|
||||
"sha256:f0ccdaf12e08b15902601a4671c7ab12906d7b11de3ae75fa6506811c24ec5da"
|
||||
"sha256:a11862e57721b0a0f0883dfeb5a4d79ba213a2d4c45e1880e9fd70f8e6570c38",
|
||||
"sha256:c00d9a71d64472ad441bcaa1ec0c3797d6e60c9f934f270096a96fe51657e7b3"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2023.11.16"
|
||||
"version": "==2023.12.30"
|
||||
}
|
||||
},
|
||||
"develop": {}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import shutil
|
|||
import yt_dlp
|
||||
from src.Utils import get_format, get_opts, jsonCookie, mergeConfig
|
||||
from src.DTO.ItemDTO import ItemDTO
|
||||
from src.Notifier import Notifier
|
||||
|
||||
log = logging.getLogger('download')
|
||||
|
||||
|
|
@ -25,7 +26,7 @@ class Download:
|
|||
default_ytdl_opts: dict = None
|
||||
debug: bool = False
|
||||
tempPath: str = None
|
||||
|
||||
notifier: Notifier = None
|
||||
_ytdlp_fields: tuple = (
|
||||
'tmpfilename',
|
||||
'filename',
|
||||
|
|
@ -146,15 +147,15 @@ class Download:
|
|||
logging.debug(f'Deleting Temp directory: {self.tempPath}')
|
||||
shutil.rmtree(self.tempPath, ignore_errors=True)
|
||||
|
||||
async def start(self, notifier):
|
||||
async def start(self, notifier: Notifier):
|
||||
if self.manager is None:
|
||||
self.manager = multiprocessing.Manager()
|
||||
|
||||
self.status_queue = self.manager.Queue()
|
||||
self.proc = multiprocessing.Process(target=self._download)
|
||||
self.proc.start()
|
||||
self.loop = asyncio.get_running_loop()
|
||||
self.notifier = notifier
|
||||
self.proc = multiprocessing.Process(target=self._download)
|
||||
self.proc.start()
|
||||
self.info.status = 'preparing'
|
||||
await self.notifier.updated(self.info)
|
||||
asyncio.create_task(self.update_status())
|
||||
|
|
@ -198,13 +199,16 @@ class Download:
|
|||
|
||||
self.info.status = status['status']
|
||||
self.info.msg = status.get('msg')
|
||||
if 'error' == self.info.status:
|
||||
self.info.error = status.get('msg')
|
||||
|
||||
if 'downloaded_bytes' in status:
|
||||
total = status.get('total_bytes') or status.get(
|
||||
'total_bytes_estimate')
|
||||
if total:
|
||||
self.info.percent = status['downloaded_bytes'] / \
|
||||
total * 100
|
||||
perc = status['downloaded_bytes'] / total * 100
|
||||
self.info.percent = perc
|
||||
self.info.total_bytes = total
|
||||
|
||||
self.info.speed = status.get('speed')
|
||||
self.info.eta = status.get('eta')
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
<div class="columns is-multiline">
|
||||
<div class="column is-6" v-for="item in completed" :key="item._id">
|
||||
<div class="card" :class="{ 'is-bordered-danger': item.error || item.msg !== '' ? true : false }">
|
||||
<div class="card" :class="{ 'is-bordered-danger': hasError(item) }">
|
||||
<header class="card-header has-tooltip" :data-tooltip="item.title">
|
||||
<div class="card-header-title has-text-centered is-text-overflow is-block">
|
||||
<a v-if="item.filename" referrerpolicy="no-referrer" :href="makeDownload(config, item, 'm3u8')"
|
||||
|
|
@ -82,7 +82,7 @@
|
|||
<div class="column is-12" v-if="item.error">
|
||||
<span class="has-text-danger">{{ item.error }}</span>
|
||||
</div>
|
||||
<div class="column is-12" v-if="item.msg !== ''">
|
||||
<div class="column is-12" v-if="!item.error && item.msg && item.msg.length() > 0">
|
||||
<span class="has-text-danger">{{ item.msg }}</span>
|
||||
</div>
|
||||
<div class="column is-4 has-text-centered" v-if="!item.live_in">
|
||||
|
|
@ -221,6 +221,14 @@ const hasSelected = computed(() => selectedElms.value.length > 0)
|
|||
const hasItems = computed(() => Object.keys(props.completed)?.length > 0)
|
||||
const getTotal = computed(() => Object.keys(props.completed)?.length);
|
||||
|
||||
const hasError = (item) => {
|
||||
if (item.status === 'finished') {
|
||||
return false;
|
||||
}
|
||||
|
||||
return (item.error || (item.msg && item.msg.length > 0)) ? true : false;
|
||||
}
|
||||
|
||||
const hasFailed = computed(() => {
|
||||
if (Object.keys(props.completed)?.length < 0) {
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Reference in a new issue