<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                main(主體節點)用xml代碼寫,用于描述解析對象數據和app上顯示的樣式。 <br> ## 2.3.1 多多貓界面展示和插件之間的邏輯 ![](https://box.kancloud.cn/1c79e3171637008e7b02262ef5965878_634x687.png) 如圖所示,插件的解析代碼部分主要就是提供給多多貓展示以下頁面 1. 首頁,它通過`hots標簽`里面的js解析函數返回的json數據來展現 2. 書籍頁面,它通過`book標簽`里面的js解析函數(book_parse)返回的json數據來展現 3. 漫畫(小說等)正文頁面,它通過`section標簽`里面的js解析函數返回的json數據來展現 4. 搜索頁面,它通過`search標簽`里面的js解析函數返回的json數據來展現 5. 圖中4個標簽就構成一個插件完整界面,如果要豐富界面給用戶使用,還可以加上updates、tags、tag標簽(節點),見下文2.3.2說明。 <br> ## 2.3.2 main節點內節點跳轉示意圖 1. main節點的dtype="1"為漫畫(或有目錄的圖片)插件;dtype2.輕小說、小說插件;dtype3.動畫(或有目錄的視頻、音頻)插件;dtype4.圖片(或無目錄的漫畫)插件;dtype5.商品插件(手辦周邊、漫畫書等可購買的商品);dtype6.資訊(或無目錄的輕小說、小說)插件;dtype7.視頻(或無目錄的直播)插件;dtype8.小工具、查詢插件。 2. main節點dtype選了其中一種情況下,有多個book、section節點的還可以設置每個為其他的dtype已適應源網站對象數據(不設置就默認繼承main節點的還是父節點的),組成混合插件。dtype為1、2、3的book節點即book[123]之間的xml屬性和js腳本節點輸出格式是一樣的,和book[4]、book[6]、book[7]、book[5]、book[8]都不同;section節點只有dtype1、2、3,book[4]的屬性和輸出格式類似section[1],book[6]的類似section[2],book[7]的類似section[3];book[123]通過expr+dtype進入section[123],book[4675]進入不了section[123],v32引擎支持book[8]expr+dtype進入section[123]但有bug一直實現不了。 ![節點跳轉示意圖](https://box.kancloud.cn/a549d8196803de2c5e5bb634cbdec42d_797x622.png) 3. 以main dtype="1"漫畫插件為例:hots向用戶展示熱門漫畫列表;updates展示最新漫畫列表;tags展示漫畫分類列表(是展示所有分類標簽如戀愛、體育,而不是一組漫畫);tag展示某一個分類的漫畫列表;subtag展示某一個二級分類的漫畫列表(很少寫該節點),tag與subtag關系類似前者是體育漫畫列表,后者是足球漫畫、籃球漫畫列表;search展示搜索結果列表;book[1]展示某一本漫畫書的介紹和目錄;section[1]展示漫畫某一話所有圖片。 4. 用戶在app正式版首頁輸入一本漫畫url打開,app會檢查官方插件中心上面所有插件的meta節點的expr是否和它匹配,然后app進入匹配的插件界面或者原網頁界面,前者的話還會瞬間檢查這個插件的book節點的expr是否和它匹配,是的話app就直接進入book節點,否則就進入home節點。所以meta節點expr屬性填好源網站域名的正則表達式比如`xxcomic\.com`,減少寫上www或wap開頭以兼容電腦版手機版網站,book節點expr寫類似`\/comic\/\d+`這種明顯特征的,有tag的也要tag節點寫expr因為hots、updates等也能通過expr進入tag。 <br> ## 2.3.3 main節點及其數據說明(?表示隨意可以不寫) ||下級|類型|官方說明|以漫畫插件為例的補充說明| |:-|:-|:-|:-|:-| |main節點||||| |>home||Set|站點首頁數據|下一級節點包括hots、updates、tags節點,3個節點都寫才方便用戶隨意瀏覽,如果源網站沒有相應網頁可以刪去對應節點但一定要保留home節點標簽| ||>hots|Node|::熱門(可使用>item進行靜態配置,item支持跳轉到book或tag)|靜態配置(即預先在插件寫下有哪些漫畫)很少用,因為熱門列表是定時不定時變化的| ||>>updates?|Add|當hots與updates在同一個url里使用(只填寫parse)|這種寫成hots的下級節點是簡略寫法,不建議寫| ||>>tags?|Add|當hots與tags在同一個url里使用(只填寫parse)|這種寫成hots的下級節點是簡略寫法,不建議寫| ||>updates|Node|::更新(可使用>item進行靜態配置,item支持跳轉到book或tag)注:當showImg="1"時,使用有圖模板|靜態配置(即預先在插件寫下有哪些漫畫)很少用,因為最新列表是定時或不定時變化的| ||>tags|Node|::分類(可使用>item進行靜態配置)|靜態配置(即預先在插件寫下有哪些分類標簽)是常見的,因為源網站總共有的分類很少改動除非整個網站大改版。靜態配置時tags節點:xml部分只寫title屬性不寫非靜態配置時需要的其他屬性,xml部分增加下級節點item(有group?、title、url屬性),且不需要js部分代碼| |>search||Node|::搜索|如果刪去該節點,app上該插件中搜索按鈕會消失。url用了@page也只有第一頁結果,是app限制,單個插件搜索結果數最多十幾個夠了,過多會影響多站(最近打開15個插件)搜索效果。| |>tag||Node|::分類(處理某一個分類的數據)注:當showImg="0"時,使用無圖模板|| |>subtag||Node|::二級分類(處理某一個二級分類的數據)注:當showImg="0"時,使用無圖模板;注:必須要有expr;注:與tag節點的xml屬性和js輸出相同|tag與subtag關系類似前者是體育漫畫列表,后者是足球漫畫、籃球漫畫列表,很少寫subtag節點,因為會在tag界面后面增加一層分類界面要用戶點擊。| |>book||Node|::書本(處理某一本書的數據)注:支持sited://的url接收|支持sited://是app層面的,插件者記得寫expr| ||>sections?|Add|book的數據與sections不在同一個url時使用|相當于某一本漫畫的全部目錄頁,當book節點接入url和源網站存放該漫畫目錄數據的網址不一樣時使用sections節點,sections節點必須含buildUrl和parse屬性| |>section||Node|::章節(處理某一話的數據)|和sections節點不一樣哦| <br> ## 2.3.4 漫畫插件main節點示例 以下是一個漫畫插件示例的main節點。 ```xml <main dtype="1" btag="漫畫"> <home> <hots cache="1d" showImg="1" w="1" h="1" title="hots節點" method="get" parse="hots_parse" url="https://m.comic.naver.com/webtoon/weekday.nhn"/> <updates cache="1d" showImg="1" w="1" h="1" title="updates節點" method="get" parse="updates_parse" url="https://m.comic.naver.com/webtoon/weekday.nhn"/> <tags title="分類"> <tags cache="1d" method="get" parse="tags_parse1" url="https://m.comic.naver.com/webtoon/genre.nhn"/> <tags cache="1d" method="get" parse="tags_parse_challenge" url="https://m.comic.naver.com/bestChallenge/genre.nhn"/> </tags> </home> <search cache="1d" method="get" parse="search_parse1" url="https://m.comic.naver.com/search/result.nhn?keyword=@key&amp;searchType=WEBTOON" > <search cache="1d" method="get" parse="search_parse_challenge" url="https://m.comic.naver.com/search/result.nhn?keyword=@key&amp;searchType=BEST_CHALLENGE" /> </search> <tag> <tag cache="10m" showImg="1" w="1" h="1" method="get" parse="tag_parse1" expr="webtoon\/genre.nhn"/> <tag cache="10m" showImg="1" w="1" h="1" method="get" parse="tag_parse_challenge" expr="bestChallenge\/genre.nhn"/> </tag> <book cache="1d" method="get" buildUrl="book_buildUrl" parse="book_parse" expr="\/list\.nhn" > <sections cache="1d" method="get" buildUrl="book_s_buildUrl" parseUrl="book_s_parseUrl" parse="book_s_parse" /> </book> <section cache="1d" method="get" options="0,0,0,1" parseUrl="section_parseUrl" parse="section_parse" header="referer"/> </main> ``` <br> ## 2.3.5 main節點主要格式說明 (?表示隨意可以不寫的屬性) |屬性|類型|說明| |:-|:-|:-| |@dtype|[1,2,3,4,5,6,7,8]|2.3.2的第1、2、3段有講| |@btag?|字符串|對插件業務類型的真實描述(3 個字以內),呼應meta節點intro標簽插件介紹,如漫畫、輕小說、小說、動畫、視頻、FM、音樂、圖片、商品、資訊、直播、小游戲、小工具、綜合。| |@cache?|[1m,1d,1,0]|緩存(1分鐘,1天,永久、不緩存)。一般我是填1天,1天后再次進入該節點后即會刷新| |@title?|字符串|節點標題,顯示在多多貓界面上| |@ua?|字符串|節點請求HTTP時使用的UA,默認使用site或引擎給定的值| |@expr|字符串|正則表達式,滿足條件的,由當前節點處理。請在book、tag、section節點填上。如果section節點只有一個,可以不用寫expr屬性| |@showImg?|2/1/0|0無圖;1小圖;2大圖。不添加默認是1。僅在hots、updates和tag上可用,2/1/0在3個節點顯示標題圖效果都不一樣。| |@w?|寬比重|和h搭配一起寫,都不寫就默認1比1。在同一節點搭配showImg使用| |@h?|高比重|和w搭配一起寫,都不寫就默認1比1。在同一節點搭配showImg使用| |@method?|get或post或@null|請求方式。@null表示節點不需請求,直接parse(url)| |@args?|字符串|為post提供參數支持,格式如下:k1=v1;k2=v2(其它用途時不計格式)。支持@page,@key宏定義| |@parseUrl?|fun(url,html)->url;url;CALL::url|通過url和它的html輸出新的url作為parse的目標網址,如果多個url以“;”隔開(CALL::url的請求結果仍由parseUrl處理)| |@parse|fun(url,html)->參考輸出格式|解析函數。支持@null(表示不進行解析)| |@buildUrl?|fun(url,key?,page?)或fun(url,str?)|通過url生成新的目標url。dtype=8時,是fun(url,str)| |@url?|Uri|目標網址。直接get請求沒有buildUrl/parseUrl時支持@page宏定義| |@style?|11/12|界面樣式風格:(dtype-section[3]book[7]節點專用屬性)11:視頻(默認),12:有封面的音樂| main節點的其他屬性說明請見[插件開放平臺http://sited.noear.org/](http://sited.noear.org/) 里面的官方開發文檔PDF。 <br> ps.開發文檔PDF中未說明: - @update和@btn只用于dtype="8"的book節點; - @buildArgs的function參數,在tag/subtag節點里有(url)和(url,page),在search節點里有(url)和(url,key),在dtype8的book節點里有(url)和(url,str),在其他節點只有(url)。@buildArgs的返回結果要符合@args格式;用了@buildArgs會使@args屬性(若有)失效;@args格式要符合k1=v1;k2=v2 - search節點里:@args格式里每組k=@key鍵值對中的@key能替換成用戶在search界面填寫的搜索詞,但@key左邊右邊多了任何字符時就不會替換如k1=123@key;k2=@key456,@key在等于號左邊時也不能替換。url中的@key能替換成用戶在search界面填寫的搜索詞,但限于get請求方式。 <br> (本節完)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看