﻿#!/usr/bin/env python
# coding: utf-8

import os
## import ffmpeg
import re
import requests
from qbittorrentapi import Client
## import amulecmd

def download_file(path,pattern,content) :
	# 设置要保存的文件夹路径
	# download_folder = 'videos'
	if not os.path.exists(path):
		os.makedirs(path)

	#  video_urls = re.findall(r'(http.*?\.mp4)', content)
	video_urls = re.findall(pattern, content)
	# 下载视频文件
	for video_url in video_urls:
		filename = os.path.join(path, video_url.split('/')[-1])
		with open(filename, 'wb') as f:
			response = requests.get(video_url)
			f.write(response.content)

def download_videos(url) :

	# 获取页面内容
	#url = 'https://example.com/videos.html'
	print(url)
	response = requests.get(url)
	content = response.content.decode('utf-8')
	
	#  download_file(path,content)  ## ★ ★ ★ ★ ★ ★ ★

	# 从页面内容中提取mp4格式视频链接
	#print(content)
	#magnet_urls = re.findall(r'(magnet:\?xt=urn:btih:[0-9a-fA-F]{40})(|&dn=[^&\s]+)', content)
	magnet_urls = re.findall(r'(magnet:\?xt=urn:btih:[0-9a-fA-F]{40})', content)
	ed2k_urls = re.findall(r'(ed2k:\/\/\|file\|([^\/]+)\|\d+\|[0-9a-fA-F]+\|\/?)', content)
	bt_urls = re.findall(r'(http(s)?://.*?\.torrent)', content)
	
	# 连接 amuled
	# amule = amulecmd.Amule()
	# amule.connect()

	# links = ["ed2k://|file|movie.avi|1234567890|A1234567890BCDEFGHIJKLMNOPQRSTUVWXYZ|/"]
	## amule.add_links(ed2k_urls)　　 ## ★ ★ ★ ★ ★ ★ ★
	
	# 连接 qbittorrent-nox
	qb = Client(host='localhost', port=8077, username='admin', password='adminadmin')
	# qb.login('admin', 'adminadmin')

	# 添加链接
	# links = ["magnet:?xt=urn:btih:1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"]
	print(magnet_urls)
	qb.torrents_add(urls=magnet_urls) ## ★ ★ ★ ★ ★ ★ ★
	# qb.torrents_add(urls=bt_urls) ## ★ ★ ★ ★ ★ ★ ★

	# 退出 qbittorrent-nox
	#qb.logout()


def main() :
	# 指定目录
	video_path =  os.environ['VIDEO_PATH']
	video_url =  os.environ['VIDEO_URL']  
	video_pattern =  os.environ['VIDEO_PATTERN'] 
	## download_file(video_path,video_pattern,video_url)  ## ★ ★ ★ ★ ★ ★ ★
	download_videos(video_url)

if __name__ == '__main__':
	main() 
