﻿#!/usr/bin/env python
# coding: utf-8

import os
## import ffmpeg
import re
import requests
from qbittorrentapi import Client
## import amulecmd

path =  os.getenv('VIDEO_URL',None)
print("path:",path)
pattern =  os.getenv('VIDEO_PATTERN',None)
print("pattern:",pattern)
def download_qb_file(content) :
	# 设置要保存的文件夹路径
	#  video_urls = re.findall(r'(http.*?\.mp4)', content)
	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)
	bt_urls = re.findall(r'(http(s)?://.*?\.torrent)', content)
	
	# 连接 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 download_ed2k_file(content) :
	# 设置要保存的文件夹路径
	# 从页面内容中提取mp4格式视频链接
	#print(content)
	#magnet_urls = re.findall(r'(magnet:\?xt=urn:btih:[0-9a-fA-F]{40})(|&dn=[^&\s]+)', content)
	ed2k_urls = re.findall(r'(ed2k:\/\/\|file\|([^\/]+)\|\d+\|[0-9a-fA-F]+\|\/?)', content)
	# 连接 amuled
	# amule = amulecmd.Amule()
	# amule.connect()

	# links = ["ed2k://|file|movie.avi|1234567890|A1234567890BCDEFGHIJKLMNOPQRSTUVWXYZ|/"]
	## amule.add_links(ed2k_urls) ## ★ ★ ★ ★ ★ ★ ★

	# 下载视频文件
	print("pattern:" + pattern)
	print(ed2k_urls)
	for ed2k_url in ed2k_urls:
		amul_cmd ="amulecmd -P jin123 -c 'Add {}'".format(ed2k_url[0])
		if pattern is not None:
			# 检查字符串是否符合正则表达式
			if re.match(pattern, ed2k_url[1]):
				print(amul_cmd)
				os.system(amul_cmd)
		#else:
		#	print(amul_cmd)
		#	os.system(amul_cmd)

def download_file(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(content)  ## ★ ★ ★ ★ ★ ★ ★
	#download_qb_file(content)  ## ★ ★ ★ ★ ★ ★ ★
	download_ed2k_file(content)  ## ★ ★ ★ ★ ★ ★ ★


def main() :
	# 指定目录
	video_url =  os.environ['VIDEO_URL']  
	## download_file(video_path,video_pattern,video_url)  ## ★ ★ ★ ★ ★ ★ ★
	download_videos(video_url)

if __name__ == '__main__':
	main() 
