1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Kodiのaddonを作る(2)

Posted at

Kodiのscraper addonは xmlで記述する。
http://kodi.wiki/view/Scrapers
に説明がある。
Scraperinterface.png

というように進んでいく。

バッファは$$1~$$20の20個。このうち`$$1はKodiのメニューで選択したファイル名など、
入力に使われ、それ以外は変数として利用できる。

<?xml version="1.0" encoding=utf-8?>
<scraper framework="1.1" date="2016.2.29" name="yahoomovie" content="movies" language="en">

ローカルにnfoファイルがあればそこから情報を取る。

	<NfoUrl dest="3">
		<RegExp input="$$1" output="\1" dest="3">
			<expression></expression>
		</RegExp>
	</NfoUrl>

選択したファイル名が$$1に入っている。 <expression></expression>ということは常にoutputで指定した結果が$$3に出力される。
outputの指定時にはマークアップ関連文字は
< = &lt;
> = &gt;
" = &quot;
というように記載する必要がある。

http://movies.yahoo.co.jp/search/?query=に\1として検索文字列を与え検索を実行した結果を`$$3に出力。

	<CreateSearchUrl clearbuffers="no" dest="3">
		<RegExp input="$$1" output="&lt;url&gt;http://movies.yahoo.co.jp/search/?query=\1&lt;/url&gt;" dest="3">
			<expression></expression>
		</RegExp>		
	</CreateSearchUrl>

検索した結果を受け取り、一覧を表示する。
ここでは検索結果で表示された映画の一覧をrepeat="yes"で繰り返し検索し、当てはまる行をすべて処理する。
( )でかこまれた一致部分は\1,\2となる。
ここでは作品トップのURLが$$1、解説・あらすじのURLが$$2、キャストURLが$$3、画像URLが$$4に入る。

    <GetSearchResults clearbuffers="no" dest="8">
        <RegExp input="$$6" output="&lt;?xml version=&quot;1.02&quot; encoding=&quot;UTF-8&quot; standalone=&quot;yes&quot;?&gt;&lt;results&gt;\1&lt;/results&gt;" dest="8">
            <RegExp input="$$1" output="&lt;entity&gt;&lt;title&gt;\4&lt;/title&gt;&lt;url&gt;http://movies.yahoo.co.jp/movie/\2/\1/&lt;/url&gt;&lt;url&gt;http://movies.yahoo.co.jp/movie/\2/\1/story/&lt;/url&gt;&lt;url&gt;http://movies.yahoo.co.jp/movie/\2/\1/credit/&lt;/url&gt;&lt;url&gt;http://movies.yahoo.co.jp/movie/\2/\1/photo/&lt;/url&gt;&lt;/entity&gt;" dest="6">
                <expression repeat="yes" noclean="1">&lt;li class="col" data-cinema-id="(.*?)"&gt;.*?&lt;a href=&quot;/movie/(.*?)/([0-9]*?)/".*?title="(.*?)"</expression>
            </RegExp>
        <expression noclean="1"></expression>
        </RegExp>
   </GetSearchResults>
        

最後に、各情報を抽出していく。
Kodi 16.0になってから漢字など非アスキーでの正規表現検索が効かなくなっているため、苦労することになった。

	<GetDetails dest="4">
		<RegExp input="$$8" output="&lt;details&gt;\1&lt;/details&gt;" dest="4">
			<RegExp input="$$1" output="&lt;title&gt;\1&lt;/title&gt;" dest="8">
				<expression noclean="1">&lt;title&gt;(.*?) (.*)&lt;/title&gt;</expression>
			</RegExp>
            <RegExp input="$$1" output="&lt;year&gt;\1&lt;/year&gt;" dest="8+">
				<expression>&quot;prdtyear&quot;:&quot;(.*?)&quot;</expression>
            </RegExp>
            <RegExp input="$$1" output="&lt;runtime&gt;\1&lt;/runtime&gt;" dest="8+">
                <expression>runtime&quot;:&quot;(.*?)&quot;</expression>
            </RegExp>
   
            <RegExp input="$$2" output="&lt;director&gt;\1&lt;/director&gt;" dest="8+">
                <expression>&lt;dt&gt;.*&lt;/dt&gt;&lt;dd&gt;&lt;a href=&quot;.*&quot;&gt;(.*?)&lt;/a&gt;&lt;/dd&gt;</expression>
            </RegExp>
            
            <RegExp input="$$1" output="&lt;thumb&gt;\1&lt;/thumb&gt;" dest="8+">
                <expression>&quot;background-image:url\((.*?)\)&quot;&gt;&lt;/p&gt;</expression>
            </RegExp>
 
            <RegExp input="$$7" output="&lt;actor&gt;&lt;name&gt;\3&lt;/name&gt;&lt;thumb&gt;\1&lt;/thumb&gt;&lt;/actor&gt;" dest="8+">
                <RegExp input="$$3" output="\1" dest="7">
                    <expression noclean="1">&lt;div id=&quot;cstl&quot;&gt;(.*?)&lt;div id=&quot;stfl&quot;&gt;</expression>
                </RegExp>
                <expression repeat="yes" noclean="1">&lt;div class=&quot;thumbnail__figure&quot; style=&quot;background-image:url\((http://iwiz-movies.c.yimg.jp/c/movies/pict/w/p/.{2}/.{2}/(w[0-9]+-view|[0-9]+)\.jpg)\)&quot;&gt;\s*&lt;/div&gt;\s*&lt;/div&gt;\s*&lt;/div&gt;\s*&lt;div class=&quot;box__cell pl1em&quot;&gt;\s*&lt;h3 class=&quot;text-middle text-break color-sub&quot;&gt;(.*?)&lt;/h3&gt;</expression>
                
            </RegExp>
 
            
            <RegExp input="$$4" output="&lt;fanart&gt;&lt;thumb&gt;\1&lt;/thumb&gt;&lt;/fanart&gt;" dest="8+">
                <expression>&lt;img src=&quot;(http://iwiz-movies.c.yimg.jp/c/movies/pict/.*?\.jpg)&quot; alt=&quot;&quot;&gt;</expression>
            </RegExp>
  
           
            <RegExp input="$$1" output="&lt;genre&gt;\1&lt;/genre&gt;" dest="8+">
                    <expression repeat="yes">/movie/\?genre.*?"&gt;(.*?)&lt;/a&gt;</expression>
			</RegExp>
         

            
	    <RegExp input="$$2" output="&lt;plot&gt;\1&lt;/plot&gt;" dest="8+">
		    <expression trim="yes">&lt;p class=&quot;text-readable&quot;&gt;(.*?)&lt;p class</expression>
	    </RegExp>
	    <expression noclean="1"/>
	</RegExp>
	</GetDetails>
</scraper>

1
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?