#!/bin/bash
PROXY=socks5://192.168.1.239:7890/
TEMPFOLDER=/media/sda2/auto/youtubedl/tmp/
COMPLETEFOLDER=/media/sda2/auto/youtubedl/complete/
#############################################
localfolder=$(pwd)
clear
echo "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"
echo "┃														┃"
echo "┃	本脚利用yt-dlp程序从bilibili下载视频的封面以及info.json,并把info.json转换成emby、plex能读取的nfo文件	┃"
echo "┃														┃"
echo "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"
read -p "请输入BiliBili视频BV号:"
BVNUMBER=$REPLY
address=https://www.bilibili.com/video/$BVNUMBER

cd $TEMPFOLDER
/usr/local/bin/yt-dlp -f "bestvideo" -ciw -o "%(title)s -「%(uploader)s」.%(ext)s" -v $address --write-thumbnail --write-info-json --no-write-playlist-metafiles #--proxy $PROXY
/usr/local/bin/a2jpg webp && /usr/local/bin/a2jpg png
/usr/local/bin/ytdl-nfo $TEMPFOLDER
IFS_BAK=$IFS
IFS=$'\n'
for DESTNFO in `find . -type f -name "*.nfo"`
do
	DESTINFOJSON="$(echo "$DESTNFO" | sed 's|.nfo$|.info.json|')"
	DESTMP4="$(echo "$DESTNFO" | sed 's|.nfo$|.mp4|')"
	rm "$DESTINFOJSON" "$DESTMP4"
	AUTHOR=`echo "$DESTNFO" | grep -oP '(?<=-「).*(?=」)'` # 获取up主的ID
	# 替换nfo文件第5行全部内容
	sed -i -r "5c \ \ \ \ \<uniqueid\ type=\"BiliBili\"\ default=\"true\"\>${BVNUMBER}\<\/uniqueid\>" "$DESTNFO"
	# 获取包含字符“</plot>”的行号
	PLOTNUMBER=`awk '/<\/plot>/{print NR}' "$DESTNFO"`
	# 写一个判断,如果PLOTNUMBER的值为空,则替换nfo文件第6行内容
	if [ -z $PLOTNUMBER ];then
		sed -i -r "6c \ \ \ \ \<plot\>◼︎视频作者：${AUTHOR}\<\/plot\>" "$DESTNFO"
	else
		# 在nfo文件视频简介末尾加上“◼︎视频作者：”
		sed -i -r "s|<\/plot>|  \n◼︎视频作者：${AUTHOR}<\/plot>|" "$DESTNFO" # \n 表示换行符
		# 获取包含字符“</plot>”的行号
		PREFINNUMBER=`awk '/<\/plot>/{print NR}' "$DESTNFO"`
		# 得到行号减1
		FINNUMBER=$[${PREFINNUMBER}-1]
		# 从第6行到上面FINNUMBER参数获取的行号那行，在每行末尾添加“&lt;br /&gt;”
		sed -i -r "6,${FINNUMBER}s|$|&\ \&lt\;br\ \/\&gt\;|g" "$DESTNFO"
	fi
done
IFS=$IFS_BAK
/usr/local/bin/fanartjpg
mv "$TEMPFOLDER"/* "$COMPLETEFOLDER"
cd $localfolder
exit 0
