MeloManiac-音楽愛好家のアルバムデータベース

今年の初めに、ある会社のワークフローシステムの開発を開始しました。この条件下では、ブラウザーを介して実行されるクライアントサーバーアプリケーションを作成するためのPythonシステムであるTurbogearsフレームワークを使用する必要がありました。 自分にとって新しいことに対処することをもっと面白くするために、同時に音楽アルバムを分類するシステムを自分で書き始めました。 実際、インターネット上の既存の同様の基盤は私に合わなかったということです。Last.fmではアルバムを評価することができず、ナビゲーションはどこでも不快であり、最も重要なのは私のコレクションへのリンクがありません。 iTunesのようなオフラインプログラムも、最初のフォーカスが異なるため、私には適していません。必要な基準に従って分類や並べ替えよりもリスニングに重点を置いており、さらに、コンピューター上ではなく機能上、物理ディスクの形で。



なぜここにすべて書いているのですか。 このビジネスが今どの程度関連しているのかを見るのは興味深いです;誰もがそれを必要とします。 または、いくつかの企業がそのような開発に興味を持っているかもしれません-協力の提案に喜んでいます(dimouse _at_ old-games.ru)。



ポイントに移る前に、さらにいくつかのコメント。 最初は、プログラムのプレゼンテーションのために、ビデオクリップを録画したかったのですが、熟考した結果、これは不要であり、gif形式のスライドをいくつか使用できるという結論に達しました。 これが完全に受け入れられることを願っています。







画像



私はインターフェースを気にしませんでした:テーブル、アーティスト、アルバム、ジャンルにそれぞれアクセスできる3つのメインページがあります。 もちろん、それぞれに主要なCRUD機能が実装されており、テーブルをソートおよびフィルタリングする可能性があります。 Turbogearsの作成者を導いたMVCパラダイムとSQL Alchemyの使用により、これはすべて非常に簡単に整理できます。



画像



出演者のページでは、次の式に従って計算される出演者の評価に注意したいと思います:アルバムの平均評価(評価されていないものを除く)+そのようなアルバムの数/10。したがって、数十の優れたアルバムを作った巨人は多かれ少なかれバランスが取れます、少数のミドル農民や失敗したアルバム(そしてMercyful Fateを除くすべての人)の印象をいくらか台無しにし、そのような印象を持ちます。 そのような評価の結果は、私の本当の好みに非常に近いように思えたので、それを使用します。



画像



メインページは、もちろんアルバムです。 最初に述べたように、アルバム自体に関する情報に加えて、その入手可能性に関する情報もここに保存します。 実際、データベースは私が数年前にテキストファイルとしてアセンブルし始めました。多くのアルバムは、特にmp3ファイルの場合、必然的に失われていました。そのようなアルバムを表示できます-それらを見つけてダウンロードする必要があります。 メインページの「持っていないリップ」というリンクは、そのようなアルバムを表示するための単なるショートカットです。 さらに、アルバムの入手可能性に関する情報も物理的な形式で保存します-海外でリリースされたアルバムには別のビットが割り当てられます(残念ながら、これまでのところ私のディスクの大部分は90年代の海賊の遺産です)。 レコードの形でアルバムの入手可能性を少し追加したかったのですが、まだありません-音楽愛好家がそれを使いたいなら、そのような機能が必要かもしれませんが、十分なレコードはありません。



アルバムレコードへの各変更は、「最終変更日」として記録されます。 実際、リスニングの日付を正確に修正するために別の変数を作成する必要がありましたが、これまでに行われたため、日付によるソートとフィルタリングはヒープ上のすべてを表示します:リスニングおよび評価されたアルバム、データを変更したアルバム、新しく追加されたもの(ただし、原則としてまだ評価されていないため、評価されたものから分離することができます。



ベースを手動で埋めることは確かに楽しいですが、自動化されたツールを使用してコンピューターから直接データを追加しないのは奇妙です。今日、音楽コレクションは主にMP3です。 また、MP3ファイルには、アマチュアが常に頭痛の種となるタグがあります。まあ、人々はそれらを正しく記入することを好みません。 ファイル名は言うまでもありません...したがって、Melomaniacシステムは、一方ではデータベースとファイルの対応をチェックし、他方では、そこから一般的にすぐに「入力」できます(ただし、最初に必要なアーティストを取得する必要があります)。アルバムのリストを始めたばかりで、私とは異なり、既存のリストを複雑な変換のチェーンを使用して彼女のために書かれたシステムに調整します(最初に、どの形式になるかを決定するまで、CppSQLite3を使用してCでシステムを記述しました。



画像



はい、技術的な実装について一言。 これらすべてを整理するには、PythonでMP3タグを何らかの方法で使用する必要があります。 非常に多くのそのようなライブラリがリベットで留められているので、自分で何かをする意味はありません。 変異原は最も便利で開発されたとみなされました。 Mutagenには、とりわけ、すべてのタグをUnicodeに変換するスクリプトがありますが、Winduで実際に作業することはないため、コードはMelomaniacに適合して組み込まれました。 さて、最後に、テレビから音楽を聴きたいときに、すべてのトラックが正常に表示されます! このディレクトリ内のトラックに関する情報の出力は、データベース内のトラック自体に関する情報がまだないため、より情報的な文字ですが、率直に言って、これを行うと、コレクション内でどのアルバムが最も長く、ほとんどの曲があるかを確認するように促されます。 .d。



一般に、開発のための巨大なフィールドがあります:1つのアルバムの異なるリリース、これらのリリースをコンピューター(または私のようなネットワークドライブ)の特定のディレクトリにリンクすること、これらのディレクトリに必要なトラックの存在をシステムで確認すること、追跡することについて話すことができますこれらのディレクトリとそれらの名前のネスト構造(たとえば、GENRE / EXECUTOR / ALBUM / RELEASE) OUは、査定の比較、(ホームグリッド内の)コンピュータのいずれかの上のhttpサーバーソフトウェアへのアクセス権を持っている - と、より多くの私には、一般的に、かつ必要はありません。



フィードバックやプログラムの使用に興味のある人を聞いてうれしいです。



All Articles