You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.8 KiB
49 lines
1.8 KiB
7 months ago
|
import argparse
|
||
|
import random
|
||
|
import time
|
||
|
import Contant
|
||
|
from LoggerUtils import Logger, initLogger
|
||
|
import Orm
|
||
|
from VideoService import VideoService
|
||
|
from ChannelService import ChannelService
|
||
|
from DownloadInfoService import DownloadService
|
||
|
from DownloadUtil import DownLoadUtil
|
||
|
from func_timeout import func_set_timeout
|
||
|
import func_timeout
|
||
|
import requests
|
||
|
|
||
|
# python3 ./main_download.py --db="../db/youtube_prod.db" --logDir="./logs"
|
||
|
if __name__ == "__main__":
|
||
|
parser = argparse.ArgumentParser(description='')
|
||
|
parser.add_argument('--db', type=str, default='')
|
||
|
parser.add_argument('--logDir', type=str, default='')
|
||
|
args = parser.parse_args()
|
||
|
Contant.db = args.db
|
||
|
Contant.logDir = args.logDir
|
||
|
initLogger()
|
||
|
Orm.ormInit()
|
||
|
list = DownloadService.findNotFinishList()
|
||
|
Logger.info("list size:{}".format(len(list)))
|
||
|
while (len(list) > 0):
|
||
|
for info in list:
|
||
|
try:
|
||
|
DownLoadUtil.downloadOne(info.videoId)
|
||
|
restTime = random.randint(1, 3)
|
||
|
Logger.info("间隔{}秒后继续...".format(restTime))
|
||
|
time.sleep(restTime)
|
||
|
except func_timeout.exceptions.FunctionTimedOut as e:
|
||
|
Logger.error("执行下载方法超时错误:{}".format(e))
|
||
|
loopRestTime = random.randint(1, 3)
|
||
|
Logger.info("循环间隔{}秒后继续...".format(loopRestTime))
|
||
|
time.sleep(loopRestTime)
|
||
|
list = DownloadService.findNotFinishList()
|
||
|
# 发送钉钉消息
|
||
|
webhook = "https://oapi.dingtalk.com/robot/send?access_token=c8c8d7d42c4eecd449dd303025ef968f647d1d8e8694e3fabc0ab5770d646dcb"
|
||
|
jsonData = {
|
||
|
"msgtype": "text",
|
||
|
"text": {
|
||
|
"content": "[Youtube]download finished"
|
||
|
}
|
||
|
}
|
||
|
requests.post(webhook, json=jsonData)
|
||
|
Logger.info("download发送钉钉消息成功...")
|