ABCatオヌディオブック甚のオヌプン゜ヌスカタログ䜜成およびダりンロヌダヌ

5幎前にオヌディオブックを発芋し、それからほが毎日聞きたした。 もちろん、印刷された本ず比范できるものは䜕もありたせんが、毎日の旋颚の䞭では、単に圌らのために残された時間はありたせん。 オヌディオブックの䞋で、私は公共亀通機関で旅行し、家事をし、修理をしたす。䞀般に、だれかずのコミュニケヌションや集䞭を必芁ずしないほずんどすべおのものです。

私の本の䞻な情報源はrutracker.org圓時はただtorrents.ruでした。 かなり厳栌な節床、暙準化されたデザむン、各本の䞋に倚数のレビュヌがありたす。 しかし、面癜い本を芋぀けるのに時間がかかるようになったこずに気づいたのは、いく぀かの理由がありたす。
たず、分垃は远加の順序ではなく、曎新の順序で゜ヌトされたす。 このため、すべおが垞に混同されおおり、未読の本を探しお倚くのペヌゞをスクロヌルする必芁がありたす。

ブラりザヌは、初めおクリックしたリンクの色を倉曎しお、未読ず既読を分離するこずを蚱可したした。 しかし、ドメむンをrutrackerに倉曎した埌、ディストリビュヌションパンツの色の区別が飛んだため、怜玢プロセスが単玔化されたせんでした。

フォヌラムごずに本を分けるこずも非垞に䞍䟿です。 たずえば、フィクションはロシア語ず倖囜語に分けられたしたが、個人的にはゞャンルによっおより䟿利です。 その結果、ファンタゞヌ、ストヌカヌなどの䞭でお気に入りのNFを探す必芁がありたす。

おなじみの問題

叙情的な䜙談

オヌディオブックをカタログ化するナヌティリティの䜜成にかかる時間は、垞に手動で怜玢する堎合に倱われる時間よりも短いず考えたこずがありたした。 アプリケヌションは䜜成されおおり、過去4幎間䜿甚し、埐々に修正したした。
この蚘事に察する私のコメントに察する予想倖のサポヌトの埌、 最倧のメディアラむブラリをRunetに保存したす。 コンピュヌタヌ䞊のrutrackerデヌタベヌス党䜓で、オヌディオブックのファンはそれほど倚くないこずが明らかになりたした。 非䜓系的に蚘述されたコヌドの順序をある皋床取り入れ、アヌキテクチャず拡匵性に぀いお考え、すべおの所有暩を捚おおから、゜ヌスコヌドを含むリリヌスをレむアりトするこずにしたした。

このペットをABCatず呌ぶこずにしたした。 ここずAudioBooks Catalog、およびABCのシンプルさ、そしおもちろん、みんなのお気に入りの猫。
Nashevのアドバむスでは、この蚘事は機胜性のレビュヌずいうよりも開発に関するものではありたせん。

アプリケヌションは、.Net Framework、Cで蚘述されおいたす。 最初、むンタヌフェむスはDevExpressの詊甚版に基づいお構築されたした。 圌女は食べるように頌みたしたが、あたり持続的ではありたせんでした-トラむアル月に私はGUIをむンストヌルできたしたが、それ以䞊は必芁ありたせんでした。 DevExpressは匷力なリストフィルタリングシステムを買収し、怜玢を根本的に簡玠化したした。
オヌプン゜ヌスの光で衚瀺するためには、GUI党䜓を完党に砎棄しお、WPFずMVVMを䜿甚しお新しいものを䜜成し、同時に䞀方ず他方の䞡方を知る必芁があったこずは明らかです。
䜕が起こったのかず蚀えたすか そうですね、「グラフィカルナヌザヌむンタヌフェむス、1個」は䟋倖です。 この䜜品は玔粋に実甚的で、オヌプンな無料のコンポヌネントを䜿甚しお曞かれおいたすが、そのタスクを実行したす。
スクリヌンショットを撮る時点で、りィンドりでタむトルに眲名するのを忘れたこずに気付きたせんでした。 スクリヌンショットではそうではありたせんが、リリヌスではそうです。



非垞に短い堎合、パヌサヌはサむトから曞籍に関する情報を含むペヌゞを取埗したす。 ペヌゞのコンテンツから、著者の名前、ゞャンル、期間、読者、説明、出版瀟、ビットレヌトが蚈算されたす。 これらはすべおロヌカルデヌタベヌスに远加されたす。 グルヌプ化、フィルタリング、䞊べ替えの助けを借りお、ナヌザヌは目的の本を芋぀けおダりンロヌドしたす。

プログラムの䜿甚に関する詳现。
利甚可胜なツヌル

曞籍リスト

属性列を持぀通垞のグリッド。

グルヌピング

珟圚、3぀のグルヌプ化ロゞックが䜿甚可胜です。
  • 著者別著者は氏名の最初の文字でグルヌプ化されたす
  • フォヌラム►著者
  • フォヌラム►ゞャンル

グルヌプを遞択するず、リストはその内容によっお自動的にフィルタリングされたす。

フィルタヌ

フィルタヌでは、必芁な怜玢パラメヌタヌを蚭定できたす。 䞀郚のフィヌルドはドロップダりンリストのように芋えたす-すべおの可胜な倀はすでにそこに含たれおおり、これはクむック怜玢のコンボボックスです。 すべおのフィルタヌフィヌルドは「AND」で結合されたす。 フィルタリング埌、すべおの怜玢フィヌルドに䞀床に適合するもののみ。 文字列の出珟を怜玢したす。
Durationフィヌルドは非垞に泚意が必芁です。 「> 10 hours」ず入力するず、ディストリビュヌションの䜜成者が10時間を超える再生時間を瀺した曞籍のみがリストに含たれたす。
いく぀かの予玄がありたす。 第䞀に、期間はすべおの分垃に蚭定されおおらず、第二に、完党に自由な圢匏たずえば、「11時間5分」たたは「11:05:00」などで瀺されおいるため、倧半を理解する解析時間のロゞックがありたす玄99サむトで受け入れられるスペルオプション。 誰もがすべおを正しく理解しおいるずは限りたせんが私が芋぀けたたで、党䜓的に非垞に䟿利なツヌルが埗られたす。
そしお、このパヌサヌのおかげで、䟿利な圢匏でフィルタヌに時間をかけるこずができたす。

チェックボックス
  • アップロヌドしたした。 チェックされおいない堎合、すでにロヌドされおいる本はリストに含たれたせん。
  • 隠された。 「非衚瀺」属性で゚ントリをフィルタリングしたす属性自䜓はコンテキストメニュヌを䜿甚しおリストで指定されたす。
  • 適甚する。 フィルタの内容を倱うこずなく、レコヌドのフィルタリングを有効/無効にするこずができたす。

オヌトコレクト゚ディタヌ

本がStrugatsky兄匟によっお曞かれたこずを瀺す18の比范的正しい方法



デヌタはむンポヌト時に正芏化されたす。 これを行うには、フィヌルド倀がオヌトコレクトリストでチェックされ、正しいオプションに眮き換えられたす。



オヌトコレクトリストを補充するには、同じパラメヌタヌの異なるスペルを含む゚ントリを遞択する必芁がありたす。 次に、リストのコンテキストメニュヌを䜿甚しお、゚ントリをオヌトコレクト゚ディタに送信したす。



目的の属性この堎合は「䜜成者」を遞択し、最も奜きなオプションをダブルクリックし存圚しない堎合は手動で入力したす、「倉曎を保存」をクリックしたす。



オヌトコレクトツリヌ。

リスト自䜓は別のデヌタベヌスファむルに保存されおおり、誰かの既補バヌゞョンを䜿甚するか、独自に蚭定するこずができたす。 リスト党䜓をすべお眮き換えるのではなく、リストをナニオンでむンポヌトするずいう考えはただ実珟されおいたせん。

デヌタベヌスは2段階で曎新されたす。
  • レコヌドのリストをダりンロヌドしたす。 これを行うには、配垃リストを含むすべおのペヌゞがダりンロヌドされ、曞籍に関する基本情報がそこから匕き出されたす-完党な配垃ペヌゞずタむトルぞのリンク。 rutrackerフォヌラムの堎合、最初の操䜜には玄20分かかりたす。玄400ペヌゞをダりンロヌドしお凊理する必芁がありたす。
  • 完党な蚘録情報をダりンロヌドしたす。 最初の段階で受け取ったリンクは、完党な情報を含むペヌゞをダりンロヌドしたす。 さらに倚く-箄18,000ありたす。



曎新プロセスは、アプリケヌションのメむンメニュヌの「ディレクトリ」アむテムの䞋にある2぀のアむテムによっお開始されたす。
既に最新バヌゞョンのカタログをダりンロヌドし以䞋のリンクを䜿甚、定期的に曎新を開始するこずを匷くお勧めしたす。
党ペヌゞのダりンロヌド速床は特別に制限されおいたす1分あたり20ペヌゞ以䞋。 rutrackerのメンバヌがあたり気分を害さないように。 保護は非垞にシンプルで、゜ヌスがあれば簡単に削陀できたすが、それを芋぀けお無効にできる人にずっおは、DDoSルヌトトラッカヌはそのような倒錯した方法さえ必芁ずしたせん。5行のコヌドで十分です。

ルヌトトラッカヌには、ほが確立された蚭蚈暙準があるため、ほずんどのディストリビュヌションから必芁な情報を取埗するこずが可胜になりたす。 もちろん、他の才胜のある人栌がないわけではありたせん。



しかし、パヌサヌはそのようなむンスタンスで動䜜するように蚓緎されおいたす。 さらに悪いこずに、ディストリビュヌションに䞍完党な情報が含たれおいる堎合や、基準をたったく満たしおいない堎合は、䞀郚のレコヌドを解析できたせん。 これがどのような本であるかを理解するには、目的の行をダブルクリックするだけで、ブラりザで配垃ペヌゞが開きたす。

ダりンロヌドする

遞択したブックのダりンロヌドは、リストのコンテキストメニュヌから起動したす。

ダりンロヌドするには、ルヌトキヌパヌのナヌザヌのログむン名ずパスワヌドが必芁です。 ログむンずパスワヌドはどこにも保存されず、どこにも送信されたせんもちろん、ルヌトトラッカヌ自䜓を陀く。 ABCatはコマンドラむンオプションでuTorrentを起動し、ダりンロヌドが自動的に開始されたす。 ダりンロヌドした配垃はラむブラリフォルダヌに分類され、ラむブラリぞのパスはプログラムが最初に起動されたずきに蚭定されたす。 ラむブラリでは、曞籍は著者に埓っおフォルダに配眮されたす。



䞀床に耇数の本を実行できたすが、制限もありたす-トレントファむルは1分あたり6回たでしかダりンロヌドされたせん。

技術的な詳现

ABCatのほずんどすべおのロゞックは、プラグむンを介しお実装されたす。 これらは3぀の䞻芁なグルヌプに分けられたす。

プラグむンでは、他のサむト、異なるノヌマラむザヌロゞック、グルヌプ化、フィルタリングなどのサポヌトを実装できたす。 プラグむンの詳现に぀いおは、プロゞェクトのメむンペヌゞをご芧ください 。
Codeplex リリヌスペヌゞ 。
10.20.201のリリヌスおよびカタログデヌタベヌスぞの盎接リンク
Googleドラむブのキャッシュペヌゞのデヌタベヌス 泚意、200MB
゜ヌスぞのリンク。

はじめに

  1. リリヌス 、 カタログデヌタベヌス、 ペヌゞキャッシュをダりンロヌドしたす。
  2. ディスク䞊の任意のフォルダヌにリリヌスを解凍したす。
  3. カタログデヌタベヌスずペヌゞキャッシュをダりンロヌドしお解凍し、250メガバむト以䞊のデヌタベヌスを保存するのに䟿利です。 ナヌザヌには、このパスに沿った曞き蟌み暩限が必芁です。
  4. ABCat.exeを実行したす。 最初の起動時に、プログラムは基本蚭定の蚭定を提䟛したす。 デヌタベヌスファむル、ディレクトリ、uTorrent.exeぞのパスを必ず指定しおください。 開始埌に「芁求されたデヌタプロバむダヌが芋぀かりたせんでした」ずいうメッセヌゞが衚瀺された堎合、 このリンクを䜿甚しおSQL Ceクラむアントをむンストヌルする必芁がありたす。
  5. 䜿甚する。

泚意 ABCatは.Net Framework 4.5で蚘述されおおり、Windows Vistaより䞋のオペレヌティングシステムではサポヌトされおいたせん぀たり、XPでは動䜜したせん。 Googleには、XP甚の神秘的な.Net Framework 4.5リパックぞのリンクがありたすが、詊したこずはありたせん-わかりたせん。
さらに、プログラムは私の暇なずきに曞かれたものであり、私以倖は誰も䜿甚しおいないこずを理解しおおく必芁がありたす。 このプロゞェクトは商業的ではありたせん。 Yandex.ruは、Mail.ruサテラむト、ツヌルバヌのむンストヌルを提䟛せず、広告を衚瀺せず、寄付を求めたせん。 したがっお、その䜜業で発生する可胜性のあるたた、非垞に可胜性が高いず蚀われる゚ラヌを理解しお凊理しおください。 すべおの゚ラヌを䟿利な方法で報告しおください ここがベストです 。

新しい情報。 Win7で問題の原因が芋぀かりたした。これぱントリのリストの䞻題にありたす。 その結果、リストはレンダリングされたせん。 ゚ラヌは修正されおおり、最初からすべおの手順を繰り返す必芁がありたすトピック内のリンクは新しいものです。 Entity Frameworkの珟圚のバヌゞョンに移行するため、ペヌゞキャッシュファむルも再床ダりンロヌドする必芁がありたす。
さらに、プログラムのダりンロヌド埌に「芁求されたデヌタプロバむダヌが芋぀かりたせんでした...」ずいうメッセヌゞが衚瀺された堎合は、 このリンクからMicrosoft SQL Ceクラむアントをダりンロヌドしおむンストヌルする必芁がありたす。 オペレヌティングシステムのバヌゞョンに応じお、x64たたはx86バヌゞョンを遞択したす。

フィヌドバックありがずうございたす

本をダりンロヌドする前に、リリヌスの著者がその著䜜暩を管理しおいるこずを確認しおください。
そしお、ディストリビュヌションを離れないでください。

Source: https://habr.com/ru/post/J197528/


All Articles