Bläddra i källkod

增加 decode 的测试用例

Signed-off-by: allan716 <[email protected]>
allan716 3 år sedan
förälder
incheckning
5374097fcd

+ 607 - 0
TestData/video_info_file/Army of the Dead (2021) WEBDL-1080p.nfo

@@ -0,0 +1,607 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<movie>
+  <plot><![CDATA[影片的故事发生在丧尸危机爆发的拉斯维加斯,在此期间,一名男子集结一群雇佣兵进行最终的赌博,冒险进入隔离区,以阻止有史以来最大的劫案。]]></plot>
+  <outline><![CDATA[活者通杀]]></outline>
+  <lockdata>false</lockdata>
+  <dateadded>2021-05-21 17:18:40</dateadded>
+  <title>活死人军团</title>
+  <originaltitle>Army of the Dead</originaltitle>
+  <actor>
+    <name>Dave Bautista</name>
+    <role>Scott Ward</role>
+    <type>Actor</type>
+    <tmdbid>543530</tmdbid>
+    <imdbid>nm1176985</imdbid>
+  </actor>
+  <actor>
+    <name>Ana de la Reguera</name>
+    <role>Cruz</role>
+    <type>Actor</type>
+    <tmdbid>57409</tmdbid>
+    <imdbid>nm0478886</imdbid>
+    <javscraper-actressid>https://xslist.org/zh/model/180.html</javscraper-actressid>
+    <javscraper-actress-jsonid>{"Provider":"JavScraper.Xslist","Name":"Miyu Kanade - かなで自由","Cover":"https://raw.githubusercontent.com/xinxin8816/gfriends/master/Content/6-Nanairo/白石みお.jpg","Url":"https://xslist.org/zh/model/180.html","ImageType":"Backdrop","Samples":["https://xslist.org/kojav/model2/0/180.jpg","https://m1.xslist.org/gallery/0/180/1530340107.jpg","https://m1.xslist.org/gallery/0/180/1529027424.jpg","https://m1.xslist.org/gallery/0/180/1612755324.jpg","https://m1.xslist.org/gallery/0/180/1612755144.jpg","https://m1.xslist.org/gallery/0/180/1607309005.jpg","https://m1.xslist.org/gallery/0/180/1599809523.jpg","https://m1.xslist.org/gallery/0/180/1596417585.jpg","https://m1.xslist.org/gallery/0/180/1592277429.jpg","https://m1.xslist.org/gallery/0/180/1587089624.jpg","https://m1.xslist.org/gallery/0/180/1587089419.jpg","https://m1.xslist.org/gallery/0/180/1587088877.jpg","https://m1.xslist.org/gallery/0/180/1587087948.jpg","https://m1.xslist.org/gallery/0/180/1584243337.jpg","https://m1.xslist.org/gallery/0/180/1583043124.jpg","https://m1.xslist.org/gallery/0/180/1583042510.jpg"]}</javscraper-actress-jsonid>
+    <javscraper-actress-urlid>https://xslist.org/zh/model/180.html</javscraper-actress-urlid>
+  </actor>
+  <actor>
+    <name>Omari Hardwick</name>
+    <role>Vanderohe</role>
+    <type>Actor</type>
+    <tmdbid>41556</tmdbid>
+    <imdbid>nm1165044</imdbid>
+  </actor>
+  <actor>
+    <name>Matthias Schweighöfer</name>
+    <role>Ludwig Dieter</role>
+    <type>Actor</type>
+    <tmdbid>16808</tmdbid>
+    <imdbid>nm0777788</imdbid>
+  </actor>
+  <actor>
+    <name>Tig Notaro</name>
+    <role>Marianne Peters</role>
+    <type>Actor</type>
+    <tmdbid>220088</tmdbid>
+    <imdbid>nm0449299</imdbid>
+  </actor>
+  <actor>
+    <name>Nora Arnezeder</name>
+    <role>Lilly / The Coyote</role>
+    <type>Actor</type>
+    <tmdbid>453272</tmdbid>
+    <imdbid>nm2482391</imdbid>
+  </actor>
+  <actor>
+    <name>Ella Purnell</name>
+    <role>Kate Ward</role>
+    <type>Actor</type>
+    <tmdbid>989325</tmdbid>
+    <imdbid>nm3480246</imdbid>
+    <javscraper-actressid>https://xslist.org/zh/model/10035.html</javscraper-actressid>
+    <javscraper-actress-jsonid>{"Provider":"JavScraper.Xslist","Name":"Isabella Clark - イザベラ クラーク","Url":"https://xslist.org/zh/model/10035.html","ImageType":"Backdrop"}</javscraper-actress-jsonid>
+    <javscraper-actress-urlid>https://xslist.org/zh/model/10035.html</javscraper-actress-urlid>
+  </actor>
+  <actor>
+    <name>Huma Qureshi</name>
+    <role>Geeta</role>
+    <type>Actor</type>
+    <tmdbid>1108805</tmdbid>
+    <imdbid>nm4806622</imdbid>
+  </actor>
+  <actor>
+    <name>Raúl Castillo</name>
+    <role>Mikey Guzman</role>
+    <type>Actor</type>
+    <tmdbid>557579</tmdbid>
+    <imdbid>nm1950004</imdbid>
+  </actor>
+  <actor>
+    <name>Samantha Jo</name>
+    <role>Chambers</role>
+    <type>Actor</type>
+    <tmdbid>1272968</tmdbid>
+    <imdbid>nm3287954</imdbid>
+    <javscraper-actressid>https://xslist.org/zh/model/109.html</javscraper-actressid>
+    <javscraper-actress-jsonid>{"Provider":"JavScraper.Xslist","Name":"Hitomi Enjoji - 円城ひとみ","Cover":"https://raw.githubusercontent.com/xinxin8816/gfriends/master/Content/6-Warashi/AI-Fix-円城ひとみ.jpg","Url":"https://xslist.org/zh/model/109.html","ImageType":"Backdrop","Samples":["https://xslist.org/kojav/model2/0/109.jpg","https://m1.xslist.org/gallery/0/109/1623293599.jpg","https://m1.xslist.org/gallery/0/109/1623289379.jpg","https://m1.xslist.org/gallery/0/109/1619067285.jpg"]}</javscraper-actress-jsonid>
+    <javscraper-actress-urlid>https://xslist.org/zh/model/109.html</javscraper-actress-urlid>
+  </actor>
+  <actor>
+    <name>Theo Rossi</name>
+    <role>Burt Cummings</role>
+    <type>Actor</type>
+    <tmdbid>51995</tmdbid>
+    <imdbid>nm0744331</imdbid>
+  </actor>
+  <actor>
+    <name>Richard Cetrone</name>
+    <role>Zeus</role>
+    <type>Actor</type>
+    <tmdbid>12371</tmdbid>
+    <imdbid>nm0149150</imdbid>
+  </actor>
+  <actor>
+    <name>Hiroyuki Sanada</name>
+    <role>Bly Tanaka</role>
+    <type>Actor</type>
+    <tmdbid>9195</tmdbid>
+    <imdbid>nm0760796</imdbid>
+    <javscraper-actressid>https://xslist.org/zh/model/528.html</javscraper-actressid>
+    <javscraper-actress-jsonid>{"Provider":"JavScraper.Xslist","Name":"Haruka Sanada - 真田春香","Cover":"https://raw.githubusercontent.com/xinxin8816/gfriends/master/Content/5-痴女天堂/真田春香.jpg","Url":"https://xslist.org/zh/model/528.html","ImageType":"Backdrop","Samples":["https://xslist.org/kojav/model2/0/528.jpg","https://m1.xslist.org/gallery/0/528/1556845242.jpg","https://m1.xslist.org/gallery/0/528/1556841995.jpg","https://m1.xslist.org/gallery/0/528/1556769413.jpg","https://m1.xslist.org/gallery/0/528/1556348061.jpg","https://m1.xslist.org/gallery/0/528/1556334073.jpg","https://m1.xslist.org/gallery/0/528/1551144989.jpg","https://m1.xslist.org/gallery/0/528/1551143606.jpg","https://m1.xslist.org/gallery/0/528/1550894949.jpg","https://m1.xslist.org/gallery/0/528/1550892132.jpg","https://m1.xslist.org/gallery/0/528/1550804639.jpg","https://m1.xslist.org/gallery/0/528/1550802545.jpg","https://m1.xslist.org/gallery/0/528/1550553250.jpg","https://m1.xslist.org/gallery/0/528/1550289074.jpg","https://m1.xslist.org/gallery/0/528/1550284988.jpg","https://m1.xslist.org/gallery/0/528/1550284420.jpg"]}</javscraper-actress-jsonid>
+    <javscraper-actress-urlid>https://xslist.org/zh/model/528.html</javscraper-actress-urlid>
+  </actor>
+  <actor>
+    <name>Garret Dillahunt</name>
+    <role>Frank Peters</role>
+    <type>Actor</type>
+    <tmdbid>39520</tmdbid>
+    <imdbid>nm0226813</imdbid>
+  </actor>
+  <actor>
+    <name>Michael Cassidy</name>
+    <type>Actor</type>
+    <tmdbid>56556</tmdbid>
+    <imdbid>nm1746980</imdbid>
+    <javscraper-actressid>https://xslist.org/zh/model/90014.html</javscraper-actressid>
+    <javscraper-actress-jsonid>{"Provider":"JavScraper.Xslist","Name":"Diana Michaels","Url":"https://xslist.org/zh/model/90014.html","ImageType":"Backdrop"}</javscraper-actress-jsonid>
+    <javscraper-actress-urlid>https://xslist.org/zh/model/90014.html</javscraper-actress-urlid>
+  </actor>
+  <actor>
+    <name>Jonathan Cohen</name>
+    <type>Actor</type>
+    <tmdbid>129765</tmdbid>
+    <imdbid>nm3214170</imdbid>
+  </actor>
+  <actor>
+    <name>Albert Valladares</name>
+    <role>The General</role>
+    <type>Actor</type>
+    <tmdbid>1334323</tmdbid>
+    <imdbid>nm2978653</imdbid>
+  </actor>
+  <actor>
+    <name>Athena Perample</name>
+    <role>Queen</role>
+    <type>Actor</type>
+    <tmdbid>2537898</tmdbid>
+    <imdbid>nm4882660</imdbid>
+    <javscraper-actressid>https://xslist.org/zh/model/90603.html</javscraper-actressid>
+    <javscraper-actress-jsonid>{"Provider":"JavScraper.Xslist","Name":"Athena Rayne - Athena Rayne","Url":"https://xslist.org/zh/model/90603.html","ImageType":"Backdrop","Samples":["https://xslist.org/assets/images/anonymous2.png","https://m1.xslist.org/gallery/90000/90603/1583486338.jpg","https://m1.xslist.org/gallery/90000/90603/1583485954.jpg"]}</javscraper-actress-jsonid>
+    <javscraper-actress-urlid>https://xslist.org/zh/model/90603.html</javscraper-actress-urlid>
+  </actor>
+  <actor>
+    <name>Lyon Beckwith</name>
+    <type>Actor</type>
+    <tmdbid>1432244</tmdbid>
+    <imdbid>nm4874127</imdbid>
+    <javscraper-actressid>https://xslist.org/zh/model/20532.html</javscraper-actressid>
+    <javscraper-actress-jsonid>{"Provider":"JavScraper.Xslist","Name":"Tracy Lyons - トレイシー・リオンズ","Url":"https://xslist.org/zh/model/20532.html","ImageType":"Backdrop"}</javscraper-actress-jsonid>
+    <javscraper-actress-urlid>https://xslist.org/zh/model/20532.html</javscraper-actress-urlid>
+  </actor>
+  <actor>
+    <name>Sarah Minnich</name>
+    <role>Jessica</role>
+    <type>Actor</type>
+    <tmdbid>1260554</tmdbid>
+    <imdbid>nm2075924</imdbid>
+  </actor>
+  <actor>
+    <name>Lora Martinez-Cunningham</name>
+    <type>Actor</type>
+    <tmdbid>1151637</tmdbid>
+    <imdbid>nm1254942</imdbid>
+    <javscraper-actressid>https://xslist.org/zh/model/31026.html</javscraper-actressid>
+    <javscraper-actress-jsonid>{"Provider":"JavScraper.Xslist","Name":"Flora Miu - 美羽フローラ","Cover":"https://raw.githubusercontent.com/xinxin8816/gfriends/master/Content/9-Javrave/美羽フローラ.jpg","Url":"https://xslist.org/zh/model/31026.html","ImageType":"Backdrop"}</javscraper-actress-jsonid>
+    <javscraper-actress-urlid>https://xslist.org/zh/model/31026.html</javscraper-actress-urlid>
+  </actor>
+  <actor>
+    <name>V Nixie</name>
+    <role>Strange Shambler</role>
+    <type>Actor</type>
+    <tmdbid>1877295</tmdbid>
+    <imdbid>nm6552052</imdbid>
+    <javscraper-actressid>https://xslist.org/zh/model/518.html</javscraper-actressid>
+    <javscraper-actress-jsonid>{"Provider":"JavScraper.Xslist","Name":"Love Saotome - 早乙女らぶ","Cover":"https://raw.githubusercontent.com/xinxin8816/gfriends/master/Content/6-Nanairo/早乙女らぶ.jpg","Url":"https://xslist.org/zh/model/518.html","ImageType":"Backdrop","Samples":["https://xslist.org/kojav/model2/0/518.jpg","https://m1.xslist.org/gallery/0/518/1568440493.jpg","https://m1.xslist.org/gallery/0/518/1565227144.jpg","https://m1.xslist.org/gallery/0/518/1563409372.jpg","https://m1.xslist.org/gallery/0/518/1561166670.jpg","https://m1.xslist.org/gallery/0/518/1559866647.jpg","https://m1.xslist.org/gallery/0/518/1559525545.jpg","https://m1.xslist.org/gallery/0/518/1573778509.jpg","https://m1.xslist.org/gallery/0/518/1573778391.jpg","https://m1.xslist.org/gallery/0/518/1573778158.jpg","https://m1.xslist.org/gallery/0/518/1573777987.jpg","https://m1.xslist.org/gallery/0/518/1573777940.jpg","https://m1.xslist.org/gallery/0/518/1573777907.jpg","https://m1.xslist.org/gallery/0/518/1572363190.jpg","https://m1.xslist.org/gallery/0/518/1572362935.jpg","https://m1.xslist.org/gallery/0/518/1572330358.jpg"]}</javscraper-actress-jsonid>
+    <javscraper-actress-urlid>https://xslist.org/zh/model/518.html</javscraper-actress-urlid>
+  </actor>
+  <director tmdbid="15217" imdbid="nm0811583">Zack Snyder</director>
+  <trailer>plugin://plugin.video.youtube/?action=play_video&amp;videoid=tI1JGPhYBS8</trailer>
+  <rating>5.7</rating>
+  <year>2021</year>
+  <mpaa>US:R / US:Rated R</mpaa>
+  <imdbid>tt0993840</imdbid>
+  <tmdbid>503736</tmdbid>
+  <premiered>2021-05-13</premiered>
+  <releasedate>2021-05-13</releasedate>
+  <criticrating>75</criticrating>
+  <runtime>148</runtime>
+  <tagline>活者通杀</tagline>
+  <country>United States of America</country>
+  <genre>Action</genre>
+  <genre>Horror</genre>
+  <genre>Science Fiction</genre>
+  <genre>Thriller</genre>
+  <studio>The Stone Quarry</studio>
+  <uniqueid type="Tmdb">503736</uniqueid>
+  <uniqueid type="Imdb">tt0993840</uniqueid>
+  <uniqueid type="trakt">350970</uniqueid>
+  <traktid>350970</traktid>
+  <id>tt0993840</id>
+  <fileinfo>
+    <streamdetails>
+      <video>
+        <codec>h264</codec>
+        <micodec>h264</micodec>
+        <bitrate>3537114</bitrate>
+        <width>1920</width>
+        <height>1080</height>
+        <aspect>16:9</aspect>
+        <aspectratio>16:9</aspectratio>
+        <framerate>24</framerate>
+        <scantype>progressive</scantype>
+        <default>True</default>
+        <forced>False</forced>
+        <duration>148</duration>
+        <durationinseconds>8902</durationinseconds>
+      </video>
+      <audio>
+        <codec>eac3</codec>
+        <micodec>eac3</micodec>
+        <language>eng</language>
+        <scantype>progressive</scantype>
+        <channels>6</channels>
+        <samplingrate>48000</samplingrate>
+        <default>True</default>
+        <forced>False</forced>
+      </audio>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>eng</language>
+        <scantype>progressive</scantype>
+        <default>True</default>
+        <forced>True</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>eng</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>ara</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>chi</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>chi</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>hrv</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>cze</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>dan</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>dut</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>spa</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>fin</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>fre</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>ger</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>gre</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>heb</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>hun</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>ind</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>ita</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>jpn</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>kor</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>may</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>nob</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>pol</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>por</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>por</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>rum</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>rus</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>spa</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>swe</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>tha</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>tur</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>ukr</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>subrip</codec>
+        <micodec>subrip</micodec>
+        <language>vie</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>srt</codec>
+        <micodec>srt</micodec>
+        <language>chinese(简,shooter)</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>srt</codec>
+        <micodec>srt</micodec>
+        <language>chinese(简,subhd)</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>ass</codec>
+        <micodec>ass</micodec>
+        <language>chinese(简,xunlei)</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>srt</codec>
+        <micodec>srt</micodec>
+        <language>chinese(简,zimuku)</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>srt</codec>
+        <micodec>srt</micodec>
+        <language>chinese(简)</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>ass</codec>
+        <micodec>ass</micodec>
+        <language>chinese(简英,subhd)</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>ass</codec>
+        <micodec>ass</micodec>
+        <language>chinese(简英,xunlei)</language>
+        <scantype>progressive</scantype>
+        <default>True</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>ass</codec>
+        <micodec>ass</micodec>
+        <language>chinese(简英,zimuku)</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>ass</codec>
+        <micodec>ass</micodec>
+        <language>chinese(简英)</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>ass</codec>
+        <micodec>ass</micodec>
+        <language>eng</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+      <subtitle>
+        <codec>srt</codec>
+        <micodec>srt</micodec>
+        <language>eng</language>
+        <scantype>progressive</scantype>
+        <default>False</default>
+        <forced>False</forced>
+      </subtitle>
+    </streamdetails>
+  </fileinfo>
+  <epbookmark />
+  <ratings>
+    <rating default="true" max="10" name="NFO">
+      <value>7.5</value>
+      <votes>0</votes>
+    </rating>
+  </ratings>
+  <top250>0</top250>
+  <certification>US:R / US:Rated R</certification>
+  <tmdbCollectionId />
+  <status />
+  <code />
+  <languages />
+  <source>WEB_DL</source>
+  <edition>NONE</edition>
+  <original_filename>Army of the Dead (2021) WEBDL-1080p.mkv</original_filename>
+  <user_note />
+</movie>

+ 67 - 0
TestData/video_info_file/has_http_address.nfo

@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<movie>
+  <plot><![CDATA[?????????????,??????????????????????????
+ 2020?2?,?????,?????????????????????????????????????????????????????,??????????????????,????????????????????????????,???????????????????????,????????????,????????,?????????????,????????????????????????????????,?????,?????????????????????????
+ 2???,???????????????????????,??????????????2?????????????????????????,???????????3??,????????????????,???????????????,????????????????????????????????????????????,?????????????????,??????????,?????????????
+ ??????????,??????????????????,???????????,?????,????????????????????,???????????,???????,????????????????,????????,???????????????????????????????????
+ ???????????,?????4?8??????]]></plot>
+  <outline />
+  <lockdata>false</lockdata>
+  <dateadded>2021-12-22 16:57:37</dateadded>
+  <title>76?</title>
+  <originaltitle>76 Days</originaltitle>
+  <director tmdbid="1297750" imdbid="nm2222612">Hao Wu</director>
+  <director tmdbid="2727086">Weixi Chen</director>
+  <trailer>plugin://plugin.video.youtube/?action=play_video&amp;videoid=x_f6-jhbsR4</trailer>
+  <trailer>plugin://plugin.video.youtube/?action=play_video&amp;videoid=KpYhePFx1qo</trailer>
+  <rating>7.1</rating>
+  <year>2020</year>
+  <imdbid>tt12801326</imdbid>
+  <tmdbid>728928</tmdbid>
+  <premiered>2020-09-10</premiered>
+  <releasedate>2020-09-10</releasedate>
+  <criticrating>100</criticrating>
+  <runtime>93</runtime>
+  <country>China</country>
+  <country>United States of America</country>
+  <genre>??</genre>
+  <studio>MTV Documentary Films</studio>
+  <studio>XTR</studio>
+  <studio>JustFilms / Ford Foundation</studio>
+  <studio>Sundance Institute</studio>
+  <studio>Dogwoof</studio>
+  <uniqueid type="Tmdb">728928</uniqueid>
+  <uniqueid type="Imdb">tt12801326</uniqueid>
+  <id>tt12801326</id>
+  <fileinfo>
+    <streamdetails>
+      <video>
+        <codec>h264</codec>
+        <micodec>h264</micodec>
+        <bitrate>9337256</bitrate>
+        <width>1920</width>
+        <height>1080</height>
+        <aspect>16:9</aspect>
+        <aspectratio>16:9</aspectratio>
+        <framerate>30</framerate>
+        <scantype>progressive</scantype>
+        <default>True</default>
+        <forced>False</forced>
+        <duration>93</duration>
+        <durationinseconds>5596</durationinseconds>
+      </video>
+      <audio>
+        <codec>eac3</codec>
+        <micodec>eac3</micodec>
+        <language>eng</language>
+        <scantype>progressive</scantype>
+        <channels>6</channels>
+        <samplingrate>48000</samplingrate>
+        <default>True</default>
+        <forced>False</forced>
+      </audio>
+    </streamdetails>
+  </fileinfo>
+</movie>
+http://aa.bb
+https://aa.bb

+ 17 - 0
TestData/video_info_file/movie.xml

@@ -0,0 +1,17 @@
+<Movie>
+  <id>tt0993840</id>
+  <Status>Released</Status>
+  <Added>09/15/2021 05:44:28 AM</Added>
+  <LockData>false</LockData>
+  <Overview>Following a zombie outbreak in Las Vegas, a group of mercenaries take the ultimate gamble: venturing into the quarantine zone to pull off the greatest heist ever attempted.</Overview>
+  <LocalTitle>Army of the Dead</LocalTitle>
+  <Rating>6.4</Rating>
+  <ProductionYear>2021</ProductionYear>
+  <RunningTime>148</RunningTime>
+  <IMDB>tt0993840</IMDB>
+  <Genres>
+    <Genre>Action</Genre>
+    <Genre>Crime</Genre>
+    <Genre>Horror</Genre>
+  </Genres>
+</Movie>

+ 2 - 0
TestData/video_info_file/only_http_address.nfo

@@ -0,0 +1,2 @@
+http://aa.bb
+https://aa.bb

+ 29 - 6
internal/pkg/decode/decode_test.go

@@ -1,13 +1,14 @@
 package decode
 
 import (
+	"fmt"
 	"testing"
 )
 
 func Test_get_IMDB_movie_xml(t *testing.T) {
 	wantid := "tt0993840"
 	wantyear := "2021"
-	dirPth := "x:\\电影\\Army of the Dead (2021)\\movie.xml"
+	dirPth := "..\\..\\..\\TestData\\video_info_file\\movie.xml"
 	imdbInfo, err := getImdbAndYearMovieXml(dirPth)
 	if err != nil {
 		t.Error(err)
@@ -23,16 +24,38 @@ func Test_get_IMDB_movie_xml(t *testing.T) {
 func Test_get_IMDB_nfo(t *testing.T) {
 	wantid := "tt0993840"
 	wantyear := "2021"
-	dirPth := "X:\\电影\\Army of the Dead (2021)\\Army of the Dead (2021) WEBDL-1080p.nfo"
+	dirPth := "..\\..\\..\\TestData\\video_info_file\\Army of the Dead (2021) WEBDL-1080p.nfo"
 	imdbInfo, err := getImdbAndYearNfo(dirPth, "movie")
 	if err != nil {
-		t.Error(err)
+		t.Fatal(err)
+	}
+	if imdbInfo.ImdbId != wantid {
+		t.Fatal(fmt.Sprintf("Test_get_IMDB_movie_xml() id = %v, wantid %v", imdbInfo.ImdbId, wantid))
+	}
+	if imdbInfo.Year != wantyear {
+		t.Fatal(fmt.Sprintf("Test_get_IMDB_movie_xml() year = %v, wantyear %v", imdbInfo.Year, wantyear))
+	}
+
+	wantid = "tt12801326"
+	wantyear = "2020"
+	dirPth = "..\\..\\..\\TestData\\video_info_file\\has_http_address.nfo"
+	imdbInfo, err = getImdbAndYearNfo(dirPth, "movie")
+	if err != nil {
+		t.Fatal(err)
 	}
 	if imdbInfo.ImdbId != wantid {
-		t.Errorf("Test_get_IMDB_movie_xml() id = %v, wantid %v", imdbInfo.ImdbId, wantid)
+		t.Fatal(fmt.Sprintf("Test_get_IMDB_movie_xml() id = %v, wantid %v", imdbInfo.ImdbId, wantid))
 	}
 	if imdbInfo.Year != wantyear {
-		t.Errorf("Test_get_IMDB_movie_xml() year = %v, wantyear %v", imdbInfo.Year, wantyear)
+		t.Fatal(fmt.Sprintf("Test_get_IMDB_movie_xml() year = %v, wantyear %v", imdbInfo.Year, wantyear))
+	}
+
+	wantid = ""
+	wantyear = ""
+	dirPth = "..\\..\\..\\TestData\\video_info_file\\only_http_address.nfo"
+	imdbInfo, err = getImdbAndYearNfo(dirPth, "movie")
+	if err == nil {
+		t.Fatal("need errot")
 	}
 }
 
@@ -89,7 +112,7 @@ func TestGetNumber2int(t *testing.T) {
 
 func Test_getImdbAndYearNfo(t *testing.T) {
 
-	nfoInfo := "C:\\tmp\\imdb_id.nfo"
+	nfoInfo := "..\\..\\..\\TestData\\video_info_file\\Army of the Dead (2021) WEBDL-1080p.nfo"
 	nfo, err := getImdbAndYearNfo(nfoInfo, "tvshow")
 	if err != nil {
 		t.Fatal(err)